Scheduling jobs is an essential part of administering Linux servers. Planlegging jobber er en essensiell del av å administrere Linux-servere. We took a look at how to schedule jobs on Linux machine using the Vi tok en titt på hvordan du planlegger jobber på Linux maskin ved hjelp av cron cron command earlier. kommandoen tidligere. Here's an alternative to cron – at . Her er et alternativ til cron - kl. The primary difference between the two is that when you schedule a task using cron it execute repeatedly without the need for rescheduling. Den primære forskjellen mellom de to er at når du planlegger en oppgave ved hjelp av cron det kjøres flere ganger uten behov for rescheduling. With at , on the other hand, the scheduling of a task is only for a single execution. Med på, på den annen side er planlegging av en oppgave kun for en enkelt kjøring. Both of these commands have their use, and I would suggest that you get a good understanding of them both. Begge disse kommandoene har bruken av dem, og jeg ville foreslå at du får en god forståelse for dem begge.
Let's look at how to schedule a task to execute only once using the at command. La oss se på hvordan du planlegger en oppgave å utføre kun én gang bruker på kommando. First make sure that the at daemon is running using a command like this: Kontroller først at det på nissen kjører med en kommando som dette:
# ps -ef | grep atd # Ps-ef | grep atd
root 8231 1 0 18:10 ? root 8231 1 0 18:10? 00:00:00 /usr/sbin/atd 00:00:00 / usr / sbin / atd
If you don't see atd running start it with this command: Hvis du ikke ser atd kjører starte den med denne kommandoen:
# /etc/init.d/atd start # / Etc / init.d / atd start
Once the daemon has been started successfully you can schedule an at task using the two options -f , for the file to be executed, and -v , for the time at which it should be executed. Når nissen er i gang med hell kan du planlegge en oppgave ved hjelp av de to alternativene-F, for filen kjøres, og-v, på det tidspunktet som det skal være utført. So if you want to execute the shell script shellscript.sh at 6:30 PM you would run the following command: Så hvis du ønsker å kjøre shell script shellscript.sh kl 6:30 du kjøre følgende kommando:
# at -f shellscript.sh -v 18:30 # At-f shellscript.sh-18:30 v
Remember that with the at command the script shellscript.sh will execute at 6:30 PM and then the scheduling will disappear. Husk at med ved kommandoen skriptet shellscript.sh vil utføre kl 6:30 og deretter planlegge vil forsvinne. So if this is not what you desire, you are better off using cron . Så hvis dette ikke er hva du ønsker, er du bedre med cron.
The at command is pretty clever in that it can take some orders in English if you like. AT-kommandoen er ganske flink i at det kan ta noen bestillinger på engelsk om du vil. For example, you can schedule jobs using the following syntax as well: For eksempel kan du planlegge jobber som bruker følgende syntaks i tillegg:
# at -f shellscript.sh 10pm tomorrow # At-f shellscript.sh 10pm morgen
# at -f shellscript.sh 2:50 tuesday # At-f shellscript.sh 2:50 Tirsdag
# at -f shellscript.sh 6:00 july 11 # At-f shellscript.sh 6:00 11 juli
# at -f shellscript.sh 2:00 next week # At-f shellscript.sh 2:00 neste uke























If you don't see atd running start it with this command: Hvis du ikke ser atd kjører starte den med denne kommandoen:
# /etc/init.d/atd start # / Etc / init.d / atd start
More correctly, if it isn't running, it probably is not configured to startup when the system is restarted. Mer riktig, hvis den ikke kjører, er det sannsynligvis ikke er konfigurert til oppstart når systemet startes på nytt. Which may also keep the above command from working as expected. Dette kan også oppbevare det over kommandoen fungerer som forventet. To correct this, use: For å rette dette ved å bruke:
# chkconfig atd --level 234 on
# service atd start
and check again to make sure it is running, if it is, continue with the instructions (which are very good BTW). og sjekk igjen for å kontrollere at den kjører, hvis det fortsetter, med instruksjoner (som er veldig bra BTW).
I have another followup for you on use of the at command. Jeg har en annen followup for deg på bruk av det på kommando.
I've run into situations where I've needed a command run every hour BUT I needed the command to run ONLY if the previous run has completed. Jeg har kjørt inn i situasjoner der jeg trengte et kommando kjøres hver time, men jeg trengte kommandoen for å kjøre bare hvis forrige løpe er fullført. It might not be hung but it might be very very busy. Det er kanskje ikke hengt, men det kan være veldig veldig travelt. I don't mind skipping an hour's execution if the process is still busy. I don't mind hopper over en times kjøring hvis prosessen er fortsatt opptatt.
When this situation arises, I don't use cron, I use 'at' and the last thing I put in my script is the at command itself to resubmit the job for execution. Når denne situasjonen oppstår, kan jeg ikke bruke cron, jeg bruker "på" og det siste jeg satt i manuset mitt er at kommandoen selv å sende inn den jobben for utførelse.
Now, even if the job takes three hours, at the top of the following hour, the at command will launch the job as expected without cron jobs bumping into each other. Nå, selv om jobben tar tre timer, på toppen av følgende time, ved kommandoen vil starte jobben som forventet uten cron jobber bumping inn i hverandre.
Yes, there's ways to put the logic into a script for cron to deal with it but that can also be difficult to maintain and not as obvious (to some) as this approach. Ja, det er måter å sette logikken i et skript for cron å takle det, men det kan også være vanskelig å opprettholde, og ikke så tydelig (for noen) som denne tilnærmingen.