定时任务
定期执行任务(执行命令),和windows的计划任务是一样的。
#时间命令
date
#查看时间
date
date +%F #显示日期
date +%T #显示时间
date +%F\ %T
#修改时间和日期
date -s '20240910 12:00:00'
#同步时间,如果时间和当前时间不一致,可以进行时间同步
systemctl restart chronyd
#定时任务格式
* * * * * shell
分 时 日 月 周 命令
分:0-59
时:0-23
日:1-31
月:1-12
周:1-7
#每5分钟执行一次
*/5 * * * *
#每1小时的01分执行一次
01 */1 * * *
#每半小时执行一次
00,30 */1 * * *
#每天晚上8:00执行一次
00 20 * * *
#每个月1号晚上8:00执行
00 20 1 * *
#每年1月1号晚上8:00执行
00 20 1 1 *
#每周一、周三、周五晚上8:00执行
00 20 * * 1,3,5
#几个符号的意思(以分钟为例)
* 每分钟
*/5 每5分钟
05 第5分钟
#查看已有的定时任务,遇到特殊符号时,需要添加转义符号\
crontab -l
#编辑定时任务,每一行都可以写一个定时任务,即可以写多个定时任务
crontab -e
#删除定时任务
crontab -r
#监测文件尾部内容的变化
tail -f 文件路径
#是这个进程在执行定时任务
ps -ef | grep cron
#可以自行重启这个进程
systemctl restart crond
我们设置一个定时关机的任务,要求每晚9:00准时关机,执行以下命令crontab -e
进入编辑页面后,输入指令
00 21 * * * shutdown -h now
修改系统时间
date -s '20:59:30'
发现时间到了之后,并没有自动关机,并且看到了一个提示,有个邮件,这是因为如果定时任务的格式或者内容有问题,系统都会发邮件提示。
所以,如果指令不行,就写指令的绝对路径。可以通过which
来查找指令的绝对路径,如which shutdown
查到shutdown指令的绝对路径,重新编辑定时任务的指令
再次执行,就可以自动关机了。