![Hier zijn de beste PDF-editor-apps voor Android en iPhone](/f/5cd2d4516571c21b4160be9351742165.jpg?width=100&height=100)
Een systeembeheerder moet een opdracht vaak in een bepaalde tijdsperiode herhaaldelijk uitvoeren. Vaak kunnen dergelijke taken gemakkelijk worden voltooid met eenvoudige cron-opdrachten. In de meeste gevallen zou dit moeten werken, maar de kortste periode waarin u het cron-commando kunt uitvoeren, is elke minuut. Geloof het of niet, in veel gevallen gaat dit te traag.
In deze zelfstudie leert u eenvoudige scripttechnieken om een bepaald commando in een continu actieve toestand te controleren of in de gaten te houden, vergelijkbaar met top commando (continu proces en geheugengebruik bewaken) standaard elke 3 seconden.
We zullen niet stoppen om de redenen te bespreken waarom u zo vaak opdrachten zou moeten uitvoeren. Ik geloof dat iedereen daar verschillende redenen voor heeft in hun dagelijkse werk of zelfs op pc's en laptops thuis.
Kijk maar is een Linux-commando waarmee je periodiek een commando of programma kunt uitvoeren en dat ook de uitvoer op het scherm laat zien. Dit betekent dat u de programma-uitvoer op tijd kunt zien. Standaard voert het horloge de opdracht/het programma elke 2 seconden opnieuw uit. Het interval kan eenvoudig worden gewijzigd om aan uw vereisten te voldoen.
"Watch" is uiterst eenvoudig te gebruiken, om het te testen, kunt u meteen een Linux-terminal starten en de volgende opdracht typen:
# kijk gratis -m.
De bovenstaande opdracht controleert het vrije geheugen van uw systeem en werkt de resultaten van de gratis commando elke twee seconden.
Zoals te zien is in de bovenstaande uitvoer, hebt u een koptekst met informatie over (van links naar rechts) het update-interval, de opdracht die wordt uitgevoerd en de huidige tijd. Als u deze koptekst wilt verbergen, kunt u de gebruiken -t
keuze.
De volgende logische vraag is - hoe het uitvoeringsinterval te wijzigen. Voor dat doel kunt u de -N
optie, die het interval specificeert waarmee de opdracht zal worden uitgevoerd. Dit interval wordt gespecificeerd in seconden. Dus laten we zeggen dat u uw script.sh
bestand elke 10 seconden, je kunt het als volgt doen:
# bekijk -n 10 script.sh.
Opmerking dat als u de opdracht uitvoert zoals hierboven weergegeven, u het volgende moet doen: CD
naar de directory (leer Leer 15 cd-opdrachtvoorbeelden) waar het script zich bevindt of geef op een andere manier het volledige pad naar dat script op.
Andere handige opties van het horloge-commando zijn:
-B
– maakt een piepgeluid als de uitgang van de opdracht niet nul is.-C
– Interpreteert ANSI-kleurreeksen.-NS
– markeert de wijzigingen in de opdrachtuitvoer.Stel dat u ingelogde gebruikers, de uptime van de server wilt controleren en de gemiddelde uitvoer om de paar seconden in een continue fase wilt laden, en vervolgens de volgende opdracht wilt gebruiken, zoals weergegeven:
# kijk uptime.
Om de opdracht te verlaten, drukt u op CTRL+C
.
Hier de 'uptime'
commando wordt uitgevoerd en geeft standaard elke 2 seconden de bijgewerkte resultaten weer.
In Linux, tijdens het kopiëren van bestanden van de ene locatie naar de andere met behulp van cp
commando, de voortgang van de gegevens wordt niet weergegeven, om de voortgang van de gegevens die worden gekopieerd te zien, kunt u de kijk maar
commando samen met du -s commando om het schijfgebruik te controleren live.
# cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ & # watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
Als je denkt dat het bovenstaande proces te ingewikkeld is om te bereiken, dan raad ik je aan om voor Kopieeropdracht vooruit, die de voortgang van gegevens laat zien tijdens het kopiëren.
Slaap wordt vaak gebruikt om shellscripts te debuggen, maar het heeft ook veel andere nuttige doeleinden. Bijvoorbeeld in combinatie met voor
of terwijl
loops, kun je behoorlijk geweldige resultaten krijgen.
Als bash-scripting nieuw voor je is, kun je onze gids over bash-loops raadplegen hier.
Voor het geval dit de eerste keer is dat u over de "slaap"
commando, wordt het gebruikt om iets voor een bepaalde tijd uit te stellen. In scripts kun je het gebruiken om je script opdracht 1 uit te voeren, wacht 10 seconden en voer dan opdracht 2 uit.
Met de bovenstaande lussen kun je bash vertellen om een commando uit te voeren, sleep for N aantal seconden en voer de opdracht opnieuw uit.
Hieronder zie je voorbeelden van beide lussen:
# voor i in {1..10}; do echo -n "Dit is een test in lus $i "; datum; slaap 5; klaar.
De bovenstaande one-liner zal de echo commando en geef de huidige datum weer, in totaal 10 keer, met 5 seconden slaap tussen de uitvoeringen.
Hier is een voorbeelduitvoer:
Dit is een test in loop 1 wo 17 feb 20:49:47 EET 2016. Dit is een test in loop 2 wo 17 feb 20:49:52 EET 2016. Dit is een test in loop 3 wo 17 feb 20:49:57 EET 2016. Dit is een test in loop 4 wo 17 feb 20:50:02 EET 2016. Dit is een test in loop 5 wo 17 feb 20:50:07 EET 2016. Dit is een test in loop 6 wo 17 feb 20:50:12 EET 2016. Dit is een test in loop 7 wo 17 feb 20:50:17 EET 2016. Dit is een test in loop 8 wo 17 feb 20:50:22 EET 2016. Dit is een test in loop 9 wo 17 feb 20:50:27 EET 2016. Dit is een test in loop 10 wo 17 feb 20:50:32 EET 2016.
U kunt de echo en datum commando's met uw eigen commando's of script en verander het slaapinterval volgens uw behoeften.
# terwijl waar; do echo -n "Dit is een test van while-lus";date; slaap 5; klaar
Hier is voorbeelduitvoer:
Dit is een test van while loopWed 17 Feb 20:52:32 EET 2016. Dit is een test van while loopWo 17 Feb 20:52:37 EET 2016. Dit is een test van while loopWed 17 Feb 20:52:42 EET 2016. Dit is een test van while loopWo 17 Feb 20:52:47 EET 2016. Dit is een test van while loopWo 17 Feb 20:52:52 EET 2016. Dit is een test van while loopWed 17 Feb 20:52:57 EET 2016.
De bovenstaande opdracht wordt uitgevoerd totdat het is ofwel gedood of onderbroken door de gebruiker. Het kan van pas komen als u een opdracht op de achtergrond moet uitvoeren en u niet op wilt rekenen cron.
Belangrijk: Wanneer u de bovenstaande methoden gebruikt, wordt het ten zeerste aanbevolen dat u het interval lang genoeg instelt om uw opdracht voldoende tijd te geven om te voltooien, voordat de volgende uitvoering wordt uitgevoerd.
De voorbeelden in deze tutorial zijn nuttig, maar zijn niet bedoeld om de cron-hulpprogramma. Het is aan jou om te ontdekken welke voor jou het beste werkt, maar als we het gebruik van beide technieken moeten scheiden, zou ik dit zeggen:
Zoals altijd, als je vragen of opmerkingen hebt, aarzel dan niet om ze in de commentaarsectie hieronder te plaatsen.