at
- atd负责at计划任务的服务,首先确保atd服务正常
systemctl restart atd # 重新启动atd服务
systemctl enable atd # 让atd服务开机自启
systemctl status atd # 查看atd目前状态
- 常用命令举例
[lsz@localhost ~]$ at now + 5minutes
at> mkdir hello
at> <EOT> #ctrl+D结束输入
job 1 at Mon Mar 28 02:30:00 2022
[lsz@localhost ~]$ atq #atq 查看at执行队列
1 Mon Mar 28 02:30:00 2022 a lsz
[lsz@localhost ~]$ at -l #at -l 查看at执行队列
1 Mon Mar 28 02:30:00 2022 a lsz
[lsz@localhost ~]$ at -c 1 #at -c jobID 查看某个任务的详情
...
[lsz@localhost ~]$ atrm 1 #atrm jobID 删除某个任务
#更多信息通过 man at获取
- at执行限制
利用/etc/at.allow和/etc/at.deny这两个文件实现对at的使用限制
- 先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
- 如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者,就可以使用 at 命令了。
- 如果两个文件都不存在,那么只有 root 可以使用 at 这个命令。
crontab
vim /etc/crontab
编辑系统的计划任务
当用户使用crontab创建计划任务之后,该计划任务会被记录到/var/spool/cron中
cron执行的每一项任务都会被记录到/var/log/cron这个日
crontab语法
crontab -e # 开始编辑任务内容
# 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
# | | | | |
# * * * * * command to be executed
# * 表示任意时刻
# , 表示分隔时间段
# - 表示一段时间范围
# /n 表示每隔n单位执行一次
crontab -l # 查看任务列表
crontab -r # 删除所有crontab的任务内容
下面是一些cron任务示例
* * * * * /home/dan/bin/script.sh # 每分钟运行。
0 * * * * /home/dan/bin/script.sh # 每小时运行。
0 0 * * * /home/dan/bin/script.sh # 每天零点运行。
0 9,18 * * * /home/dan/bin/script.sh # 在每天的9AM和6PM运行。
0 9-18 * * * /home/dan/bin/script.sh # 在9AM到6PM的每个小时运行。
0 9-18 * * 1-5 /home/dan/bin/script.sh # 周一到周五的9AM到6PM每小时运行。
*/10 * * * * /home/dan/bin/script.sh # 每10分钟运行。
crond服务读取配置文件的位置
- /etc/crontab
- /etc/cron.d/*
- /var/spool/cron/*