默认内容如下:
SHELL=/bin/bash 这里是指定使用哪种shell接口 PATH=/sbin:/bin:/usr/sbin:/usr/bin 这里指定文件查找路径 MAILTO=root 如果有额外的STDOUT,以email将数据送给谁,可以指定系统用户,也可以指定email地址,如[email protected] # For details see man 4 crontabs # Example of job definition: # .---------------- 分钟 (0 - 59) # | .------------- 小时 (0 - 23) # | | .---------- 日期 (1 - 31) # | | | .------- 月份 (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- 周几 (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * 用户名 命令
即:
分 时 日 月 周 执行用户 任务命令
比如我要添加一个计划任务,每隔10分钟就以root身份执行一次/home/test.sh脚本,则在后面添加:
*/10 * * * * root /home/test.sh
这里注意,不要漏掉执行者root(用户级的crontab中不需要指定执行者),否则会在/var/log/cron日志中出现”ERROR (getpwnam() failed)”错误,计划任务无法正常运行。
重启服务
一般来说Linux下的crontab会自动帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是出于某些原因或者是其他的Unix系统中,由于crontab是读到内存当中的,所以栽修改完 /etc/crontab 之后,可能并不会马上执行,这时候需要重启crontab服务。
这里以CentOS为例:
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重载配置 service crond status //服务状态
如果是CentOS 7则:
systemctl restart crond.service //重启服务 systemctl start crond.service //启动服务 systemctl stop crond.service //停止服务 systemctl reload crond.service //重载配置 systemctl status crond.service //服务状态
其他注意事项
取消不需要的输出
当执行结果或者执行的选项中有输出的数据时,该数据会通过mail发送给MAILTO指定的账号,若某一个调度一直出错,同时mail服务出现问题(事实上我根本就没开这个服务),将会产生大量的文件于 /var/spool/clientmqueue/ ,所以最好是将crontab里面的命令后面加上> /dev/null 2>&1
2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到 /dev/null ,即抛弃,同时,把产生的错误也抛弃。
检查日志
日志保存在 /var/log/cron 中
语法区别
参考资料
鸟哥的Linux私房菜
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
香港服务器首选筋斗云,2H2G首月10元开通。
筋斗云()提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。