10.23 Linux任务计划crontab
Linux系统管理的很多任务都是自动完成的,想定期执行脚本文件,就需要借助于crontab命令。
常用选项:
-u 表示指定某个用户,如果不指定则表示当前用户
-e表示指定任务计划
-l列出已经存在的任务计划
-r删除任务计划(表示全部删除)
[root@cent01 ~]# crontab -e //此时会进入vim编辑模式,在vim内编辑任务
no crontab for root - using an empty one
//在vim中添加如下语句
01 10 05 06 3 echo "ok"> /root/cron.log //这天的日期必须与这天的星期几对应上,命令才能生效。借助于这一点,就可以用这种方式间接的确定哪一年执行此命令
crontab -e 实际是调用vim 编辑/var/spool/cron/username文件,但是不能直接用vim打开这个文件,否则会报错。
[root@cent01 ~]# crontab -l //查看已经存在的计划
01 10 05 06 3 echo "ok"> /root/cron.log
crontab -r可以删除任务,但是他会删除所有的任务。所以如果想删除具体的某条任务,需要用crontab -e编辑然后删除。
//每天凌晨1点20清除/var/log/slow.log
20 1 * * * echo ""> /var/log/slow.log
//每周日三点执行/bin/sh /usr/local/sbin/backup.sh
0 3 * * 0 /bin/sh /usr/local/sbin/backup.sh
//每月14日4点10分执行/bin/sh /usr/local/sbin/backup_month.sh
10 4 14 * * /bin/sh /usr/local/sbin/backup_month.sh
//每隔8小时执行ntpdata time.windows.com
0 */8 * * * ntpdata time.windows.com
//每天的1点,12点,18点执行/bin/sh /usr/local/sbin/test.sh
0 1,12,18 * * * /bin/sh /usr/local/sbin/test.sh
//每天9-18点执行/bin/sh /usr/local/sbin/test2.sh
0 9-18 * * * /bin/sh /usr/local/sbin/test2.sh
检查crond服务是否已经启动,显示active说明已经启动。
[root@cent01 sbin]# systemctl status crond //这里是crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2017-11-09 11:49:46 CST; 8h ago
Main PID: 873 (crond)
CGroup: /system.slice/crond.service
└─873 /usr/sbin/crond -n