GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavím cron, aby spouštěl soubor pouze jednou v určitou dobu?

Opravdu chcete použít at . Je přesně pro tento účel vyroben.

echo /usr/bin/the_command options | at now + 1 day

Pokud však nemáte at , nebo k němu vaše hostitelská společnost neposkytuje přístup, můžete provést samosmazání záznamu v cron.

Bohužel to odstraní všechny vaše cron záznamy. Pokud však máte pouze jeden, je to v pořádku.

0 0 2 12 * crontab -r ; /home/adm/bin/the_command options

Příkaz crontab -r odstraní vaši položku crontab. Zbytek příkazového řádku se naštěstí stále spustí.

VAROVÁNÍ:Toto je nebezpečné! Odstraní VŠECHNY položky cronu. Pokud jich máte mnoho, odstraní je všechny, nejen tu, která má řádek "crontab -r"!


Opravdu chcete použít at . Je přesně pro tento účel vyroben.

echo /usr/bin/the_command options | at now + 1 day

Pokud však nemáte at , nebo k němu vaše hostitelská společnost neposkytuje přístup, můžete nechat úlohu cron zahrnout kód, který zajistí, že se spustí pouze jednou.

Nastavte záznam cronu s velmi specifickým časem:

0 0 2 12 * /home/adm/bin/the_command options

Další /home/adm/bin/the_command se musí ujistit, že se spustí pouze jednou.

#! /bin/bash

COMMAND=/home/adm/bin/the_command
DONEYET="${COMMAND}.alreadyrun"

export PATH=/usr/bin:$PATH

if [[ -f $DONEYET ]]; then
  exit 1
fi
touch "$DONEYET"

# Put the command you want to run exactly once here:
echo 'You will only get this once!' | mail -s 'Greetings!' [email protected]

Vyzkoušejte toto pro provedení příkazu 30. března 2011 o půlnoci:

0 0 30 3 ? 2011  /command

UPOZORNĚNÍ :Jak je uvedeno v komentářích, rok sloupec není podporován ve standardních/výchozích implementacích cronu. Správný způsob, jak v budoucnu spustit skript v konkrétní čas ve standardních implementacích cronu, naleznete v odpovědi TomOnTime níže.


Linux
  1. Jak spustit aplikaci po nastavenou dobu v prostředí Shell?

  2. Jak spustit úlohu cronu v určité dny v týdnu

  3. Jak nastavit úlohu cron, aby každou hodinu spouštěla ​​spustitelný soubor?

  1. Jak spustit skript shellu při spuštění

  2. Jak naplánovat spuštění tcpdump na konkrétní časové období?

  3. Jak nastavit soubor jako NENÍ spustitelný?

  1. Jak nastavit nebo změnit časové pásmo v Linuxu

  2. Jak nastavit úlohu Cron v TrueNAS

  3. Jak si zapamatovat možnosti příkazů?