Мій sysadmin налаштував на моїй машині купу робочих місць. Я хотів би точно знати, що заплановано на який час. Як я можу отримати цей список?
Мій sysadmin налаштував на моїй машині купу робочих місць. Я хотів би точно знати, що заплановано на який час. Як я можу отримати цей список?
Відповіді:
Залежно від налаштування вашої системи Linux, ви можете переглянути:
/var/spool/cron/* (користувацькі crontabs)/etc/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занадто.
У більшості крон (напр., Vixie-Cron - Debian / Ubuntu за замовчуванням, Cronie - Fedora за замовчуванням, Solaris Cron ...) ви отримуєте список запланованих завдань на крон для поточного користувача через:
$ crontab -l
або для іншого користувача через
# crontab -l -u juser
Щоб отримати чіткості для всіх користувачів, ви можете перейти через всіх користувачів і викликати цю команду.
Крім того, ви можете шукати файли котушки. Зазвичай вони зберігаються під /var/spool/cron, наприклад, для наступного каталогу vcron
/var/spool/cron/crontabs
містить усі налаштовані Crontabs всіх користувачів - крім кореневого користувача, який також може налаштувати завдання за допомогою системної crontab, яка знаходиться за адресою
/etc/crontab
З Cronie (за замовчуванням у Fedora / CentOS) є також .dкаталог config стилів для системних завдань cron:
/etc/cron.d
(Як завжди, .dкаталог спрощує збереження записів конфігурації, що входять до складу різних пакетів.)
Для зручності більшість дистрибутивів також надають каталоги, де пов'язані / зберігаються сценарії періодично виконуються, наприклад:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
Своєчасним виконанням цих сценаріїв, як правило, керується за допомогою run-partsзаписів у системному кронтабі або через анакрон .
За допомогою Systemd (наприклад, у Fedora, CentOS 7, ...) періодичне виконання завдань може бути додатково налаштовано за допомогою таймерних блоків . Увімкнені системні таймери можуть відображатися через:
$ systemctl list-timers
Зауважте, що у користувачів, окрім кореня, можуть бути і примірники системних користувачів, які працюють там, де налаштовані таймери. Наприклад, у Fedora за замовчуванням запускається користувальницький системний екземпляр для кожного користувача, який зараз увійшов у систему. Їх можна розпізнати за допомогою:
$ ps aux | grep 'systemd[ ]--user'
Ці таймери користувачів можуть бути перелічені через:
$ systemctl --user list-timers
Альтернативою видачі list-timersкоманди є пошук файлів одиниць таймера (шаблону:) *.timerта символічних посилань на них у звичайних системних та системних каталогах, налаштованих системою користувача:
$ 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(тому що ті, які я хочу знати, про те, що я працюю 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].