定时任务
定时任务分为两类:
-
at(定时执行一次)
-
cron(重复执行)
at
-
常用时间格式
HH:MM
:表示小时和分钟,例如 “14:30” 表示下午2点30分。now + x units
:表示从当前时间开始的一段时间后,其中 x 是一个整数, units 可以是 minutes、hours、days 等。例如,now + 1 hour 表示从当前时间开始的1小时后。YYYY-MM-DD HH:MM
:表示具体的日期和时间,例如 “2024-03-04 14:30” 表示2024年3月4日下午2点30分。
-
使用方法
at now +1min
之后回车,会提示at>
,之后就可以输入命令了,使用ctrl+d
进行提交 -
任务查询
atq
:使用atq
查看系统中所有的at任务
注:若提示无法打开/var/run/atd
,说明该程序还未打开,需要使用systemctl start atd打开即可
cron
-
命令存储位置:
cron执行的命令会存储于
/etc/crontab
文件中 -
服务:
systemctl status crond.service
,一定要确保是开着的注:systemctl命令后边常见的参数:
# start: 启动一个服务。 systemctl start <service_name> # stop: 停止一个服务 systemctl stop <service_name> # restart: 重启一个服务。 systemctl restart <service_name> # status: 显示一个服务的状态。 systemctl status <service_name> # enable: 设置一个服务在系统启动时自动启动。 systemctl enable <service_name> # disable: 禁止一个服务在系统启动时自动启动。 systemctl disable <service_name> # reload: 重新加载一个服务的配置文件。 systemctl reload <service_name> # is-active: 检查一个服务是否处于活动状态。 systemctl is-active <service_name> # is-enabled: 检查一个服务是否已经设置为在系统启动时自动启动。 systemctl is-enabled <service_name> # list-units: 列出当前加载的所有单元(包括服务、套接字、挂载点等)。 systemctl list-units
-
命令
-
创建:
crontab -e
使用该命令之后,会进入一个编辑空间,可以在其中使用cron 表达式和shell命令,之后使用vim的退出方式
wq!
即可 -
查询
crontab -l
-
删除
crontab -r
注:cron 表达式的最小时间单位是分钟
-
-
示例:
-
首先创建一个createDoc.sh文件,内容如下:
# 反引号代表优先执行 # 如果想创建一种根据当前时间命名的文件,可以使用反引号,就是esc下面的那个 # 注:date +%F-%H-%M-%S 会输出2024-02-28-21-57-00, touch /root/`date +%F-%H-%M-%S`.txt
-
执行
crontab -e
,在编辑框内输入:* * * * * /createDoc.sh
就会根据cron表达式执行相关shell内容
-