#1 楼
根据Linux系统的设置,您可以查看:/var/spool/cron/*
(用户crontabs)/etc/crontab
(系统级crontab )也有许多发行版:
/etc/cron.d/*
这些配置与
/etc/crontab
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
的语法相同/etc/cron.monthly
这些只是目录,其中包含根据其目录名称按小时,每日,每周或每月执行的可执行文件。
最重要的是,您可以在工作中使用(请检查
/var/spool/at/*
),anacron(/etc/anacrontab
和/var/spool/anacron/*
)以及其他我可能忘记的东西。评论
谢谢,我在/etc/cron.daily中找到了它们。日常文件如何工作?日常工作什么时间开始?在我的机器上,它们似乎在中午左右运行,但是它想告诉我的系统管理员如何将其更改为午夜。
–坦率
2011年2月7日在21:21
从/ etc / crontab中调用cron.daily,例如在我的Ubuntu系统上,它是:25 6 * * * root test -x / usr / sbin / anacron || (cd / && run-parts --report /etc/cron.daily),表示上午6:25。
–柯
2011-2-8在1:20
如果您想要更多的数据点,也可以从我的RHEL5系统上的/ etc / crontab中调用cron.daily。
–jsbillings
2011年2月8日在13:34
在较新的Fedora(可能还没有看过RHEL6)上,cronie守护程序照顾使用/ etc / anacrontab中配置的用户。
–mattdm
2011-2-8 15:48
有时它也在/ var / cron中。
– CMCDragonkai
2014年6月30日在2:57
#2 楼
对于大多数Cron(例如Vixie-Cron-Debian / Ubuntu默认,Cronie-Fedora默认,Solaris Cron ...),您可以通过以下方式获取当前用户的计划cron作业列表:$ crontab -l
,或通过
给其他用户使用
# crontab -l -u juser
要获取所有用户的crontab,您可以遍历所有用户并调用此命令。
或者,您可以查找假脱机文件。通常,它们保存在
/var/spool/cron
下,例如对于vcron以下目录/var/spool/cron/crontabs
包含所有用户的所有已配置crontab-除了root用户,该root用户也可以通过系统级crontab来配置作业。位于
/etc/crontab
使用cronie(Fedora / CentOS上的默认设置),还有一个用于系统cron作业的
.d
样式配置目录:/etc/cron.d
(和往常一样,
.d
目录简化了维护不同包中的配置条目的过程。)为了方便起见,大多数发行版还提供了链接/存储的脚本会定期执行,例如:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
这些脚本的及时执行通常通过系统crontab中的
run-parts
条目或anacron进行管理。使用Systemd(例如在Fedora,CentOS 7等上),还可以通过计时器单元配置定期作业执行。可以通过以下方式显示已启用的系统计时器:
$ systemctl list-timers
请注意,root用户也可以在配置了计时器的情况下使用户systemd实例运行。例如,在Fedora上,默认情况下,将为当前登录的每个用户启动一个用户systemd实例。可以通过以下方式识别它们:
$ ps aux | grep 'systemd[ ]--user'
那些用户计时器可以通过以下方式列出:
$ systemctl --user list-timers
发出
list-timers
命令的另一种方法是在通常的系统和用户systemd配置目录中搜索计时器单元文件(模式:*.timer
)和指向它们的符号链接:$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(与普通服务单元一样,通过在右侧systemd config目录中创建符号链接来启用计时器单元。)
另请参见:
ArchWiki有关Cron的文章
有关Systemd计时器的ArchWiki文章
评论
我没有投票。但是我只是尝试了crontab -l -u root(因为我想了解那些在root下运行的cronjob),它说我没有使用-u的特权。
–坦率
2011-2-7 21:00
然后您必须以足够的权限调用它-即以root用户身份。
–maxschlepzig
2011-2-7 21:02
仍未完成-一些版本的cron从/etc/cron.d和/ etc / cron运行作业。{每天,每小时,每月,每周}没有从/ etc / crontab调用的帮助程序。
–mattdm
2011-2-8 15:43
@maxschlepzig-但并非总是如此。问题是“我如何获得所有cron工作清单”;答案是“嗯,这里有一些”不是答案。
–mattdm
2011年2月8日在17:20
@maxschlepzig — Fedora和RHEL6中附带的cronie不引用/ etc / crontab中的那些,而是使用/ etc / anacrontab。我可能会误以为在任何配置文件中都没有引用这些的实际实现。 (但是后来,我也没有投票。...我只是在说。)
–mattdm
2011-09-15 20:28
#3 楼
crontab -u用户名-l;
列出所有用户的所有cron
以超级用户身份运行
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done
评论
OP要求提供所有cron作业的列表。
– Drav Sloan
15年8月4日在11:59
由于某些原因,它不显示/etc/cron.d/作业。
–贾姆希德
16年11月2日在23:28
没用“ www数据无crontab”。但是用户名www-data存在。
– mishanon
17-10-11在7:19
#4 楼
您可以使用以下命令列出所有cron作业(我正在使用更多内容来列出输出中的位置):sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' | less
或不加注释:
sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' \
| grep "^\s*[^#]"
crontab具有用于运行每小时,每天,每周和每月以cron。为单位的脚本-您可以列出以下内容:
ls /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
评论
这不是问题的答案,而只是关于最佳实践的说明。可以将它们配置为root或apache或其他用户的按用户cron作业,但是一个应使用/ etc / crontab或(最好在大多数发行版中)/etc/cron.d和/ etc / cron。[时间范围]。 br />stackoverflow.com/questions/134906/…
我在以下位置发布了一个脚本,该脚本可以在一定程度上实现该脚本的自动化:-stackoverflow.com/questions/134906/…它并不完美,但可能满足了90%的需求。这是不使用bash编写内容的一个很好的例子。