如何在Linux中列出Cron作业

Cron是一个调度守护程序,可让您按指定的时间间隔调度任务的执行。 这些任务称为cron作业,可以安排为按分钟,小时,每月的某天,每月,每周的某天或它们的任意组合运行。

Cron作业通常用于执行系统维护操作。 例如,可以将cron作业设置为自动执行重复性任务,例如备份数据库,使用最新的安全补丁程序更新系统,清除缓存,发送电子邮件等。

本文介绍了如何列出cron作业。

列出用户Cron职位#

用户的crontab文件是根据用户名命名的,其位置因操作系统而异。 在基于Red Hat的发行版(例如CentOS)中,crontab文件存储在 /var/spool/cron 目录,而在Debian和Ubuntu上,文件存储在 /var/spool/cron/crontabs 目录。

要获取当前登录用户的所有cron作业的列表,请使用 crontab 命令:

crontab -l

如果用户设置了cron作业,则用户crontab的内容将显示在屏幕上。 否则,命令将打印 no crontab for <username>

要列出其他用户的cron作业,请使用 -u 选项以在命令末尾指定用户名。 例如,要列出名为“ mark”的用户的cron作业,可以使用:

sudo crontab -u mark -l

每个用户crontab文件都有 600 权限并归用户所有。 只有root用户和具有 sudo 特权可以查看其他用户的cron作业。

要找出哪些用户创建了cron作业,请列出 spool 作为root或sudo用户的目录:

sudo ls -1 /var/spool/cron/crontabs

输出将如下所示:

root
mark

上市系统的Cron职位#

/etc/crontab 和里面的文件 /etc/cron.d 目录是系统范围的crontab文件,只能由系统管理员编辑。

使用 catless 或任何文本编辑器以查看文件的内容:

cat /etc/crontab /etc/cron.d/*

在大多数Linux发行版中,您也可以将脚本放入 /etc/cron.{hourly,daily,weekly,monthly} 目录,并且脚本每执行一次 hour/day/week/month

这些目录中的每个脚本都必须具有执行权限。 否则,将不执行cron作业。

例如,要查看所有每周的cron作业,请输入:

ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10  2019 man-db

如果输出为空,则意味着没有每周的cron作业。

系统计时器

Systemd计时器是以。结尾的单位文件 *.timer 后缀,并允许您根据时间运行服务单元。

在使用systemd作为初始化系统的Linux发行版中,计时器用作标准cron守护程序的替代方法。

要查看计算机上所有systemd计时器的列表,请运行以下命令:

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计时器。

如有任何疑问,请随时发表评论。

cron crontab终端

Sidebar