Как да планирате задачи с Cron и CornTab [Linux]
Ако сте запознати с Линукс, ще знаете, че Cron е приложението, използвано за планиране и автоматизиране на задачи в Linux среда. CronTab е командата, която се използва за достъп до файла Cron, където потребителят може да зададе и планира задачи. Не, не съм изписал погрешно CronTab в заглавието, CornTab е уеб базиран GUI, който ви позволява да зададете график и команди, а след това просто да го копирате и поставите във вашия cron файл.
Има други графични приложения, създадени за лесно редактиране на cron, като Gnome-Schedule. Ако обаче не искате да инсталирате нови приложения, Corntab е страхотно уеб базирано решение, особено ако настройвате задача cron на компютър, който няма Gnome-Schedule или не е съвместим с него.
Използването на cron е доста очевидно - всичко от насрочване на архивиране до изпълняване на персонализирани скриптове в определени моменти, за отваряне на програми по график, cron е начинът да го направите.
Нека да започнем с насрочване на задача, която просто създава таймер за всяка минута в дневника, като първо използва командата за черупки / команди. След това ще преминем същите стъпки с помощта на Corntab, за да можете да видите колко лесно е да използвате. Създаването на тайма-маркер или някакъв изход в лог файл е чудесен начин да проверите дали вашите настройки в cron работят и разбира се, за да следите графика си напред.
Отворете терминал. Преди да започнете, най-добре е да знаете къде да отидете за информация. Ръководството за crontab може да бъде намерено, като напишете:
човек crontab
Разбира се, можете да намерите Google и да намерите други уроци и вероятно страниците наръчници онлайн, но винаги е добре да знаете пътя си около командния ред!
Синтаксисът за cron е както следва:
crontab [-u потребител] файл crontab [-u потребител] [-i] {-e | -l | -r} [-s]
-l
опцията кара текущия crontab да се показва на стандартния изход.-r
опцията кара текущия crontab да бъде премахнат.-e
опцията се използва за редактиране на текущия crontab с помощта на редактор, определен от променливите на VISUAL или EDITOR.-u
опцията указва името на потребителя, чийто crontab трябва да бъде променен. Ако тази опция не е дадена, crontab ще използва текущия потребител, който изпълнява командата.-s
опцията прибавя текущия конфигурационен контекст за сигурност SELinux като настройка MLS_LEVEL към crontab файла, преди да се извърши редактирането / замяната (вж. документацията на MLS_LEVEL в crontab, която не се използва във всички варианти на Linux / cron).
Имайте предвид, че някои програми трябва да бъдат изпълнени с права на root. В такъв случай ще трябва да промените командата su
командата su
или командата sudo
която трябва да работи в повечето варианти на Linux (Debian, Ubuntu, Fedora).
За да редактирате вашия тип crontab:
crontab -e
или
sudo crontab -e
Някои основни правила за cron
- Полето може да е звездичка (*), която винаги означава "първа последна".
- m-минута (0-59)
- h-час (0-23)
- Дом-ден на месеца (1-31)
- месец-месец на годината (1-12)
- Ден на седмицата (0-6 с 0 = неделя)
- команда - приложение, скрипт и др
Разширени кратки кодове:
значението на низ
- ---
@reboot Изпълнете веднъж, при стартиране.
@ годишно Изпълнение веднъж годишно, "0 0 1 1 *".
@ годишно (същото като @ годишно)
@monthly Изпълнение веднъж месечно, "0 0 1 * *".
@weekly Бягайте веднъж седмично, "0 0 * * 0".
Веднъж на ден изпълнявайте "0 0 * * *".
@midnight (същото като @daily)
@hourly тичане веднъж на час, "0 * * * *"
Стойностите, разделени със запетая, могат да се използват за изпълнение на повече от един екземпляр от определена команда в рамките на определен период от време.
Отделните стойности могат да се използват за непрекъснато изпълнение на команда.
Нека да създадем нашия cronjob.
Ако първо влизате в crontab, вероятно ще ви бъде даден избор от редактор, който да използвате. Чувствайте се свободни да избирате, но обикновено се придържам към нано, тъй като е проста, чиста и свършва работата.
За да изпълним първоначалната си задача, просто въведете:
* * * * * ехо "Текущата минута е: $ (дата)" >> /tmp/minute.log
"Control-x" ще подкани да запазите, след което ще потвърдите. Трябва да видите, че cron е актуализиран успешно. Заданието ще отпечата текущата дата / час всяка минута в файл, наречен minute.log в директорията / tmp.
Ето автоматичния изход за 6 минути:
Нека да се похвалим, какво ще кажеш за отпечатването на датата на всеки 2 минути ...
* / 2 * * * * echo "Текущата минута е: $ (date)" >> /tmp/minute.log
Използвайки * / n, където n е положително число, ще кажем всяка n минута или на всеки n часа.
Какво ще кажете за отпечатването на датата в 5:30 сутринта всеки понеделник и петък:
30 5 * * 1, 5 ехо "Текущата минута е: $ (дата)" >> /tmp/minute.log
Чувствайте се свободни да играете навсякъде, като планирате прости "ехо" на лог файловете. След това преминете към скриптове и приложения.
Възпроизвеждане с Corntab
Сега нека изпробваме CornTab, уеб-базирания cron редактор, който ще се погрижи за синтаксиса, докато просто щракваме върху опциите.
Ето стъпка по стъпка за създаване на crontab, който ще отпечата текущата дата / час на всеки две минути, само през януари, февруари, март и април, в четвъртък и петък.
Първо кликнете върху "every n minutes" и преместете плъзгача на 2 минути.
След това кликнете, за да разширите месеца, кликнете, за да изберете "всеки избран месец" и изберете Ян, Февруари, Мар, Апр.
След това кликнете, за да разгънете Ден на седмицата, изберете "всеки избран ден от седмицата" и изберете "Thu и Fri".
Накрая кликнете, за да разгънете командата и въведете кода / скрипта. След това можете да копирате пълния cron код от Corntab и да го поставите във вашия crontab, като използвате стъпките в началото на тази статия.
Позовавания и повече информация за Cron:
http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto