计划任务,就是有计划的任务,就是我们想按照我们的计划自动的执行任务。
关键点有 2 个:
第一个是计划,第二个是自动。
1.一次性计划任务的介绍
所谓一次性计划任务,就是按照 计划 只 执行一次 的任务。
2.命令
Linux中的 at 命令就是用来创建一次性计划任务的,at 命令有一个服务 atd 会以后台模式运行,检查当前的时间来决定是否运行“计划”。
默认情况下,atd 服务每 60 秒检查一次目录,有“计划”时,会检查“计划”运行时间,如果“计划运行”的时间与当前时间匹配,则运行此“计划”。
3.创建一次性计划任务
首先,at 服务必须要开:
systemctl start atd
查看 atd 的状态(是否为active):
systemctl status atd
查看是否开启:
systemctl is-active atd
停掉atd服务(将不能再执行一次性计划任务):
systemctl stop atd
[root@localhost ~]# vim /root/backup-yum-repo.sh
[root@localhost ~]# cat /root/backup-yum-repo.sh
#!/bin/bash
mkdir /opt/yum-repo-backup-dir -p
cp -r /etc/yum.repos.d /opt/yum-repo-backup-dir/yum.repos.d-`date +"%Y-%m-%d-%H:%M:%S"`.bak
[root@localhost ~]# chmod +x backup-yum-repo.sh
使用 at 命令来执行一次性备份 yum 仓库文件,为了顺利的查看 at 的执行结果,使用下面命令来关闭 ntp 同步,并设置当前时间
#timedatectl set-ntp 0 命令关闭了 ntp 同步
[root@localhost ~]# timedatectl set-ntp 0
#date -s "2021-12-1 16:58:30" 命令设置日期和时间
[root@localhost ~]# date -s "2021-12-1 16:58:30"
示例一:具体时间的一次性计划任务
下午的5点执行,即17:00执行(如果此时的时间已经过了当天下午,那么,顺延到第二天)
# 下面命令中的 <EOT> 是提交 at 的计划任务,使用ctrl+d即可出现
[root@localhost ~]# at 5:00PM
warning: commands will be executed using /bin/sh
at> /root/backup-yum-repo.sh
at> <EOT>
job 5 at Wed Dec 1