Cron是一个调度守护程序,可让您按指定的时间间隔调度任务的执行。本教程介绍如何列出cron作业。
这些任务称为cron作业,可以计划按分钟,小时,一个月的某天,一个月,一周的某天或它们的任意组合运行。
Cron作业通常用于执行系统维护操作。可以设置cron作业运行自动化重复性任务,例如备份数据库,使用最新的安全补丁更新系统,清除缓存,发送电子邮件等。
列出用户Cron作业任务
用户的crontab文件是根据用户名命名的,其位置因操作系统而异。在基于RedHat的Linux发行版,例如CentOS。crontab文件存储在/var/spool/cron
目录。
基于Debian的Linux发行版,例如Ubuntu。文件存储在/var/spool/cron/crontabs
目录。
要获取您当前用户的所有cron作业的列表,请使用crontab
命令的-l
选项运行命令crontab -l
。
如果用户设置了cron作业,则用户crontab的定时任务将打印在终端的屏幕。否则,crontab
命令将打印no crontab for <username>
。
crontab -l
要列出其他用户的cron作业,请使用-u
选项,后用户名。 例如要列出用户myfreax的cron作业,请运行命令sudo crontab -u mark -l
。
每个用户crontab文件都具有600
权限,并由用户拥有。只有root用户和具有sudo权限的用户才能查看其他用户的cron作业。
如果要找出哪些用户创建cron作业,请以root或者具有sudo权限的用户运行ls命令列出spool
目录。
sudo crontab -u myfreax -l
sudo ls -1 /var/spool/cron/crontabs
root
myfreax
列出系统的Cron作业任务
/etc/crontab
和/etc/cron.d
目录中的文件是系统范围内的crontab文件,只能由root用户编辑。可以运行cat
,less
命令或者使用文本编辑器查看文件的内容。
在大多数Linux发行版,Cron作业任务的脚本也可以存储在/etc/cron.{hourly,daily,weekly,monthly}
目录。
这些目录将按hour/day/week/month
执行一次脚本。每个脚本都必须具有可执行权限。 否则,将不执行cron作业。
如果你要查看每周corn作业任务,请运行命令sudo ls -l /etc/cron.weekly/
。如果输出为空,则意味着没有每周的cron作业。
sudo cat /etc/crontab /etc/cron.d/*
sudo ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
系统计时器
系统计时器是以*.timer
后缀结尾的文件,可让您根据时间运行服务。在使用systemd作为初始化系统的Linux发行版中,将会使用计时器代替标准cron守护程序。
要查看计算机上所有systemd计时器的列表,请运行命令sudo systemctl list-timers
。
NEXT 下次运行的时间,LEFT 距离下次运行的剩余时间,LAST 最后一次运行的时间。
PASSED 距离最后一次运行已经过去的时间,UNIT 定时器名称,ACTIVATES 运行的服务名称。
sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
结论
我们已向您展示了如何列出cron作业和systemd计时器。如有任何疑问,请随时发表评论。