计划任务包括两种类型:
crontab 命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个 crontab 文件来保存调度信息。可以使用它运行任意一个 shell 脚本或某个命令。
crontab 命令格式
作用:用于生成 cron 进程所需要的 crontab 文件
# crontab -e * * * * * /root/shell/if.sh
crontab 文件格式
minute hour day-of-month month-of-year day-of-week commands
:----: :--: :----------: :-----------: :---------: :--------:
分钟 小时 天 月 周 命令或脚本
书写注意事项
注:whereis 命令:可以查看命令所在的文件路径
at 定时任务是指定一个时间执行一个任务,只能执行一次,需要安装 at 命令;
[root@node-01 ~]# yum -y install at
at [option] TIME
[root@node-01 ~]# systemctl start atd [root@node-01 ~]# systemctl enable atd
使用 at 命令创建的所有任务,都会以文件的格式保存在 /var/spool/at/ 目录下面
[root@node-01 ~]# at 21:25 at> echo "hello,world" at> <EOT> job 1 at Tue Mar 9 21:25:00 2021
at -l
或者atq
命令查看刚才创建的任务[root@node-01 ~]# at -l 2 Tue Mar 9 21:27:00 2021 a root [root@node-01 ~]# atq 2 Tue Mar 9 21:27:00 2021 a root
at 计划任务的执行结果都会邮件通知对应的用户,所以直接查看 /var/spool/mail/ 目录下对应用户文件的邮件内容或者使用 mail 命令指定编号查看
[root@node-01]# cat /var/spool/mail/root From root@node-01.localdomain Tue Mar 9 21:25:01 2021 Return-Path: <root@node-01.localdomain> X-Original-To: root Delivered-To: root@node-01.localdomain Received: by node-01.localdomain (Postfix, from userid 0) id EC49F200F3D3; Tue, 9 Mar 2021 21:25:00 +0800 (CST) Subject: Output from your job 1 To: root@node-01.localdomain Message-Id: <20210309132500.EC49F200F3D3@node-01.localdomain> Date: Tue, 9 Mar 2021 21:25:00 +0800 (CST) From: root@node-01.localdomain (root) hello,world # 定时任务执行结果
at -f
命令从指定文件中读取内容创建任务[root@node-01 ~]# echo "您好呀" >> at.txt [root@node-01 ~]# at -f at.txt 21:38 job 3 at Tue Mar 9 21:38:00 2021
at -d
命令删除指定编号任务[root@node-01 spool]# atq 3 Tue Mar 9 21:38:00 2021 a root [root@node-01 spool]# at -d 3 [root@node-01 spool]# atq
[root@node-01 spool]# echo "hello,wolrd" at 21:40 job 4 at Tue Mar 9 21:40:00 2021
[root@node-01 ~]# at -f test.txt 20:20 2018-09-05
[root@node-01 ~]# at -f test.txt now+10minutes
[root@node-01 ~]# at -f test.txt now+1hours
[root@node-01 ~]# at -f test.txt now+10day