Zoeken…


Voer de taak eenmaal op een specifiek tijdstip uit

Opmerking: at wordt niet standaard geïnstalleerd op de meeste moderne distributies.

Om een taak op een ander tijdstip dan nu uit te voeren, in dit voorbeeld 17.00 uur, kunt u gebruiken

echo "somecommand &" | at 5pm

Als u de uitvoer wilt vangen, kunt u dat op de gebruikelijke manier doen:

echo "somecommand > out.txt 2>err.txt &" | at 5pm

at begrijpt veel tijd formaten, dus je kunt ook zeggen

echo "somecommand &" | at now + 2 minutes
echo "somecommand &" | at 17:00
echo "somecommand &" | at 17:00 Jul 7
echo "somecommand &" | at 4pm 12.03.17

Als er geen jaar of datum wordt opgegeven, wordt ervan uitgegaan dat de tijd die u hebt opgegeven zich de volgende keer zal voordoen. Dus als je een uur geeft dat vandaag al voorbij is, zal het morgen aannemen, en als je een maand geeft die dit jaar al voorbij is, zal het volgend jaar aannemen.

Dit werkt ook samen met nohup zoals je zou verwachten.

echo "nohup somecommand > out.txt 2>err.txt &" | at 5pm

Er zijn nog enkele opdrachten om getimede taken te beheren:

  • ATQ bevat alle getimed jobs (ATQ ueue)
  • atrm verwijdert een getimede taak ( atr e m ove)
  • batch doet in principe hetzelfde als bij, maar voert taken alleen uit als de systeembelasting lager is dan 0,8

Alle opdrachten zijn van toepassing op taken van de ingelogde gebruiker. Indien aangemeld als root, worden systeembrede taken natuurlijk afgehandeld.

Taken op bepaalde tijdstippen herhaaldelijk uitvoeren met systemd.timer

systemd biedt een moderne implementatie van cron . Om een script periodiek uit te voeren zijn een service en een timerbestand nodig. De service- en timerbestanden moeten in / etc / systemd / {system, user} worden geplaatst. Het servicebestand:

[Unit]
Description=my script or programm does the very best and this is the description

[Service]
# type is important!
Type=simple
# program|script to call. Always use absolute pathes 
# and redirect STDIN and STDERR as there is no terminal while being executed 
ExecStart=/absolute/path/to/someCommand >>/path/to/output 2>/path/to/STDERRoutput
#NO install section!!!! Is handled by the timer facitlities itself.
#[Install]
#WantedBy=multi-user.target

Vervolgens het timerbestand:

[Unit]
Description=my very first systemd timer
[Timer]
# Syntax for date/time specifications is  Y-m-d H:M:S 
# a * means "each", and a comma separated list of items can be given too
# *-*-* *,15,30,45:00  says every year, every month, every day, each hour,
# at minute 15,30,45 and zero seconds

OnCalendar=*-*-* *:01:00  
# this one runs each hour at one minute zero second e.g. 13:01:00 


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow