以root用户身份,如何列出所有用户的crontab?


47

我有一个正在自动运行的脚本,无法在crontab中为期望的用户找到该脚本,因此我想在所有用户的crontabs中搜索该脚本。

本质上,我想crontab -l为所有用户运行。

Answers:


77

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

crontab -l -u <user>

或者,您可以从假脱机文件中找到所有用户的crontab文件

cat /var/spool/cron/crontabs/<user>

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

cd /var/spool/cron/crontabs/ && grep . *

1
太棒了,在/ var / spool / cron / crontabs /中查看效果很好,谢谢!
高度不规则

1
crontab -e -u <user>编辑它也可以正常工作
vladkras

/var/spool/cron/<user>在我的Centos 7主机上。
Bob Stein

5

一种列出所有用户并为每个用户打印cron的衬纸:

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

此解决方案:

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

注意:这适用于,sh但不适用bash
TIW

0

在RHEL / OEL中,您可以列出所有用户创建的cron作业:

#cd /var/spool/cron/
#ls -1
root
oracle
user1

要查看root的cronjobs:

#cat root

应该使用crontab(1)接口(命令),因为它可以防止同时编辑crontab数据库。
德克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.