Как да редактирате файла Linux Crontab, за да планирате работни места

Въведение

Има демон в Linux наречен cron, който се използва за редовни процеси.

Начинът, по който се прави това, е да проверите определени папки в системата си, за да се изпълняват скриптове. Например има папка, наречена /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly. Съществува и файл, наречен / etc / crontab.

По подразбиране можете просто да поставите скриптове в съответните папки, за да ги накарате да работят на редовни интервали.

Например отворете терминален прозорец (чрез натискане на CTRL, ALT и T) и изпълнете следната команда ls :

ls / etc / cron *

Ще видите списъка с програми или скриптове, които се изпълняват почасово, ежедневно, седмично и месечно.

Проблемът с тези папки е, че те са малко неясни. Например дневно означава, че скриптът ще се изпълнява веднъж дневно, но нямате контрол върху времето, през което скриптът ще се изпълнява през този ден.

Това е мястото, където влезе файлът crontab.

Чрез редактирането на файла crontab можете да получите скрипт или програма, които да се показват на точната дата и час, когато искате да се изпълняват. Например може би искате да архивирате файловете си всяка вечер в 18 часа.

Разрешения

Командата crontab изисква потребителят да има права за редактиране на crontab файл. Има основно два файла, които се използват за управление на разрешенията за crontab:

Ако файлът /etc/cron.allow съществува, потребителят, който иска да редактира файла crontab, трябва да е в този файл. Ако файлът cron.allow не съществува, но има файл /etc/cron.deny, тогава потребителят не трябва да съществува в този файл.

Ако съществуват и двата файла, /etc/cron.allow подменя файла /etc/cron.deny.

Ако няма нито един файл, зависи от конфигурацията на системата дали потребителят може да редактира crontab.

Потребителят на корен винаги може да редактира файла crontab. Можете да използвате командата su, за да превключите към коренния потребител или командата sudo, за да изпълните командата crontab.

Редактиране на Crontab файла

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

За да проверите дали имате файл crontab, изпълнете следната команда:

crontab -l

Ако нямате файл crontab, ще се появи съобщението "no crontab for ", в противен случай вашият crontab файл ще се покаже (тази функция се различава от система на система, понякога изобщо не се показва нищо и други пъти показва " не редактирайте този файл ").

За да създадете или редактирате файл crontab, изпълнете следната команда:

crontab -e

По подразбиране, ако няма избран редактор по подразбиране, ще бъдете помолени да изберете стандартния редактор, който да използвате. Лично ми харесва да използвам нано, тъй като е сравнително лесно да се използва и работи от терминала.

Файлът, който се отваря, има много информация, но ключовата част е примерът точно преди края на секцията за коментари (коментарите се обозначават с линии, започващи с #).

# mh dom mon mon dow команда

0 5 * * 1 tar -zcf /var/backups/home.tgz / начало /

Има 6 броя информация, които да се поберат във всеки ред на файла crontab:

За всеки елемент (с изключение на командата) можете да определите заместващ знак. Вижте следния пример crontab линия:

30 18 * * * tar -zcf /var/backups/home.tgz / начало /

Това, което се казва в горната команда, е 30 минути, 18 часа и всеки ден, месец и ден от седмицата изпълнява команда за цип и зареждане на началната директория в папката / var / backups.

За да получа команда, която да се изпълнява на всеки 30 минути след всеки час, мога да изпълня следната команда:

30 * * * * команда

За да получа команда, която да се изпълнява всяка минута след 18 часа, мога да изпълня следната команда:

* 18 * * * команда

Следователно трябва да внимавате да настроите командите на crontab.

Например:

* * * 1 * команда

Посоченото по-горе командване ще се изпълнява всяка минута от всеки час на всеки ден от всяка седмица през януари. Съмнявам се, че това е, което искате.

За да стартирате команда в 5 часа сутринта на 1 януари, ще получите следната команда в crontab файла:

0 5 1 1 * команда

Как да премахнете Crontab файл

По-голямата част от времето няма да искате да премахнете файла crontab, но може да искате да премахнете някои редове от файла crontab.

Ако обаче искате да премахнете crontab файла на потребителя, изпълнете следната команда:

crontab -r

По-сигурен начин да направите това е да изпълните следната команда:

crontab -i

Това задава въпроса "Сигурни ли сте?" преди да премахнете файла crontab.