计划任务注意事项
1、at
这个是一次性的计划任务,应该很少用
2、crontab
周期性计划任务
计划任务没有执行的原因可以通过mail邮件分析
计划任务可以实现让指定用户执行某条命令
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
注意事项:
- 1、最好在计划任务前面写上PATH=...指定PATH路径,否则经常报错找不到命令,只能绝对路径
- 2、带有特殊字符的计划任务,比如含有百分号,最好放入shell脚本中,再写入计划任务
- 3、crontab使用vim作为默认编辑器。见下面
良好的习惯:
[root@glowing-bliss-1 ~]# crontab -l
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
35 */1 * * * /bin/bash /data/docker_stats.sh >> /data/docker_stats.log
crontab使用vim作为默认的编辑器:
[root@glowing-bliss-1 ~]# echo "export EDITOR=vim" >> /etc/profile.d/env.sh
[root@glowing-bliss-1 ~]# . /etc/profile.d/env.sh
系统的计划任务:
cron.d/ cron.daily/ cron.deny cron.hourly/ cron.monthly/ crontab cron.weekly/
run-parts命令,可以扫描某目录,执行下面所有可以执行的文件。vim /usr/bin/run-parts
使用脚本写入计划任务:
实际写入的是/var/spool/cron/root,ubuntu是/var/spool/cron/crontabs/root
查看指定用户的计划任务:
crontab -u qqq -l
一次查看所有用户的计划任务:
[root@imooc-nginx scripts]# cat /var/spool/cron/*
*/15 * * * * date &> /tmp/qqq_date.txt
* 1 * * * ntpdate ntp.aliyun.com >/dev/null 2>&1
[root@imooc-nginx scripts]# grep '' /var/spool/cron/*
/var/spool/cron/qqq:*/15 * * * * date &> /tmp/qqq_date.txt
/var/spool/cron/root:* 1 * * * ntpdate ntp.aliyun.com >/dev/null 2>&1
如何实现秒级计划任务:
参考:https://blog.csdn.net/weixin_37998647/article/details/78669940
参考:https://www.cnblogs.com/yangxunwu1992/p/6054907.html