Cron är ett verktyg för schemaläggning av uppgifter i operativsystemet Linux. Det gör att du kan köra skript eller kommandon automatiskt vid vissa tidpunkter, intervall eller händelser.
För att använda Cron måste du skapa en crontab-fil
som innehåller en lista över uppgifter och tidsintervaller när de ska köras. Varje uppgift i crontab är en sträng som består av fem fält åtskilda av mellanslag:
* * * * * command_to_execute
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday = 0 or 7)
| | | +------- month (1 - 12)
| | +--------- day of the month (1 - 31)
| +----------- hour (0 - 23)
+------------- minutes (0 - 59)
Om till exempel fältet minutes innehåller en *
kommer uppgiften att köras varje minut. Om du vill ange ett specifikt värde för ett fält, t.ex. varje dag kl. 03.00, skriver du 0
3 * * * * *
.
Om du vill skapa eller ändra en crontab-fil använder du kommandot crontab -e. Varje användare kan ha sin egen crontab-fil, liksom systemfilen /etc/crontab
, som innehåller uppgifter som körs som rotanvändare.
Det finns ett cronjob-kommando
som gör att du kan köra uppgifter inuti Docker-containrar. Det fungerar på samma sätt som crontab
, men uppgifter kan köras inuti behållaren istället för värdsystemet.
Följ dessa steg för att börja använda Cron i Linux:
1. Öppna en terminal och skriv kommandot crontab -e
. Detta öppnar crontab-filen för den aktuella användaren.
2. Lägg till en uppgift i crontab-filen enligt det fältformat som beskrivs ovan. Om du t.ex. vill köra skriptet every_hour.sh
varje timme lägger du till raden 0 * * * * * * /path/to/every_hour.sh.
3. Spara dina ändringar och stäng filen.
4. Kontrollera att uppgiften har lagts till i crontab med hjälp av kommandot crontab -l.
Det visar en lista över alla uppgifter som har lagts till i crontab
.
5. Kontrollera att uppgiften körs som planerat med kommandot tail -f /var/log/syslog
. Du kommer att se utdata som är relaterade till uppgiftens utförande.
6. Om du vill ta bort en uppgift från crontab
använder du kommandot crontab -r.
Det finns några viktiga punkter att tänka på:
crontab
. Men om du vill köra ett skript måste du se till att det har exekveringsbehörighet(chmod +x /path/to/script.sh)
.sudo crontab -e
för att öppna crontab-filen
för root-användaren.Observera att den tid som anges i crontab
kommer att överensstämma med tiden på den server som kör Cron. Om du använder en fjärrserver ska du kontrollera att tiden på servern är korrekt konfigurerad.