SSH - Geplande taken

Procédure

SSH - Geplande taken

Veel systeembeheer kan worden geautomatiseerd via Perl scripts of shell scripts die op regelmatige intervallen worden uitgevoerd. Je zou bijvoorbeeld een script kunnen hebben om te controleren of je schijf niet vol is dat eens per uur draait om je te laten weten of er problemen zijn. Het meest gebruikte mechanisme voor het plannen van commando's op Linux systemen is via het cron pakket.

In Debian maakt het cron-pakket deel uit van het basissysteem en draait het standaard.

Cron wordt met Debian meegeleverd voor twee doeleinden:

  • Om systeemtaken dagelijks/wekelijks/maandelijks uit te voeren.

  • Om gebruikers in staat te stellen hun eigen geplande taken te configureren.


Het Cron-pakket maakt automatisch de volgende mappen aan:

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


Afgezien van de eerste, die speciaal is, kun je met deze mappen op een eenvoudige manier taken plannen voor het hele systeem. Elk script dat erin wordt geplaatst, zal zo vaak worden uitgevoerd als de naam suggereert.

Als je bijvoorbeeld een script in /etc/cron.daily plaatst, zal het elke dag één keer per dag worden uitgevoerd.

Deze mappen zijn handig in sommige gevallen, maar als je de uitvoeringstijden verder wilt aanpassen, dan kan dit gedaan worden door het /etc/crontab bestand te bewerken, wat we hierna zullen uitleggen:

De normale manier waarop mensen cron gebruiken is via het crontab commando. Dit laat je toe om je crontab bestand te bekijken of te bewerken, wat een bestand per gebruiker is dat de commando's beschrijft die uitgevoerd moeten worden en de tijd om ze uit te voeren.

Om je bestand te tonen voer je het volgende commando uit:

crontab -l


De root-gebruiker kan het crontab-bestand van elke gebruiker bekijken door -u gebruikersnaam toe te voegen, bijvoorbeeld :

crontab -u gebruikersnaam -l


Het formaat van deze bestanden is vrij eenvoudig te begrijpen. Elke regel is een verzameling van zes velden gescheiden door spaties.

De velden zijn :

  1. Het aantal minuten na het uur (0 tot 59)

  2. Het uur in militaire tijd (24 uur) formaat (0 tot 23)

  3. De dag van de maand (1 tot 31).

  4. Maand (1 tot 12).

  5. Dag van de week (0 of 7).

  6. Het commando dat moet worden uitgevoerd.


Ze zien er als volgt uit:

* * * * Uit te voeren commando - - - - | | | | | +-----> Dag van de week (0-7) | | +-----------> De maand (1 - 12) | +-----------------> De dag van de maand (1 - 31) | +-----------------------> Het uur (0 - 23) +-----------------------------> Minuten (0 - 59)

(Elk van de eerste vijf velden bevat alleen getallen, maar ze kunnen als * worden gelaten om aan te geven dat elke waarde acceptabel is).


Nu we de structuur hebben gezien, kunnen we proberen een paar voorbeelden uit te voeren:

Bewerk je crontab bestand:

crontab -e


Dit zal je standaardeditor uitvoeren op je crontab-bestand (en indien nodig aanmaken). Wanneer je het bestand opslaat en je editor afsluit, wordt je crontab in het systeem geïnstalleerd, tenzij er fouten in zitten.

De standaardeditor is nano

Voer de volgende tekst in:

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


Wanneer je het bestand hebt opgeslagen en je editor hebt afgesloten, zie je een bericht als :

crontab: nieuwe crontab installeren


Je kunt controleren of het bestand bevat wat je verwacht met

crontab -l


Hier hebben we Cron verteld om het /bin/ls commando uit te voeren en de uitvoer van het commando om te leiden naar het /var/log/ls.log bestand elke keer als de minuut gelijk is aan 0, d.w.z. het zal het commando op het uur uitvoeren, elk uur.

Andere voorbeelden:

Voer de opdracht "night" elke dag tien minuten na middernacht uit

10 0 * * * /bin/night


Voer het commando "Monday" elke maandag om 2 uur uit

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


Als je iets heel regelmatig wilt uitvoeren, kun je een andere syntaxis gebruiken: in plaats van alleen getallen, kun je reeksen of reeksen gebruiken.

Een reeks getallen geeft aan dat elk punt in dit bereik beschikbaar zal zijn, dus als je de volgende regel gebruikt, voer je een commando uit op 1 uur, 2 uur, 3 uur en 4 uur:

* 1-4 * * /bin/command


Een set is vergelijkbaar, bestaande uit een reeks getallen gescheiden door komma's, elk item in de lijst wordt gematcht. Het vorige voorbeeld ziet er zo uit met sets:

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

Beoordeel dit artikel :

5/5 | 2 mening

Dit artikel was nuttig voor jou ?

Article utileJa

Article non utileGeen

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Vergelijkbare artikelen

2mn lezen

Hoe configureer ik de firewall op een dedicated VPS server?

1mn lezen

Hoe kan ik als root verbinding maken op een dedicated VPS server met Putty?

0mn lezen

Linux / Debian SSH-opdrachten

0mn lezen

SSH - Apt-get commando: Pakketten installeren en verwijderen


Stel een vraag aan het LWS-team en de gemeenschap