Възползвайте се от командата crontab Linux, за да автоматизирате различни ежедневни и повтарящи се задачи, опростявайки живота си. Този отличен и лесен за използване инструмент, съчетан с някои скриптове, може не само да автоматизира всякакви задачи, но и да помогне за избягване на прости човешки грешки или забрава.
Тук ще научите какво е crontab, как да добавите автоматизирани работни места и някои реални примери.
Какво е Crontab?
Crontab е демонен процес, който работи във фонов режим на почти всички машини с Linux и се използва за планиране и изпълнение на автоматизирани задачи на зададени интервали от време. Също така често се използва от разработчиците на софтуер, за да изпълнява отнемащи време задачи във фонов режим.
Това може да бъде всичко, включително, но не само изпращане на групови имейли, проверка на вашата емисия в Twitter, извършване на резервни копия или просто извършване на напомняне.
Основни команди на Crontab
Всеки потребител на Linux на машината има свой собствен crontab файл, който съдържа техните активни crontab задачи. Ето някои основни команди на терминала, които ще използвате за преглед и промяна на файла crontab:
- crontab-l Избройте всички работни места в crontab.
- crontab -e Редактирайте файла crontab.
- crontab -r Премахнете всички записи от файла crontab.
Горните команди ще бъдат за текущия потребител crontab файл. Ако трябва да модифицирате crontab файл на друг потребител, просто използвайте -u опция. Например можете да редактирате jdoe потребителски crontab файл с командата:
Искате ли да управлявате по-добре потребителите на Ubuntu Linux? Отговорът е да създадете групи, след което да използвате функцията за добавяне на потребител на Ubuntu.
sudo crontab -ujdoe -e
Формат на Crontab Jobs
Всяка задача на 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 * * * * / път / към / команда.ш
Ако обаче искате да изпълните задачата 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 Jobs
Като цяло, най-използваният метод за добавяне или промяна на задания на crontab е crontab -e команда. Изпълнете тази команда в терминала:
crontab -e
Това ще отвори a текстов редактор като нано със съдържанието на вашия 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 всеки петък следобед? Вземете любимия си клип на песен и ако е записан на say /home/myuser/friday_song.mp4 бихте добавили заданието crontab:
0 17 * * 5 aplay /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 as $ url) {
// Проверете URL адреса
$ status = check_url ($ url);
ако ($ статус! = 200) {
$ надолу [] = $ url;
}
}
// Изпращаме имейл, ако имаме сайтове, в които няма достъп
if (count ($ down)> 0) {
mail ($ имейл, „Спешно - Сайтове надолу!“, „Вашият бот е открил следните сайтове са в момента не работи:
". имплодиране ("
", $ надолу));
}
// Изход
изход (0);
/ **
* Проверка на URL < br /> * /
функция check_url (низ $ url): int
{
// Изпращане чрез cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); > curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, вярно);
$ response = curl_exec ($ ch);
// Получаване на статус и затваряне на връзката
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Връщане
връщане $ 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 и някои реални примери за това как може да се използва.
Искате ли да спестите време и да избегнете повтарящи се задачи? Отговорът е автоматизация! Ето някои полезни приложения за автоматизация на настолни компютри на Linux, които да опитате.
- Програмиране
- Linux
Абонирайте се за нашите Бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка!!!
Моля, потвърдете имейл адреса си в имейл, който току-що ви изпратихме.