Терминалът на Linux ни позволява да правим неща отвъд простото въвеждане на команди. В този случай ще говорим за автоматизиране на задачи с Cron. Автоматизацията ни позволява не само да избегнем повтарящи се задачи, но и да накараме компютъра да ги изпълнява, когато не сме там. Това е особено полезно на сървъри.
Cron е демон, който е отговорен за изпълнението на задачи през определен интервал от време. Въпреки че функцията му е да се справя с редовните задачи по поддръжка на системата, можем да добавим и други, които ни интересуват.
Когато говорим за демони, нямаме предвид малък дявол в компютъра ни. В компютърните науки, демонът е приложение или процес, който работи във фонов режим на операционната система, без да изисква директно взаимодействие с потребителя. Техните отговорности включват мрежови връзки, печат, уеб сървъри и наблюдение на ресурси.
Някои от основните му характеристики
- Те обикновено започват със зареждането на системата.
- Те работят във фонов режим, без потребителят да е наясно с съществуването им.
- Те са предназначени да изпълняват задачи постоянно или в отговор на определени събития.
Автоматизиране на задачи с Cron
Ако искаме да кажем на Cron какво да прави, можем да го направим, използвайки crontab файл. Това е просто текстов файл, който показва поредица от команди, които cron трябва да изпълни на определена дата. Има два вида crontab файлове: crontab файл, създаден от системата, и crontab файл, създаден от потребителя.
При никакви обстоятелства не бива да докосваме системния crontab файл, който се използва от Linux за конфигуриране и поддръжка. Невъзможно е да го промените по погрешка, тъй като този файл се намира в папката. /и т.н./crontab.
Създаване на собствени crontab-ове
Cron изисква задачите, които му възлагаме, да имат параметрите, посочени в този ред:
h: Начален час в диапазона 0-23.
m: Минути в интервала 0-59.
d: Ден от месеца между интервала 1-31
ме: Указва месеца от годината в диапазон от 1 до 12
s: Ден от седмицата с интервала 0-6
Тези данни се съхраняват във файла crontab. За да създадем този файл, пишем командата:
crontab –u nombre de usuario –e
Ако crontab ще бъде за потребителя по подразбиране, можем да пропуснем параметъра -u
Когато го стартираме за първи път, ще ни каже, че файлът не съществува и ще ни предложи да създадем такъв и да го редактираме с един от редакторите, инсталирани на компютъра.
Някои неща, които трябва да имате предвид, когато редактирате crontab, са:
- Всяка задача се изпълнява на ред
- Във всички случаи трябва да бъдат посочени датата и часът, в които всяка задача трябва да бъде изпълнена. За да се обозначи периодичност (например вторник в 18:XNUMX ч.), вместо останалите параметри се изписват звездички. (*)
- Възможно е да се присвоят повече от една стойност на параметър (например вторник и четвъртък в 18:XNUMX ч.), като се разделят двете стойности със запетаи.
- Между параметрите трябва да се оставят интервали.
- Посочете директорията, където се намира програмата за стартиране на команди.
Да дадем пример, ако искаме да рестартираме компютъра всеки ден в 19:XNUMX ч.:
0 19 * * * /sbin/reboot
За да може рестартирането да бъде само в сряда, инструкцията ще бъде:
0 20 * * 3 /sbin/reboot
.
Има някои преки пътища, които ни позволяват да избегнем записването на всички параметри:
@на часАко искаме да изпълним команда в началото на всеки час.
@ежедневно: Да се изпълнява командата в началото на всеки ден.
@седмично: Изпълнете командата в първия ден от седмицата.
@месечно: Командата се изпълнява на първата минута на всеки месец.
@годишноСъщото, но в първата минута на всяка година..
Някои примери за използване на тази команда:
@daily /bin/sh /ruta_al_script/nombre_del_script.sh
Изпълнете персонализирани инструкции в bash скрипт в началото на деня.
@hourly /bin/python3 /ruta_al_script/nombre_del_script.py
Кара Python скрипт да се изпълнява всеки час.
Винаги трябва да се уверяваме, че скриптовете имат разрешения за изпълнение.