Ovrigt/Crontab
Från Ubuntu Sverige
Artikeln är behöver uppdateras.
Innehåll |
[redigera] crontab
[redigera] Vad är "cron", "crontab" och "anacron"?
"cron" är ett program som startar upp med din Linuxbaserade dator, och sedan körs hela tiden. Programmet är till för att få din dator att utföra vissa aktiviteter vid angivna tillfällen. Kort sagt så tar programmet alltså hand om schemalagda aktiviteter. Hur det här fungerar är vad jag hade tänkt förklara på den här wikisidan.
"crontab" är programmet som används för att ändra olika användares "cronfiler", alltså vad deras användare kommer köra igenom cronprogrammet. Det är lite svårt att sammanfatta det här programmet såhär fort, men förhoppningsvis kommer du att förstå mer om hur man använder det och vad det gör väldigt snart.
"anacron" installeras som standard när du installerar Ubuntu på en dator. Det är ett program som ser till att de schemalagda cron-skripten körs även om datorn varit avstängd. Detta är smidigt eftersom vissa av crons kategorier (som cron.daily och cron.monthly) körs på natten, när det är vanligt att datorn är avstängd.
[redigera] Vad är cron/crontab lämpat till att göra?
Cron kan i princip göra allt som du kan göra i terminalen. När du använder crontab så kommer du att behöva skriva in konsollkommandon. Om du inte är säker på att du kommer vara närvarande när aktiviteten körs så är det inte heller lämpat att använda kommandon som kräver ett gensvar, exempelvis "read" eller "gksudo". Grundläggande syntax för programmet "crontab"
"cron" kommer helt enkelt att köra aktiviteterna som du skrivit in i crontab, detta innebär att du inte kommer att använda programmet "cron" direkt, utan att det automatiskt kommer att köra det som du skrivit in i "crontab".
Programmet "crontab" har fem stycken så kallade flaggor. För att köra programmet, måste du använda minst två av dessa. Flaggorna som finns är:
-u [användare/user] (Anger vilken användare som skriver in crontaben, och vilken användare som kommer köra aktiviteten)
-e (Redigera användarens crontabfil)
-r (Ta bort användarens crontabfil)
-l (Läs användarens crontabfil)
Exempel:
crontab -u kaminix -e #Startar redigering av användaren "kaminix"s crontabfil crontab -u kaminix -r #Tar bort användaren "kaminix"s crontabfil crontab -u kaminix -l #Visar innehållet i användaren "kaminix"s crontabfil
-e kommer att öppna systemets standard texteditor, i mitt fall nano (tror detta är standard för Ubuntu överhuvudtaget).
-r kommer inte att skriva någonting om det fungerar, om användaren i fråga inte har en crontabfil så kommer den att skriva "no crontab for [användare]"
-l kommer att skriva ut en lista med alla aktiviteter du listat i användarens crontabfil. Så här kan det exempelvis se ut:
1 2 3 4 5 xterm -e 'ls /root' 5 4 3 2 1 xterm -e 'echo crontabfilen skrev det här!'
Betydelsen av siffrorna kommer du snart att förstå.
[redigera] Grundläggande syntax för crontabfilen
Nu vet du hur du använder crontabkommandot. Nu behöver du bara veta hur du ska skriva i crontabfilen.
Syntaxen för crontab har gjorts så enkel som den bara kan bli, den ser ut såhär:
* * * * * [kommando]
Stjärnorna står för följande:
- Första stjärnan: minut (värde mellan 0 och 59)
- Andra stjärnan: timme (värde mellan 0 och 23)
- Tredje stjärnan: dag i månaden (värde mellan 1 och 31)
- Fjärde stjärnan: månad (värde mellan 1 och 12, eller namn på månaden)
- Femte stjärnan: dag i veckan (värde mellan 0 och 7, eller namn på dagen)
Sätts stjärna på alla ställen (som i exemplet ovan), betyder det i princip "när som helst".
Minutvärdet är enkelt att sätta in, titta bara på din digitala klocka. Om minutvärdet är 1 och allt annat stjärnor så kommer kommandot att ekekveras varje gång minutvärdet är 1.
Timvärdet fungerar på samma sätt som minutvärdet. Om du har allt utom minuter och timmar som stjärnor, och sedan sätter både minut och tim-värdet till 1 så kommer kommandot att ekekveras varje gång som klockan är på timmen 1 och minuten 1. Timvärdet ska vara skrivet i svensk tidsform, alltså 1, 2, 3, 4, 5 ... 20, 21, 22, 23.
Dag i månaden fungerar även den som tim- och minutvärdet. Om du har alla värden utom detta som stjärnor och sätter den här som 3, så kommer kommandot att exekveras den tredje varje månad.
Månadsvärdet är även det väldigt lättanvänt. 1 = Januari, 2 = Februari, 3 = Mars, osv. Här behöver du dock inte använda siffror, utan kan även använda månadsnamnen enligt följande:
1 = jan 2 = feb 3 = mar 4 = apr 5 = may 6 = jun 7 = jul 8 = aug 9 = sep 10 = oct 11 = nov 12 = dec
Veckodagsvärdet fungerar, faktiskt, lika enkelt som alla de andra värdena. Även den här har dock specialfunktionen att du kan skriva namnet på veckodagen, då ser det ut såhär:
0 = sun 1 = mon 2 = tue 3 = wed 4 = thu 5 = fri 6 = sat 7 = sun
Notera att cronveckan början och slutar på en Söndag. Ska du exekvera ett kommando på en Söndag så spelar det ingen roll om du skriver 0 eller 7.
Kommandot du sedan ska fylla i med kommer inte att köras i en speciell x-terminal, utan kommer köras mitt ute i ingenstans. Så om du inte öppnar en terminal med cron så kommer du inte kunna se kommandon så som "echo". Om du ska öppna en terminal bör du också avsluta kommandoraden med "&& read", som kommer att hålla terminalen öppen tills du skrivit in något.
