我正在寻找一些脚本或终端命令来列出所有活动脚本(最好带有它们的路径),这些脚本由 cron、cron.daily 和/或 anacron 定期运行。我不是在寻找脚本特定时间段的过滤器,而是需要列出所有脚本(但是有些管理员可能需要这种过滤器)。
目的:记录定期运行的所有脚本,以便轻松高效地进行调试或故障检查、更新和传输到较新的系统。
谢谢
答案1
我不确定这是否是你想要的。我前段时间在某个 stackexchange 上找到了这个答案,并在一台服务器上使用了它。
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
这将列出所有用户的所有 crontab。
答案2
至于您在互联网上找到的任何内容,您都不应该在没有理解的情况下运行,但以下内容将获取在cron.hourly
/ cron.daily
/cron.monthly
文件夹中运行的脚本的文件名和显示路径...(在我的情况下是 CentOS)
cd /etc/cron.hourly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.daily/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.weekly/&&for i in $(ls);do find `pwd` -name $i;done&&cd /etc/cron.monthly/&&for i in $(ls);do find `pwd` -name $i;done
基本上有多个版本:
cd /etc/cron.hourly/&&for i in $(ls);do find 'pwd' -name $i;done
更改目录然后ls
查找每个文件名并显示路径
编辑:对于喜欢结构的编码人员来说......与函数相同:
function AllTheCrons {
cd /etc/cron.hourly/
for i in $(ls);
do
find `pwd` -name $i;
done;
cd /etc/cron.daily/
for i in $(ls);
do
find `pwd` -name $i;
done;
cd /etc/cron.weekly/
for i in $(ls);
do
find `pwd` -name $i;
done;
cd /etc/cron.monthly/
for i in $(ls);
do
find `pwd` -name $i;
done;
}
然后运行:
AllTheCrons