Воспользуйтесь преимуществами команды crontab Linux, чтобы автоматизировать различные рутинные и повторяющиеся задачи, упрощая вашу жизнь. Этот отличный и простой в использовании инструмент в сочетании с некоторыми сценариями может не только автоматизировать все виды задач, но и помочь избежать простых человеческих ошибок или забывчивости.

Здесь вы узнаете, что такое crontab, как добавить автоматизированные задания, а также узнаете несколько реальных примеров.

Что такое Кронтаб?

Crontab - это процесс-демон, который работает в фоновом режиме почти на всех машинах Linux и используется для планирования и выполнения автоматических задач через заданные интервалы времени. Он также часто используется разработчиками программного обеспечения для выполнения трудоемких задач в фоновом режиме.

Это может быть что угодно, включая, помимо прочего, отправку пакетных писем, проверку ленты Twitter, выполнение резервного копирования или просто напоминание.

Основные команды Crontab

У каждого пользователя Linux на машине есть собственный файл crontab, содержащий их активные задания crontab. Вот несколько основных команд терминала, которые вы будете использовать для просмотра и изменения файла crontab:

instagram viewer

  • crontab-l Список всех заданий crontab.
  • crontab -e Отредактируйте файл crontab.
  • crontab -r Удалите все записи из файла crontab.

Вышеупомянутые команды будут для текущий пользователь crontab файл. Если вам нужно изменить файл crontab другого пользователя, просто используйте -u вариант. Например, вы можете отредактировать jdoe файл crontab пользователя с помощью команды:

Ubuntu Linux: легкое добавление и удаление пользователей в группы

Хотите лучше управлять пользователями в Ubuntu Linux? Ответ состоит в том, чтобы создавать группы, а затем использовать функцию добавления пользователя в Ubuntu.

sudo crontab -ujdoe -e

Формат заданий Crontab

Каждое задание crontab состоит из одной строки и имеет следующий формат:

МИНУТА ЧАС ДЕНЬ МЕСЯЦ КОМАНДА НЕДЕЛЬНОГО ДНЯ

В приведенной ниже таблице объясняются различные элементы задания crontab:

Элемент Ranage Описание
Минуты 0 - 59 Минута, в которую нужно выполнить задание crontab.
Час 0 - 23 Час, в который нужно выполнить задание crontab.
День 1 - 31 День месяца, в который нужно выполнить задание crontab.
Месяц 1 - 12 Месяц, в котором нужно выполнить задание crontab.
Будний день 0 - 6 День недели, в который нужно выполнить задание crontab.
Командование Любая команда Linux, которую вы можете выполнить на терминале.

Вы можете использовать звездочку (*) в любом из полей для обозначения подстановочного знака, что означает, что задание crontab будет выполняться независимо от этого периода времени. Например, приведенное ниже задание crontab будет выполняться каждую ночь ровно в 3:20 утра:

20 3 * * * /root/backup.sh

Несколько значений

Каждый период времени также может включать в себя несколько элементов. Вы можете указать точные значения, разделив их запятой, и приведенное ниже задание crontab будет выполняться каждый час в 20 и 50 минут после часа:

20,50 * * * * /path/to/command.sh

Однако, если вы хотите выполнять задание crontab через определенные промежутки времени в течение определенного периода времени, вы можете использовать */ПЕРИОД, а приведенное ниже задание crontab будет автоматически выполняться через 15 минут после каждого часа каждые три часа:

15 * / 3 * * * /path/to/command.sh

Сохранение спокойствия заданий Crontab

В зависимости от обстоятельств, вы можете удалить весь вывод заданий crontab, чтобы они не попадали в почтовую папку вашей системы. Вы можете сделать это, добавив > / dev / null 2> & 1 к любой работе crontab. Например:

0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1

Добавление заданий Crontab

Как правило, наиболее часто используемый метод добавления или изменения заданий crontab - это crontab -e команда. Запустите эту команду в терминале:

crontab -e

Это откроет Текстовый редактор Такие как нано с содержимым вашего файла crontab. Каждое задание crontab находится в одной строке, и вы можете добавлять, изменять и удалять строки по желанию. После этого сохраните и закройте файл, нажав Ctrl + W, за которым следует Y и Войти ключи, которые немедленно активируют все задания crontab в файле.

