Hvordan du utfører crontab på systemstartstid

Hvordan du utfører crontab på systemstartstid
Leter du etter en løsning for å kjøre crontab hver gang serveren eller systemet ditt starter på nytt? Dette er mulig ved å bruke @reboot -alternativet. Standard måten å kjøre Cron Jobs er å spesifisere dato og klokkeslett, etterfulgt av veien til kommandoen for å utføre. Det samme konseptet blir brukt når du definerer en kommando som skal utføres når serveren starter på nytt. Den eneste forskjellen er at vi i dette tilfellet ikke spesifiserer dato og klokkeslett. I stedet bruker vi @Reboot etterfulgt av veien til kommandoen. La oss se hvordan det fungerer.

Hvordan du planlegger crontab for å utføre på systemstartstid

Linux- og UNIX -systemer kommer forhåndsinstallert med Cron Utility, en jobbplanlegger som gjør det enkelt å planlegge jobber på crontab -filen. Det samme verktøyet er tilgjengelig for macOS. Syntaksen for planlegging av jobber med gitte intervaller er gitt nedenfor:

Min Hour Day-of-Month Month Month-of-of-Week [Command]

For eksempel kan du bruke følgende kommando hvis du trenger å kjøre et backup -skript hvert 20. minutt fra 3:00 P.m. til 4:00 s.m. daglig.

*/20 15-16 * * */PATH/TO/BACKUP.sh

Den forrige kommandoen fungerer når du trenger å utføre en jobb på et bestemt tidspunkt, men hva om du trenger den samme kommandoen for å kjøre etter hver støvel?

For å stille den samme kommandoen til å kjøre når systemet starter på nytt, må du erstatte datoen og klokkeslettet med @reboot. Den nye kommandoen ville være:

@Reboot/Path/To/Backup.sh

I forrige kommando, @Reboot Angir at Cron skal utføre den spesifiserte kommandoen etter hver oppstart. Igjen, vi må legge kommandoen til crontab -filen.

Bruk følgende kommando for å åpne crontab -filen og redigere den for å legge til vår nye jobb.

crontab -e

Merk at vi oppretter jobben for den nåværende brukeren. Hvis du trenger å planlegge oppgaven for en annen bruker, for eksempel, en bruker som heter Linuxhint1, Følgende kommando ville være:

crontab -e -u linuxhint1

Når crontab -filen åpnes, legg til kommandoen i bunnlinjen. Lagre filen og avslutningen.

Legg også merke til at vi bruker en Nano Redaktør, redaktøren din kan være annerledes, men kommandoen er den samme.

Hvis jobben er planlagt, bør du få en melding som den som vises i følgende bilde for å indikere en vellykket installasjon av den nye Crontab:

Likevel kan du bruke følgende kommando til å liste opp de planlagte jobbene.

crontab -l

Hvis du ikke lenger ønsker å utføre kommandoen ved oppstartstidspunktet, kan du fjerne den ved å redigere crontab -filen eller bruke kommandoen nedenfor. Merk at følgende kommando sletter alle planlagte jobber. Hvis det ikke er det du ønsker å oppnå, bla ned på crontab og slett jobben manuelt ved hjelp av en redaktør.

crontab -r

@Reboot utfører en kommando umiddelbart etter oppstartstid. Du kan imidlertid spesifisere en søvnperiode før kommandoen kjører. For eksempel, hvis du trenger kommandoen for å utføre 10 minutter etter oppstart, må du angi tid på sekunder.

Kommandoen ville være.

@Reboot Sleep 600/Path/To/Backup.sh

600 representerer de 10 minuttene uttrykt på sekunder, og sove er muligheten til å bruke når du spesifiserer tiden før utførelse.

Den nye Crontab -filen vår vil bli angitt, som vist nedenfor:

Neste gang du starter på nytt serveren din, vil backup -skriptet eller den angitte kommandoen utføres etter 10 minutter.

Til slutt kan vi bekrefte at den planlagte jobben vil kjøre ved å sjekke statusen for Crond Service. Det bør være aktiv. Bruk følgende kommando for å sjekke statusen:

sudo systemctl status cron.service

Du er god å gå hvis du får en utdata som følgende utgang:

Hvis statusen til Crond ikke er aktiv, kan du aktivere den ved å bruke følgende kommando, og sjekk statusen:

sudo systemctl aktiver cron.service

Det er det. Kommandoen din vil utføre ved oppstartstidspunktet.

Konklusjon

Å vite hvordan du planlegger jobber ved oppstartstidspunktet er viktig for Linux -administratorer. Heldigvis dekket denne guiden en omfattende praktisk guide om hvordan du kan gjøre det ved å bruke Linux Cron-verktøyet. I tillegg diskuterte vi hvordan du kunne sette en søvntid før kommandoen kjøres.