我的系统管理员已在我的计算机上设置了一堆cron作业。我想确切地知道什么时间安排了。如何获得该清单?
我的系统管理员已在我的计算机上设置了一堆cron作业。我想确切地知道什么时间安排了。如何获得该清单?
Answers:
根据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/*
),蟒蛇(/etc/anacrontab
和/var/spool/anacron/*
),以及其他我可能忘记的工作。
/etc/cron.daily
。该daily
文件如何工作?日常工作什么时间开始?在我的机器上,它们似乎在中午左右运行,但是它想告诉我的系统管理员如何将其更改为午夜。
/etc/crontab
,例如在我的Ubuntu系统上是:25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
表示上午6:25。
cronie
守护进程负责使用中的配置/etc/anacrontab
。
/var/cron
也在里面。
对于大多数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用户,该用户也可以通过系统级crontab来配置作业,该crontab位于
/etc/crontab
对于cronie(Fedora / CentOS上的默认设置),还有一个.d
用于系统cron作业的样式配置目录:
/etc/cron.d
(与往常一样,该.d
目录简化了维护属于不同软件包的配置条目的过程。)
为了方便起见,大多数发行版还提供了一个目录,在该目录中定期执行链接/存储的脚本,例如:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
这些脚本的及时执行通常通过run-parts
crontab系统中的条目或anacron进行管理。
使用Systemd(例如在Fedora,CentOS 7等上),可以另外通过计时器单元配置定期作业执行。可以通过以下方式显示已启用的系统计时器:
$ systemctl list-timers
请注意,root用户旁边的用户也可能在配置了计时器的情况下运行用户systemd实例。例如,在Fedora上,默认情况下,将为当前登录的每个用户启动一个用户系统实例。可以通过以下方式识别它们:
$ ps aux | grep 'systemd[ ]--user'
这些用户计时器可以通过以下方式列出:
$ systemctl --user list-timers
发出list-timers
命令的另一种方法是*.timer
在通常的系统目录和用户systemd配置目录中搜索计时器单元文件(模式:)和指向它们的符号链接:
$ 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目录中创建符号链接来启用计时器单元。)
也可以看看:
crontab -l -u root
(因为我想了解在这些环境下运行的那些cronjob root
),它说我没有使用权限-u
。
root
用户身份)调用它。
cronie
与Fedora和RHEL6一起提供,不引用/etc/crontab
,而是使用/etc/anacrontab
。我可能会误以为在任何配置文件中都没有引用这些的实际实现。(但后来,我也没有拒绝投票。...我只是在说。)
列出给定用户的所有任务。
crontab -u用户名-l;
列出所有用户的所有任务
以超级用户身份运行
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done
root
或apache
或什么,但一个应该使用/etc/crontab
或(更好,在大多数发行版)/etc/cron.d
和/etc/cron.[timeframe]
。