一 at 执行一次的任务
有时at不是自启的,要在设置下。
systemctl restart atd # 重启这个服务
systemctl enable atd # 开机自启
systemctl status atd # 查看目前状态
运行方式:
我们使用at这个命令来产生所要运行的任务,并将这个任务以文本文件的方式写入/var/spool/at 目录内,该任务便能等待atd这个服务的使用和执行了。
还有两个文件要设置:
/etc/at.allow # 在这个文件中的用户才能使用at
/etc/at.deny # 在这个文件中用户不能使用at
如果两个文件都不存在,那么这有root用户可以使用at命令
at [-mldv] TIME
at -c 任务号码
-m 当at的任务完成后,即使没有输出信息,也发送邮件通知使用者已完成
-l at -l 相当于atq 列出目前系统上面的at计划任务
-d at -d 相当于atrm, 取消一个在at计划中的任务
-v 可以使用较明显的时间格式列出at计划中的任务列表
-c 可以列出后面接的该任务的实际命令内容
Time 如下:
04:00 04:00 2011-11-11 now + 5 minutes 之类的
at now + 5 minutes
at> /bin/mail -s "xxxx" root < /root/.bashrc
at> EOF # 手动输入ctrl + d 终止输入
at 好像没啥用,注意的是,at的执行与终端环境无关,而所有标准输出/标准错误输出都会发送到执行者mailbox中,所以终端不会有任何消息,at 执行 echo就看不到结果。
二 cron
还是有两个文件,/etc/cron.allow /etc/cron.deny , 默认情况下,任何用户只要不被列入/etc/cron.deny中,那么他就可以直接执行crontab -e.
当用户使用crontab这个命令来建立计划任务之后,该项任务就会被记录到/var/spool/cron/中。
cron执行的每一项任务都会被记录到/var/log/cron中。
crontab [-u username] [-l | -e | -r]
-u 只有root才能执行这个任务,即帮助其他使用者建立删除crontab计划任务
-e 编辑crontab的任务内容
-l 查看crontab的任务内容
-r 删除所有的crontab的计划任务
时间配置:
* * * * *
依次是 分时日月周
0,3,6 * * * command # 每天的三点和六点执行
20 8-20 * * * # 8点到12点每小时的20分执行,8:20 9:20,,,
*/5 * * * * # / 每隔5分钟执行一次
上面的命令是针对用户的,如果要执行系统的例行性任务时,只要编辑/etc/crontab这个文件就好了。
用发差不多。