Получить список всех скриптов и их путей, которые запускаются как задания 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найдите и отобразите путь

EDIT: для программистов, которые любят структуру... то же самое, что и функция:

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

Связанный контент