SSH - Schemalagda uppgifter

Procédure

SSH - Schemalagda uppgifter

Mycket systemadministration kan automatiseras via Perl-skript eller shell-skript som körs med jämna mellanrum. Du kan t.ex. ha ett skript som kontrollerar att disken inte är full och som körs en gång i timmen för att meddela dig om det finns några problem. Den vanligaste mekanismen för schemaläggning av kommandon på Linux-system är via cron-paketet.

I Debian är cron-paketet en del av bassystemet och körs som standard.

Cron levereras med Debian för två syften:

  • Att köra systemuppgifter på daglig/veckovis/månatlig basis.

  • För att tillåta användare att konfigurera sina egna schemalagda uppgifter.


Cron-paketet skapar automatiskt följande kataloger:

/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly


Bortsett från den första, som är speciell, gör dessa kataloger att du kan schemalägga uppgifter för hela systemet på ett enkelt sätt. Alla skript som placeras i dem kommer att köras så ofta som namnet antyder.

Om du t.ex. placerar ett skript i /etc/cron.daily kommer det att köras en gång om dagen, varje dag.

Dessa kataloger är användbara i vissa fall, men om du behöver justera exekveringstiderna ytterligare kan du göra det genom att redigera filen /etc/crontab, som vi förklarar härnäst:

Det normala sättet att använda cron är via kommandot crontab. Detta gör att du kan visa eller redigera din crontab-fil, som är en fil per användare som innehåller poster som beskriver kommandona som ska köras och tiden för att köra dem.

För att visa din fil kör du följande kommando:

crontab -l


Root-användaren kan visa crontab-filen för vilken användare som helst genom att lägga till -u användarnamn, till exempel :

crontab -u användarnamn -l


Formatet på dessa filer är ganska enkelt att förstå. Varje rad består av sex fält som är åtskilda med mellanslag.

Fälten är :

  1. Antal minuter efter timmen (0 till 59)

  2. Timmen i formatet militärtid (24 timmar) (0 till 23)

  3. Dag i månaden (1 till 31).

  4. Månad (1 till 12).

  5. Veckodag (0 eller 7).

  6. Kommandot som ska utföras.


De skulle kunna se ut så här:

* * * * * * Kommando som ska utföras - - - - - | | | | | | | | +-----> Veckodag (0-7) | | +-----------> Månad (1 - 12) | +-----------------> Månadsdag (1 - 31) | +-----------------------> Timme (0 - 23) +-----------------------------> Minuter (0 - 59)

(Vart och ett av de fem första fälten innehåller bara siffror, men de kan lämnas som * för att ange att vilket värde som helst kan accepteras).


Nu när vi har sett strukturen ska vi försöka köra ett par exempel:

Redigera din crontab-fil:

crontab -e


Detta kommer att köra din standardredigerare på din crontab-fil (skapa den om det behövs). När du sparar filen och avslutar redigeraren kommer din crontab att installeras i systemet om det inte finns några fel i den.

Standardredigeraren är nano

Skriv in följande text:

0 * * * * /bin/ls > /var/log/ls.log


När du har sparat filen och avslutat din editor kommer du att se ett meddelande som :

crontab: installerar ny crontab


Du kan kontrollera att filen innehåller det du förväntar dig med:

crontab -l


Här har vi sagt till Cron att köra kommandot /bin/ls och omdirigera utdata från kommandot till filen /var/log/ls.log varje gång minuten är lika med 0, dvs. kommandot körs på timmen, varje timme.

Andra exempel:

Kör kommandot "night" tio minuter efter midnatt, varje dag

10 0 * * * /bin/night


Kör kommandot "Monday" varje måndag kl. 02.00

0 2 * * 1 /usr/local/bin/lundi


Om du vill köra något mycket regelbundet kan du använda en annan syntax: i stället för att bara använda siffror kan du använda intervall eller uppsättningar.

En serie siffror anger att varje punkt i detta intervall kommer att vara tillgänglig, så om du använder följande rad kör du ett kommando klockan 1, 2, 3 och 4:

* 1-4 * * * /bin/kommando


En uppsättning är liknande och består av en uppsättning siffror som separeras med kommatecken, varje objekt i listan kommer att matchas. Det föregående exemplet ser ut så här med set:

* 1,2,3,4 * * /bin/kommando

help.lws.net/a/442
Var den här artikeln till hjälp?

Ja

Nej

Läst 24 067 gånger

Tack! Ställ gärna frågor om vår dokumentation om du vill ha mer information och hjälp oss att förbättra den.

Liknande artiklar

En fråga om den här artikeln?

Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.

Ställ en fråga till AWS-teamet och dess community

GDPR: Personuppgiftsansvarig: LWS-Ligne Web Services. Ändamål: moderering och offentlig publicering av din fråga, eventuellt meddelande om ett svar. Rättslig grund: samtycke (art. 6.1 a GDPR). Lagring av e-postadresser: 90 dagar efter meddelandet, högst 12 månader utan svar. För att utöva dina rättigheter, se GDPR-avsnittet i våra allmänna villkor.