您的位置:首页 > 运维架构 > Linux

Crontab学习笔记——Linux计划任务

2015-10-27 17:21 615 查看

Crontab学习笔记——Linux计划任务

简介

Crontab是一个用于设置周期性被执行的任务的工具。

主要由CronD这个系统服务、配置文件和crontab配置工具组成,会每分钟从配置文件刷新定时任务。

安装配置

本服务器为Centos 64位系统,已经缺省安装。

安装前先检查:

crontab -l #是否有计划任务列表
service crond status #是否启动服务


安装:

sudo yum install vixie-cron
sudo yum install crontabs


工具使用

启动 :

crond start #启动

crond stop #停止

crond restart #重启

crond reload #重新加载配置


使用 :

crontab -help #查看帮助

crontab -l #该用户是否有计划任务列表
#操作的是/var/spool/cron/username这个文件

crontab -e #编辑当前用户的计划任务列表

useradd crontester
crontab -e -u crontester #编辑crontester的计划任务列表
crontab -l -u crontester #crontester是否有计划任务列表


配置文件

Path:/etc/crontab

ls cron*

crontab filename #会覆盖同名的配置文件


注意: crontab 对系统级配置文件无效

格式

* * * * * [username] opration

说明:
第一个*:分钟 0~59
第二个*:小时 0~23
第三个*:日期 1~31
第四个*:月份 1~12
第五个*:星期 0~7(0、7都为星期天)

当有多个值时,用','区分,或者为连值时用'-'连接。


示例:

#每个月10,20,30日的0点重启apache
0 0 10,20,30 * * service httpd restart

#每个月10-15日的22:31点重启apache
31 22 10-15 * * service httpd restart

#每隔两分钟重启apache
*/2 * * * * service httpd restart

#当分钟为奇数时,每隔两分钟重启apache
1-59/2 * * * * service httpd restart


日志

查看:

tail -f /var/log/cron #计划任务日志文件,-f 实时刷新

cat /var/spool/mail/root #crontab每次执行计划都会发邮件给用户

#两个方法都可以


注意

1.环境变量:环境变量在计划中无法是载入的。

2.第三个域(日期)和第五个域(星期)是或的关系。

#四月的第一个星期日早晨1时59分运行a.sh
59 1 1-7 4 * test `date +\%w` -eq 0 && ./a.sh


案例

#半分钟执行一次,将任务细化到秒
*/1 * * * * echo "***"
*/1 * * * * sleep 30s;echo "***"


总结

学习了Crontab,就可以更好的使你的服务器自动化啦。

反馈与建议

微博:@AnSwEr不是答案

github:AnSwErYWJ

博客:AnSwEr不是答案的专栏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Crontab 计划任务 Linux