logo

'crontab' i Linux med exempel

De crontab är en lista över kommandon som du vill köra på ett vanligt schema, och även namnet på kommandot som används för att hantera den listan. Crontab står för cron table, eftersom den använder jobbschemaläggaren cron för att utföra uppgifter; cron själv är uppkallad efter chronos, det grekiska ordet för tid. cron är systemprocessen som automatiskt utför uppgifter åt dig enligt ett fastställt schema. Schemat kallas crontab, vilket också är namnet på programmet som används för att redigera det schemat.

Linux Crontab-syntax

Linux Crontab-formatet representeras av följande syntax:



MIN HOUR DOM MON DOW   CMD>

Låt oss dela upp varje fält:

Fält

Beskrivning



Tillåtet värde

MIN (minut)

Anger minut när kommandot ska köras



Det sträcker sig från 0 till 59.

TIMME

Anger den timme på dagen då kommandot är schemalagt att köras.

Det sträcker sig från 0 till 23.

DOM (dagen i månaden)

Anger dag i månaden för uppgiften.

Det sträcker sig från 1 till 31.

MON (månad)

Indikerar den månad under vilken kommandot kommer att utföras.

Det varierar från 1 till 12.

DOW (veckodag)

Anger veckodag för uppgiften.

Den representeras av siffror från 0 till 6, där både 0 och 6 motsvarar söndagen.

CMD (kommando)

Representerar det faktiska kommandot eller skriptet som körs vid den schemalagda tiden.

—————–

Exempel på Cron-jobb

1. Schemalägga ett jobb för en viss tid

Den grundläggande användningen av cron är att utföra ett jobb på en specifik tid som visas nedan. Detta kommer att köra skalskriptet för fullständig säkerhetskopiering (full säkerhetskopia) den 10 juni kl. 08:30. Tidsfältet använder 24 timmars format. Så, för 8 AM använd 8, och för 8 PM använd 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30:e minuten 08 – 08:00 10 – 10:e Dag 06 – 6:e månaden (juni) * – Alla dagar i veckan

2. För att visa Crontab-posterna

  • Visa aktuella inloggade användares Crontab-poster: För att se dina crontab-poster skriv crontab -l från ditt unix-konto.
  • Visa Root Crontab-poster : Logga in som root-användare (su – root) och gör crontab -l.
  • För att se crontab-poster för andra Linux-användare: Logga in på root och använd -u {användarnamn} -l.

3. För att redigera Crontab-poster Redigera aktuella inloggade användares Crontab-poster.

För att redigera en crontab-poster, använd crontab -e. Som standard kommer detta att redigera den aktuella inloggade användarens crontab.

4. Att schemalägga ett jobb för varje minut med Cron.

Helst kanske du inte har ett krav på att schemalägga ett jobb varje minut. Men att förstå det här exemplet hjälper dig att förstå de andra exemplen.

* * * * * CMD>

* betyder alla möjliga enheter – det vill säga varje minut av varje timme under hela året. Mer än att använda denna * direkt, kommer du att tycka att den är mycket användbar i följande fall. När du anger */5 i minutfältet betyder det var 5:e minut. När du anger 0-10/2 i minutfältet menar du varannan minut under de första 10 minuterna. Således kan ovanstående konvention användas för alla de andra fyra fälten.

5. Att schemalägga ett jobb för mer än en gång (t.ex. Två gånger om dagen)

Följande skript tar en inkrementell säkerhetskopia två gånger om dagen varje dag. Det här exemplet kör det angivna skalskriptet för inkrementell säkerhetskopiering (inkrementell säkerhetskopiering) kl. 11:00 och 16:00 varje dag. Det kommaseparerade värdet i ett fält anger att kommandot måste utföras under hela nämnda tid.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0:e minuten (Överst på timmen) 11, 16 – 11:00 och 16:00 * – Varje dag * – Varje månad * – Alla dagar i veckan

6. Att schemalägga ett jobb för ett visst tidsintervall (t.ex. endast på vardagar)

Om du ville att ett jobb skulle schemaläggas för varje timme inom ett visst tidsintervall, använd följande.

  • Cron Job everyday under arbetstid : Det här exemplet kontrollerar statusen för databasen varje dag (inklusive helger) under arbetstiden 9:00 – 18:00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0:e minuten (Överst på timmen) 09-18 – 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Varje dag * – Varje dag månad * – Alla dagar i veckan
  • Cron Job varje veckodag under arbetstid : Det här exemplet kontrollerar databasens status varje veckodag (d.v.s. exklusive lör och sön) under arbetstiden 9.00–18.00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0:e minuten (Överst på timmen) 09-18 – 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Varje dag * – Varje dag månad 1-5 -mån, tis, ons, tor och fre (varje veckodag)

7. Att schemalägga ett Cron-jobb i bakgrunden var tionde minut.

Använd följande om du vill kontrollera diskutrymmet var tionde minut.

ladda ner youtube vlc media player
*/10 * * * * /home/maverick/check-disk-space>

Den kör det angivna kommandot check-disk-space var tionde minut under hela året. Men du kan ha ett krav på att utföra kommandot endast under vissa timmar eller vice versa. Exemplen ovan visar hur man gör dessa saker. Istället för att ange värden i de 5 fälten kan vi ange det med ett enda nyckelord som nämns nedan. Det finns speciella fall där du istället för ovanstående 5 fält kan använda @ följt av ett nyckelord — som omstart, midnatt, årligen, varje timme. Cron speciella nyckelord och dess betydelse

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Att schemalägga ett jobb för första minuten av varje år med @yearly

Om du vill att ett jobb ska utföras den första minuten av varje år, kan du använda nyckelordet @yearly cron som visas nedan. Detta kommer att utföra systemets årliga underhåll med skalskriptet för årligt underhåll kl. 00:00 den 1 januari för varje år.

@yearly /home/maverick/bin/annual-maintenance>

9. Att schemalägga ett Cron-jobb i början av varje månad med @monthly

Det är lika likt @yearly som ovan. Men kör kommandot månadsvis en gång med hjälp av @monthly cron nyckelordet. Detta kommer att exekvera skalskriptet tape-backup kl. 00:00 den 1:a varje månad.

@monthly /home/maverick/bin/tape-backup>

10. Att schemalägga ett bakgrundsjobb varje dag med @daily

Med hjälp av nyckelordet @daily cron kommer detta att göra en daglig loggfilsrensning med skalskriptet för cleanup-logs kl. 00:00 varje dag.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. Att köra ett linux-kommando efter varje omstart med @reboot

Med hjälp av nyckelordet @reboot cron kommer detta att utföra det angivna kommandot en gång efter att maskinen startat upp varje gång.

@reboot CMD>