Om du är bekant med Linux, kommer du att veta att Cron är applikationen som används för att schemalägga och automatisera uppgifter i en Linux-miljö. CronTab är det kommando som används för att komma åt Cron-filen där användaren kan ställa in och schemalägga uppgifter. Nej, jag missade inte CronTab i titeln. CornTab är en webbaserad GUI som låter dig ställa in ditt schema och kommandon, och sedan kopiera och klistra in det helt enkelt till din cron-fil.

Det finns andra GUI-appar som är inbyggda för att enkelt redigera cron, till exempel Gnome-Schedule. Men om du inte vill installera några nya apps, är Corntab en bra webbaserad lösning, speciellt om du skapar ett cronjobb på en dator som inte har Gnome-Schedule eller inte är kompatibel med den.

Användningarna för cron är ganska uppenbara, allt från att schemalägga säkerhetskopior för att köra anpassade skript vid specifika tider, för att öppna program på ett schema, cron är vägen för att få det gjort.

Låt oss börja med att schemalägga en uppgift som helt enkelt skapar en tidstämpel varje minut till en loggfil, först med hjälp av shell / kommandoraden. Sedan kör vi igenom samma steg med Corntab, så du kan se hur lätt det är att använda. Att skapa en tidstämpel eller någon utmatning till en loggfil är ett bra sätt att testa att dina inställningar i cron fungerar och naturligtvis att övervaka ditt schema framåt.

Öppna en terminal. Innan vi börjar är det bäst att veta var du ska gå till information. Handboken för crontab kan hittas genom att skriva:

 man crontab 

Visst kan du Google och hitta andra handledningar och förmodligen de manuella sidorna på nätet, men det är alltid bra att känna din väg runt kommandoraden!

Syntaxen för cron är som följer:

 crontab [-u användare] fil crontab [-u användare] [-i] {-e | -l | -r} [-s] 
  • -l alternativet får den aktuella crontaben att visas på standardutgången.
  • -r alternativet gör att den nuvarande crontaben tas bort.
  • -e alternativet används för att redigera aktuell crontab med hjälp av en redigerare som anges av VISUAL eller EDITOR miljövariablerna.
  • -u alternativet anger namnet på den användare vars crontab ska tweaked. Om detta alternativ inte anges kommer crontab att använda den nuvarande användaren som utför kommandot.
  • -s alternativ lägger till den aktuella SELinux-säkerhetskontextsträngen som en MLS_LEVEL-inställning till crontab-filen innan redigering / utbyte sker (se dokumentationen för MLS_LEVEL i crontab. Detta används inte i alla variationer av Linux / cron).

Observera att vissa program måste utföras med root-privilegier. När så är fallet måste du byta till root-användaren med su kommandot eller sudo kommandot som ska fungera i de flesta Linux-variationer (Debian, Ubuntu, Fedora).

För att redigera din crontab-typ:

 crontab -e 

eller

 sudo crontab -e 

Några grundregler för cron

  • Ett fält kan vara en asterisk (*), som alltid står för "först sist".
  • m -minute (0-59)
  • h-timme (0-23)
  • dom-dagen av månaden (1-31)
  • månmontern på året (1-12)
  • dow-dagen i veckan (0-6 med 0 = söndag)
  • kommando -applikation, skript, etc.

Avancerade kortkoder:

sträng betydelse
- ---
@reboot Kör en gång vid start.
@ årligen Kör en gång om året, "0 0 1 1 *".
@ årligen (samma som @ år)
@monthly Kör en gång i månaden, "0 0 1 * *".
@ veckan Kör en gång i veckan, "0 0 * * 0".
@ dagligen Kör en gång om dagen, "0 0 * * *".
@ midnatt (samma som @ dagligen)
@hourly Kör en gång i timmen, "0 * * * *"

Kommaseparerade värden kan användas för att köra mer än en förekomst av ett visst kommando inom en tidsperiod.

Dash-separerade värden kan användas för att köra ett kommando kontinuerligt.

Låt oss sätta upp vår cronjob.

Om du först skriver crontab får du förmodligen ett val av redaktör att använda. Känn dig fri att välja något, men jag håller normalt med nano eftersom det är enkelt, rent och får jobbet gjort.

För att uppnå vår ursprungliga uppgift, skriv bara:

 * * * * * echo "Den aktuella minuten är: $ (datum)" >> /tmp/minute.log 

"Control-x" kommer att be om att spara, då kommer in att bekräfta. Du bör se att cron har uppdaterats. Arbetet kommer att skriva ut aktuellt datum / tid varje minut till en fil som heter minute.log i / tmp-katalogen.

Här är automatisk utmatning i 6 minuter:

Låt oss bli snygga, vad sägs om att skriva ut datumet varannan minut ...

 * / 2 * * * * echo "Den aktuella minuten är: $ (datum)" >> /tmp/minute.log 

Använda * / n där n är ett positivt heltal kommer att säga varje n minut eller varje n timmar.

Vad sägs om att skriva ut datumet klockan 5:30 varje måndag och fredag:

 30 5 * * 1, 5 echo "Den aktuella minuten är: $ (datum)" >> /tmp/minute.log 

Känn dig fri att leka med schemaläggning enkelt "echo" till loggar. Gå sedan vidare till skript och applikationer.

Spelar med Corntab

Låt oss nu prova CornTab, den webbaserade cronredigeraren som tar hand om syntaxen medan vi bara klickar på alternativen.

Här är ett steg för steg för att skapa en crontab som skriver ut aktuellt datum / tid varannan minut, endast i januari, februari, mars och april på torsdag och fredag.

Klicka först på "var och en minut" och flytta reglaget till 2 minuter.

Klicka sedan för att expandera månaden, klicka för att välja "varje vald månad" och välj jan, feb, mar, apr.

Klicka sedan på för att expandera veckodag, välj "varje valda veckodag" och välj Thu och Fri.

Slutligen, klicka för att expandera Kommando och skriv in koden / skriptet. Då kan du kopiera den fullständiga cronkoden från Corntab och klistra in den i din crontab genom att använda stegen i början av den här artikeln.

Referenser och mer information om Cron:

http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto