1 服务
crontab服务名叫crond,默认enable。
加载到crontab里的定时任务,crond服务会去执行。
异常:如果服务器内存过载,可能会杀掉crond,导致定时任务不执行。
2 日志
定时任务日志文件为/var/log/cron,logrotate服务会按周切割。最新日志存在/var/log/cron里面。
[root@xx log]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0
[root@xx log]# ls /var/log/ | grep cron cron cron-20180603 cron-20180610 cron-20180617 cron-20180624
[root@webmaster scripts]# cat /var/log/cron | tail -3 Jul 5 10:01:01 webmaster run-parts(/etc/cron.hourly)[50121]: finished mcelog.cron Jul 5 10:02:01 webmaster CROND[50133]: (root) CMD (cd /data/scripts;/usr/bin/python /data/scripts/uv_monitor.py 1>a1 2>b1) Jul 5 10:10:01 webmaster CROND[50220]: (root) CMD (/usr/lib64/sa/sa1 1 1) [root@webmaster scripts]#
3 crontab 命令
crontab -l用于查看当前定时任务
crontab -e为编辑定时任务。保存退出后直接生效。
格式为* * * * * username command最好用全路径。
案例:每周一5点对/srv/salt/进行备份,按时间命名放在/bak/salt目录下。
[root@salt-server salt]# cat /scripts/salt_bak.sh #!/bin/sh cp -a /srv/salt /bak/salt/salt-`date "+%Y%m%d"` tar cvf /bak/salt/salt-20180303.tar /bak/salt/salt-20180303/
chmod +x /scripts/salt_bak.sh
crontab -e >> 00 5 * * 1 root /scripts/salt_bak.sh
00 06 14 12 * killall -9 some_svr #定个时间,12月14号早晨6点kill掉所有这个服务的进程