作为 root,我如何列出所有用户的 crontabs?

Hig*_*lar 82 cron

我有一个自动运行的脚本,我在预期用户的 crontab 中找不到,所以我想搜索所有用户的 crontab。

基本上我想crontab -l为所有用户运行一个。

kle*_*erk 126

好吧取决于脚本,但您可以轻松地以 root 身份找到您的 crontab

crontab -l -u <user>
Run Code Online (Sandbox Code Playgroud)

或者您可以从 spool 中找到 crontab,其中所有用户的文件所在位置

cat /var/spool/cron/crontabs/<user>
Run Code Online (Sandbox Code Playgroud)

要显示所有用户的 crontab,并在每行开头打印用户名:

cd /var/spool/cron/crontabs/ && grep . *
Run Code Online (Sandbox Code Playgroud)

  • `crontab -e -u &lt;user&gt;` 也可以编辑它 (2认同)
  • 我的 Centos 7 主机上的“/var/spool/cron/&lt;user&gt;”。 (2认同)

小智 19

一个 liner 列出所有用户并为每个用户打印 cron:

for user in $(getent passwd | cut -f1 -d: ); do echo $user; crontab -u $user -l; done
Run Code Online (Sandbox Code Playgroud)

这个解决方案:

  • 不需要知道系统特定的 crontab 路径(例如/var/spool/cron/crontabs/vs/var/spool/cron/
  • 不会列出“孤儿” crons,即不再存在的用户的 cron(因此无法有效执行)