Мій 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]
.