linux定时任务

来源:互联网 发布:淘宝如何开通国际转运 编辑:程序博客网 时间:2024/06/06 02:26

一、at 命令:

将任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个Shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。at now + time命令可以在设置执行任务

假设处理一个大型数据库,要在别人不用系统时去处理数据,比如凌晨3点10分。那么我们就应该先建立/home/kyle/do_job脚本管理数据库,计划处理/home/kyle/do_job文件中的结果。正常方式是这样启动下列命令:

# at 2:05 tomorrowat>/home/kyle/do_jobat> Ctrl+D

AT Time中的时间表示方法

Minute at now + 5 minutes 任务在5分钟后运行Hour at now + 1 hour 任务在1小时后运行Days at now + 3 days 任务在3天后运行Weeks at now + 2 weeks 任务在两周后运行Fixed at midnight 任务在午夜运行Fixed at 10:30pm 任务在晚上1030

二、crontab 命令

crontab -e 设置命令
crontab -l 查看已经设置的定时任务
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -r //删除某个用户的cron服务

格式:

* * * * * command分  时  日  月  周  命令
第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令

三、shell脚本

流程:

1. cd /usr/local/bin2. touch mk.sh3. chmod 755 mk.sh4. vi /etc/rc.local5. 在rc.local最后添加 /usr/local/bin/mk.sh &   //添加&的意思是脚本将此命令放入后台执行

如果找不到rc.local文件,可以使用find -name rc.local

注释:

这是我目前找到的方法,可能有那些地方不对,可以指出来,如果你有更好的或者其他的方法,也可以在下方留言,我会更新,欢迎指正