一、at命令
这个命令是用来执行一次例行任务,比如我想要指定某个时间点来保存下某个目录中的文件。 /etc/at.allow , /etc/at/at.deny这两个文件决定了你是否可以使用at。
利用上述两个文件来实现对at的使用限制。加上这两个文件之后,at的工作情况其实是这样的:
1.先找/etc/at.allow这个文件,写在这个文件中的用户才能使用at,没有在这个文件中的用户不可以使用at,即使没有写在/etc/at.deny中。
2.如果/etc/at.allow不存在,则查找/etc/at.deny这个文件,写在这个文件中的用户不能使用at,没有在这个文件中的用户可以使用at。
3.如果两个文件都不存在,则只有root可以使用at
1、首先查看at命令是否开启,有些不开启
[root@my-linux ~]# systemctl status atd.service
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-09-07 10:43:16 CST; 1 months 8 days ago
Main PID: 1785 (atd)
Tasks: 1 (limit: 10822)
Memory: 392.0K
CGroup: /system.slice/atd.service
└─1785 /usr/sbin/atd -f
如果显示running就OK了;如果不曾开启,就手动开启systemctl start atd.service
2、at启动了,可以写自己的任务来偷懒了
格式:at now + time,now表示当前的时间加上后续设定的时间
或者直接指定时间
at 4pm
命令完成后Ctrl+D结束输入
3、任务制作完成,想看看是否成功了
atq
如:24 Sat Apr 11 21:21:00 2015 a root
4、如果觉得任务不合适,那么可以删除
atrm jobnumber
这里的jobnumber就是atq查询出来的任务号。
atq 24
删除完毕之后就可以使用atq再查看一下
二、crontab命令
crontab是循环命令,可以多次执行,只要到点了。
1、 首先确认crontab是否开启
systemctl status crond.service
出现running就是运行了
2、然后就是了解命令格式
minute hour day month week 脚本/命令
一共6个字段,不确定什么时候执行就写“*“

比如:
每分钟执行一次: */1 * * * * 脚本/命令,这是默认的格式。
每一小时:* */1 * * * 脚本/命令
每两天:* * */2 * * 脚本/命令
crontab命令参数:
-u user
-l 列出-u指定的user的crontab任务或者本用户的任务
-r 删除-u指定的user的crontab任务或者本用户的任务
-e 编辑-u指定的user的crontab任务或者本用户的任务
例如每分钟记录一次时间
*/1 * * * * date >> /root/date
Comments NOTHING