特定の日付と時刻を含むテキストファイルがあります。でスクリプトを実行できるそのファイルで指定された時間。それをどのように達成しますか?バックグラウンドで実行される別のスクリプト(デーモンの一種)を作成し、現在の時刻がファイル内の時刻と一致しているかどうかを毎秒チェックしますか?別の方法はありますか?マシンはlinuxサーバー、Debian wheezyです。前もって感謝します
次を見てください:
echo "ls -l" | at 07:00
このコード行は、特定の時間に「ls -l」を実行します。これは、特定の時間に何か(私の例ではコマンド)を実行する例です。 「at」は、本当に探していたコマンドです。ここで仕様を読むことができます:
http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.htmlhttp://manpages.ubuntu.com/manpages/xenial/man1/ at.1posix.html
それが役に立てば幸い!
at
コマンドは、この目的のために特別に存在します(cron
は、定期的なタスクのスケジューリングを目的としています)。
at $(cat file) </path/to/script
Cronは、毎週土曜日の午前4時に定期的に実行されるものに適しています。 anacronもあります。これは、電源のシャットダウン、スリープなどを回避します。 atと同様。
ただし、ルートなどを必要としない1回限りのソリューションの場合は、dateを使用して、現在時刻だけでなく目標時刻の秒からの経過時間を計算してから、 expr違いを見つけるため、およびsleepその秒数。
通常、Linuxでは、この種のスケジュールされたタスクにcrontab
を使用します。ただし、「タイマーを設定する」時間を指定する必要があります。したがって、ファイル自体で設定できるようにするには、そのためのメカニズムを作成する必要があります。
しかし、一般的には、たとえば次を使用します。
30 1 * * 5 /path/to/script/script.sh
毎週金曜日の1:30(AM)にスクリプトを実行します。
30
は分です
1
は時間です
次の2 *はday of month
とmonth
(この順序)で、5
は平日です