94

特定の日時を含むテキスト ファイルがありますそのファイルで指定された時間にスクリプト を実行できるようにしたい。 どうすればそれを達成できますか?バックグラウンドで実行され (一種のデーモン)、現在の時刻がファイル内の時刻と一致しているかどうかを毎秒チェックする別のスクリプトを作成しますか? 別の方法はありますか?マシンはLinuxサーバー、Debian wheezy です。前もって感謝します

4

4 に答える 4

167

以下を見てください。

echo "ls -l" | at 07:00

このコード行は、特定の時間に「ls -l」を実行します。これは、特定の時間に何か (私の例ではコマンド) を実行する例です。「at」は、あなたが本当に探していたコマンドです。ここで仕様を読むことができます:

http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.html http://manpages.ubuntu.com/manpages/xenial/man1/at.1posix.html

それが役に立てば幸い!

于 2013-09-22T15:58:49.467 に答える
21

このatコマンドは、特にこの目的のために存在します (cron定期的なタスクをスケジュールするためのものとは異なります)。

at $(cat file) </path/to/script
于 2013-09-22T15:56:11.700 に答える
12

Cronは、毎週土曜日の午前 4 時のように、定期的に実行されるものに適しています。また、電源のシャットダウン、スリープなどを回避するanacronもあります。と同様

しかし、root などを必要としない 1 回限りのソリューションの場合は、dateを使用して、現在の時間だけでなくターゲット時間のエポックからの秒数を計算し、exprを使用して差を見つけることができます。その秒数スリープします。

于 2013-09-22T16:02:19.270 に答える