Ярлык для добавления вакансий

Вместо того, чтобы вручную изменять файл crontab, вы можете выполнить одну быструю команду, чтобы добавить задание. Например, если вы хотите добавить это задание crontab, которое запускается каждое воскресенье в 14:00:

0 14 * * 0 /path/to/command.sh

Вы можете добавить задание в ваш файл crontab с помощью одной команды:

(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | crontab

Вышеупомянутая команда просто перечисляет все задания, которые в настоящее время находятся в вашем файле crontab, печатает новое задание и передает все в crontab заменяя его содержимое.

Вывод / удаление файла Crontab

Вы можете перечислить все активные в данный момент задания в вашем файле crontab с помощью команды:

crontab -l

Вы также можете удалить все задания crontab и очистить содержимое файла crontab с помощью команды:

crontab -r

Пример: воспроизведение звуков!

Требуется быстрое напоминание каждые два часа во время работы, чтобы вы знали, что время прошло? Возьмите свой любимый аудиоклип практически в любом формате (.wav, .mp4, любой другой), и если он сохранен в (например) /home/myuser/myalert.wav пусть он автоматически запускается с заданием crontab:

0 * / 2 * * * aplay /home/myuser/myalert.wav

Как насчет того, чтобы подарить вам приятное времяпрепровождение после рабочей недели, когда ваша любимая песня будет автоматически воспроизводиться в 17:00 каждую пятницу днем? Возьмите клип с любимой песней и, если он сохранен, скажем, /home/myuser/friday_song.mp4 вы бы добавили задание crontab:

0 17 * * 5 игра /home/myuser/friday_song.mp4

Пример: резервные копии файлов с помощью Rsync

Одним из многих отличных вариантов использования crontab является возможность автоматического резервного копирования файлов на удаленный сервер. Существенно снизьте риск потери важных данных снова с этим отличный учебник по rsync.

Пример: проверьте, находятся ли сайты в сети

Возможно, вы хотите каждые пять минут автоматически проверять, находятся ли различные сайты в сети, и получать уведомления по электронной почте, если какие-либо из них не работают. Вот изящный небольшой PHP-скрипт, который сделает именно это.


php
// Адрес электронной почты для уведомления о неработающих сайтах
$ email = '[email protected]';
// Определение URL-адресов для проверки
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Переход по URL-адресам
$ down = [];
foreach ($ urls как $ url) {
// Проверить URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Отправляем электронное письмо, если у нас не работают сайты
if (count ($ down)> 0) {
mail ($ электронное письмо, «Срочно - сайты не работают!», «Ваш бот обнаружил следующие сайты: в настоящее время не работает:
". implode ("
", $ down));
}
// Выход
exit (0);
/ **
* Проверить URL < br /> * /
function check_url (string $ url): int
{
// Отправить через cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, > curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Получить статус и закрыть соединение
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Просто измените адрес электронной почты и нужные URL-адреса, чтобы проверить их в верхней части файла, и сохраните это где-то вроде /home/myuser/check_sites.php . Чтобы этот сценарий запускался каждые пять минут и уведомлял вас по электронной почте обо всех неработающих сайтах, добавьте задание crontab:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Автоматизируйте свою жизнь!

В этой статье вы надеюсь, вы поняли мощь автоматизации crontab и то, как его можно использовать для автоматизации многих рутинных и повторяющихся задач в вашем жизнь.

Вы узнали, что такое crontab, о файле crontab, о форматировании заданий crontab и некоторых реальных примерах того, как его можно использовать.

4 Приложения автоматизации Linux для оптимизации ваших задач и рабочих процессов

Хотите сэкономить время и избежать повторяющихся задач? Ответ - автоматизация! Вот несколько полезных приложений для автоматизации рабочего стола Linux, которые можно попробовать.

Похожие Темы
  • Программирование
  • Linux
О Автор
Мэтт Дизак (13 статей Опубликовано)
Ещё от Мэтта Дизака

Подпишитесь на наши Информационный бюллетень

Присоединяйтесь к нашему информационному бюллетеню для получения технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Еще один шаг…!

Подтвердите свой адрес электронной почты в электронное письмо, которое мы вам только что отправили.

.