Linux中的crontab定时任务详解
1,简介
它就是一个周期性执行任务的工具
cronjob //周期性执行的任务
crontab //周期性任务指定的列表
2,操作
检查是否安装以及是否运行crond(crontab的服务)
crontab -l //检查列表有没有周期性的执行
service crond status //检查crond是否运行
安装:
yum install vixie-cron
yum install crontabs
停止:
service crond stop;
开启:
service crond start;
重启:
service crond restart;
查看操作命令:
service crond //其他服务也是适用的
常用操作:
--------------------------------------
crontab -l //查看执行列表
crontab -e //编辑执行列表
crontab -r //删除执行列表
crontab -h //列出所有的命令
crontab [选项] -u username //用户级别的操作
--------------------------------------
3,配置文件详解
* * * * * command
| | | | |
分(0-59)时(0-23)日(1-31)月(1-12)周(0-7)
实例:
*/1 * * * * date >> /tmp/log.txt //每分钟打印日期,重定向到tmp下的log.txt的日志中
*/1 * * * * sleep 30s;date >> /tmp/date.log //秒数执行
30 21 * * * service httpd restart //每21:30 重启apache
45 4 1,10,22 * * service mysql restart
45 4 1-10 * * service mysql restart
*/2 * * * * service httpd restart
1-59/2 * * * * command
0-58/2 * * * * command
0 23-7/1 * * * command
0,30 18-23 * * * command == 0-59/30 18-23 * * * command
配置文件:
1,/etc/crontab //系统级别任务,参考配置文件的状态,可以写入带用户的执行任务
例如:
*/1 * * * * root/otherUser command;
2,/etc/cron.d文件
其中有sysstat文件,也就是crontab -e 写入的文件。
3,/var/log/cron //cron的日志文件,可以查询crontab执行的日志
总结:
1,* 可以表示任何时候都匹配
2,可以用‘A,B,C’ 表示非连续的时候执行命令
3,可以用A-B表示A到B之间的时候执行命令
4,可以用*/A表示每A分钟(小时/周……)执行一次命令。