GNU/Linux >> Linux の 問題 >  >> Linux

特定の時間に 1 回だけファイルを実行するように cron を設定するにはどうすればよいですか?

あなたは本当に at を使いたいのです .まさにこの目的のために作られています。

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

ただし、at がない場合 、またはホスティング会社がアクセスを提供していない場合は、自己削除型の cron エントリを作成できます。

残念ながら、これによりすべての cron エントリが削除されます。ただし、1 つしかない場合は、これで問題ありません。

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

コマンド crontab -r crontab エントリを削除します。幸いなことに、残りのコマンド ラインは引き続き実行されます。

警告:これは危険です!すべての cron エントリを削除します。たくさんある場合、「crontab -r」行のあるものだけでなく、すべて削除されます!


あなたは本当に at を使いたいのです .まさにこの目的のために作られています。

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

ただし、at がない場合 、またはホスティング会社がアクセスを提供していない場合は、cron ジョブに 1 回だけ実行されるようにするコードを含めることができます。

非常に具体的な時間で cron エントリを設定します:

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

次の /home/adm/bin/the_command は、一度しか実行されないようにする必要があります。

#! /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]

これを試して、2011 年 3 月 30 日の真夜中にコマンドを実行してください:

0 0 30 3 ? 2011  /command

警告 :コメントにあるように、 列は、cron の標準/デフォルトの実装ではサポートされていません。 cron の標準実装で将来の特定の時間にスクリプトを実行する適切な方法については、以下の TomOnTime の回答を参照してください。


Linux
  1. TrueNASでcronジョブを設定する方法

  2. Debain 11 でタイムゾーンを設定または変更する方法

  3. 特定の曜日に cron ジョブを実行する方法

  1. 特定の期間実行するように tcpdump をスケジュールする方法は?

  2. ファイルを実行不可として設定するには?

  3. 毎日特定の時間にcronジョブを実行する方法は?

  1. Linuxでタイムゾーンを設定または変更する方法

  2. コマンドオプションを覚える方法は??

  3. Vimでファイルタイプを使用する方法は?