4 sätt att kontrollera om cron fungerar på Linux

cron är en jobbschemaläggare för Linux och Unix-liknande operativsystem. Den kommer förinstallerad på alla Linux-distributioner och är mest lämplig för att automatisera repetitiva uppgifter.

För att cron ska fungera korrekt måste du regelbundet kontrollera att verktyget fungerar bra på ditt system. Du kan göra det på fyra olika sätt, inklusive att kontrollera cron-tjänstens status, undersöka cron-loggar, köra ett test-cron-jobb och lista ner pågående processer på ditt system.

Vad är cron?

Den tysta jobbhanteraren, cron, automatiserar och schemalägger systemuppgifter. Användare som konfigurerar och underhåller mjukvarumiljöer använder cron för att schemalägga jobb som kommandon eller skalskript – även kallade cron-jobb – för att köras regelbundet vid fasta tider eller intervall.

cron automatiserar systemunderhåll eller administrationsuppgifter som du kan behöva utföra ofta.

Det finns flera implementeringar tillgängliga på Linux. Vilken version du kommer att ha beror på din distribution. ”Vixie cron,” uppkallad efter dess ursprungliga utvecklare, Paul Vixie, är vanlig och standard på Debian och Ubuntu. Arch har ingen version av cron till förmån för systemd timers.

cronie är en gaffel av Vixie cron som finns som standard Arch-paket. För att installera det, använd pacman:

 sudo pacman -S cronie 

Starta sedan och aktivera den med:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Du kan se vilken version av cron som är installerad på ditt system genom att slå upp dess manpage:

 man cron 

Hur man kontrollerar om cron fungerar på Linux

Här är några av sätten du kan kontrollera om cron fungerar korrekt:

1. Kontrollera cron Service Status på Linux

Ett sätt att kontrollera om cron fungerar är att kontrollera statusen för cron-tjänsten genom att köra ett grundläggande Linux-kommando. Öppna Linux-terminalen genom att trycka på Ctrl + Alt + T och använd kommandot systemctl för att kontrollera statusen för cron:

 sudo systemctl status cron 

Om du ser följande utdata betyder det att cron är aktivt och fungerar bra på ditt system.

Men vad händer om cron är i ett inaktivt tillstånd som visas nedan?

Du kan starta tjänsten så här:

 sudo systemctl start cron.service 

Efter att ha startat cron-tjänsten, aktivera den så att den startar varje gång systemet startas om:

 sudo systemctl enable cron.service 

2. Kontrollera cron-loggar på Linux

Ett annat sätt att kontrollera om cron fungerar korrekt är att undersöka loggfilerna. cron-loggar lagras i katalogen /var/log/syslog på Linux.

syslog är ett protokoll som Linux-system använder för att centralisera händelsedataloggar. Loggar nås sedan för att utföra revisioner, övervakning, felsökning, rapportering och andra nödvändiga IT-operativa uppgifter.

Du kan se cron-jobbloggarna i syslog-filen genom att utföra följande kommando:

 grep 'cron' /var/log/syslog 

Du kommer att se en liknande utdata som indikerar att cron fungerar bra och att dess loggar lagras i loggfilen:

Eftersom syslog-mappen innehåller andra systemloggar tillsammans med cron-loggarna kan det vara lite knepigt att bara undersöka de cron-relaterade loggarna i filen. Du kan lösa detta genom att skapa en separat loggfil som endast lagrar cron-poster som visas i syslog-filen.

I det här exemplet kommer vi att använda nanoredigeraren, men du kan använda vilken redigerare du känner dig bekväm med.

Öppna följande fil med nano:

 nano /etc/rsyslog.d/50-default.conf 

Leta reda på raden som börjar med:

 #cron.* 

Avkommentera denna rad genom att ta bort hash-tecknet (#). Spara och avsluta sedan filen genom att trycka på Ctrl + X, tryck sedan på Y och tryck på Enter.

Starta om rsyslog-tjänsten genom att utfärda detta kommando:

 sudo service rsyslog restart 

Du kommer nu att få loggar i filen cron.log som finns i katalogen /var/log.

Om din terminal inte kan hämta några loggar kan det betyda att cron inte körs. Bekräfta i så fall om cron fungerar eller inte använder andra metoder.

3. Köra ett cron-jobb på Linux

Du kan också kontrollera om cron fungerar genom att helt enkelt skapa ett test-cron-jobb och köra det. Om jobbet lyckas utföra uppgiften betyder det att det fungerar bra.

Du måste först skapa ett Bash-skript. Bash scripting låter dig automatisera vardagliga uppgifter på Linux.

Låt oss skapa ett Bash-skript som kommer att skriva ut ”mitt cronjob fungerar!” till en TXT-fil. För att skapa filen, ta först reda på din nuvarande arbetskatalog med detta kommando:

 pwd 

Skapa en fil i den aktuella katalogen med pekkommandot:

 touch file.txt 

Efter detta, skapa en Bash-fil med nano:

 nano script.sh 

Lägg till följande innehåll i filen:

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Se till att ange rätt plats för textfilen som du skapade. Spara och avsluta filen genom att trycka på Ctrl + X, sedan Y och tryck på Enter.

Ge exekveringsbehörigheter till Bash-skriptet:

 chmod +x script.sh 

Skapa nu ett cron-jobb för att köra skriptet. För att göra det, öppna crontab-filen med:

 crontab -e 

Skriv in följande rad i slutet av filen.

 * * * * * /path/to/script.sh 

De fem asteriskerna matchar tiden för avrättningen, där den första asterisken representerar minuterna (0-59), den andra representerar timmar (i 24-timmars tid, så 13:00 är 13, midnatt börjar vid 0), tredje asterisken betyder dagen (0-7, 0 och 7 är söndag), den fjärde anger månaden och den sista asterisken anger året.

Namnet på den körbara filen och dess sökväg nämns också i filen.

När du har sparat och stängt filen kommer du att se ett ”crontab: installerar ny crontab”-meddelande på terminalen.

För att kontrollera om cron-jobbet fungerade eller inte, gå till katalogen för file.txt och skriv ut dess innehåll på terminalen med cat:

 cat file.txt 

Detta indikerar att cron fungerar bra.

4. Kontrollera Köra processer på Linux

Ett annat sätt du kan kontrollera om cron-demonen fungerar är genom att lista de pågående processerna på ditt system. Du kan uppnå detta med kommandot ps. Cron-demonen kommer att dyka upp i utgången som crond.

 ps aux | grep cron 

Detta bekräftar att cron-processen körs på ditt Linux-system.

Automatisera och schemalägg systemuppgifter med cron

cron är ett av de viktigaste verktygen på Linux som gör att systemet kan fungera effektivt. Ibland måste du kontrollera om cron fungerar medan du felsöker systemproblem.

Du kan uppnå detta genom att antingen kontrollera cron-loggar eller se de pågående processerna på ditt system. Du kan också kontrollera cron-statusen med hjälp av systemctl-verktyget. Förutom det kan köra ett test-cron-jobb också berätta om tjänsten körs eller inte.

Den smidiga bearbetningen av cron låter dig automatisera och schemalägga vardagliga systemjobb. De flesta av cron-jobben skapas automatiskt av installerade applikationer. Automatisering och schemaläggning av uppgifter förbättrar systemets övergripande prestanda och håller det friskt.