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