获取作为 cron 作业运行的所有脚本及其路径的列表

获取作为 cron 作业运行的所有脚本及其路径的列表

我正在寻找一些脚本或终端命令来列出所有活动脚本(最好带有它们的路径),这些脚本由 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

相关内容