Linux定时任务
Thu, Aug 23, 2018
参考资料:鸟哥的linux私房菜
Linux 排程就是透過 crontab 與 at 這兩個東西
at 和 crontab
at:处理只发生一次的事件
crontab:处理周期性事件
- crontab 除了可以使用指令執行外,亦可編輯 /etc/crontab 來支援
CentOS常见定时任务
- log rotate(日志轮替)
- logwatch(日志分析工具)
- tmpwatch (移除暂存文档)
- ...
定时任务与软件安装的多少有关
单次任务
指令:at
相关服务:atd
注意:atd不一定已经打开了,需要手动操作之~
> systemctl restart atd # 重新啟動 atd 這個服務 > systemctl enable atd # 讓這個服務開機就自動啟動 > systemctl status atd # 查看状态 |
at使用
- 使用 at 指令创建工作,將這個工作寫入 /var/spool/at/ 目錄內,atd 服務会執行之
- 可以利用 /etc/at.allow 與 /etc/at.deny 這兩個文件來進行 at 的使用限制
- at.allow:at指令白名单用户
- at.deny:at黑名单。如果木有at.allow,会根据at.deny判断权限
- 以上两个文件都木有:只有root可使用
...写的有点长...没看完
定时任务
服务:cron(crond)
- 该服务预设为自动启动的
- 执行任务的日志:/var/log/cron
指令:crontab
- 使用结果:指令被记录到/var/spool/cron/用户名 中
- 指令格式:
crontab [-u username] [-l|-e|-r]
-e: 编辑crontab的定时任务(当前用户的)
- 任务会写在/usr/bin/crontab文件中
- -l: 查看crontab任务
- -r: 移除所有crontab任务
- 示例:
- crontab -e (进入编辑界面,每项任务占一行)
- */5 * * * * /home/dmtsai/test.sh # 每5分钟执行一次/home/dmtsai/test.sh
权限:
- /etc/cron.allow:白名单
- /etc/cron.deny:黑名单
系统定时任务
/etc/crontab
corn服务,会每分钟读取一遍etc/crontab文件。如果木有生效,可是使用 systemctl restart crond重启之
/etc/cron.d
定义了cron.hourly在每小时的前5分钟内执行
anacron
anacron每小时被crond执行一次,会检测相关的定时任务有木有被执行。如果有没执行的定时任务,会执行之。如果所有任务都执行了,anacron会停止