前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Linux 中列出 Cron 定时任务

如何在 Linux 中列出 Cron 定时任务

作者头像
雪梦科技
修改2020-05-27 12:22:53
12.4K0
修改2020-05-27 12:22:53
举报
文章被收录于专栏:ITCoder

本文最先发布在:https://cloud.tencent.com/developer/article/1632348

Cron 是一个定时守护程序,它允许你在指定的时间周期内定时执行任务。这些任务被称为 定时任务,它们通过由 分钟,小时,日,月,星期,或者其中的任意组合来指定时间。

Cron 定时任务通常被用来执行系统维护操作。例如,一个 cron 定时任务可以被设置为自动重复任务,例如:备份数据库,使用最新的安全补丁来更新系统,清理缓存,发送邮件,等等。

本文讲解如何列出 cron 定时任务。

一、列出用户的 Cron 定时任务

用户的 crontab 文件被命名为用户的名字,并且它们的位置由于操作系统不同而不同。在基于 Red Hat 的发行版中,例如 CentOS, crontab文件被存储在 /var/spool/cron目录,而在 Debian 和 Ubuntu中,这些文件被存储在 /var/spool/cron/crontabs文件夹。

想要获得你所登录的当前用户名下的所有 Cron 定时任务, 使用crontab 命令:

代码语言:javascript
复制
crontab -l

如果用户已经设置了 cron 定时任务,那么用户 crontabs 内容将会显示在屏幕上。否则,这个命令将会打印出no crontab for <username>

想要列出其他用户的 Cron 定时任务,使用-u 选项在命令最后来指定用户名称。例如,想要列出用户名为“mark” 的 cron 任务,你将使用:

代码语言:javascript
复制
sudo crontab -u mark -l

每一个用户 crontab 文件权限为 600,并且归属于用户所有。仅仅 root 或者其他有 sudo 权限的用户可以查看其他用户的 cron 定时任务。

想要列出那些用户创建了 cron 定时任务,以 root 或者其他 sudo 用户身份列出spool目录:

代码语言:javascript
复制
sudo ls -1 /var/spool/cron/crontabs

输出类似下面这样:

代码语言:javascript
复制
root
mark

二、列出系统的定时任务

/etc/crontab和在/etc/cron.d目录下的文件都是系统范围的 crontab 文件,它们仅仅可以被系统管理员编辑。

使用 cat, less 或者其他任何文本编辑器来查看文件内容:

代码语言:javascript
复制
cat /etc/crontab /etc/cron.d/*

在大部分 Linux 发行版中,你还可以将脚本放置在/etc/cron.{hourly,daily,weekly,monthly}文件夹,并且脚本将会在每一个hour/day/week/month时间执行。

这些目录下的每一个脚本都必须拥有执行权限。否则,cron 定时任务将不会被执行。

例如,想要查看所有的周定时任务,你可以输入:

代码语言:javascript
复制
ls -l /etc/cron.weekly/

输出:

代码语言:javascript
复制
-rwxr-xr-x 1 root root 813 Feb 10  2019 man-db

如果输出为空,它意味着没有周定时任务。

三、systemd 定时器

Systemd 定时器是一些以*.timer的单元文件,它允许你基于时间来运行任务。

在使用 systemd 作为 init 系统的发行版上, 定时器 被用来和标准的 cron 守护程序来交互。

想要在你的机器上查看 systemd 定时器,运行下面的命令:

代码语言:javascript
复制
systemctl list-timers

输出:

代码语言:javascript
复制
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 定时器。

如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年05月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、列出用户的 Cron 定时任务
  • 二、列出系统的定时任务
  • 三、systemd 定时器
  • 四、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档