Aristotle
发布于 2023-11-27 / 8 阅读 / 0 评论 / 0 点赞

linux下的定时任务at,crontab,SystemD定时器

linux下的定时任务at,crontab,SystemD定时器

参考:Linux的一些知识(9)

参考:Centos7 定时任务crond 命令详解

参考:SystemD定时器

打印所有用户级别的crontab,也就时目录/etc/spool/cron下面的以用户名取名的文件里的定时任务

cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}

at 一次性任务

systemctl status atd

/etc/at.deny

/etc/at.allow

cron 周期性任务

crontab -e 定时任务文件保存及查看地方(/var/spool/cron)

systemctl status crond

/etc/cron.deny 该文件中所列的用户不允许使用 crontab 命令

/etc/cron.allow 该文件中所列的用户允许使用crontab 命令

/var/spool/cron/ 是所有用户的crontab 文件

/var/spool/cron/crontabs

/etc/crontab

crontab -e是每个用户都可以执行的命令,也就是说,不同的用户身份可以执行自己的定时任务。但是有些定时任务需要系统执行,这时就需要编辑 /etc/crontab 这个配置文件了。

当然,并不是说写入 /etc/crontab 配置文件中的定时任务在执行时不需要用户身份,而是crontab -e命令在定义定时任务时,默认用户身份是当前登录用户。而在修改 /etc/crontab 配置文件时,定时任务的执行者身份是可以手工指定的。这样定时任务的执行会更加灵活,修改起来也更加方便。