起動時に特定のスクリプトを定期的に実行する

起動時に特定のスクリプトを定期的に実行する

コンピュータが不規則に起動すると仮定しましょう。月に一度起動時に特定のスクリプトを実行したいと思います。ただし、この日にマシンが起動するかどうかわからないため、cronジョブを設定できません。

私はこのアプローチを考えました。

  • スクリプトが最後に実行された日付を含むファイルを作成します。
  • 私は起動するたびに次のことを行います。

if(file_exists("last_boot.txt"))
{
    if(<<more then a month has passed since last date time>>)
    {
        <<run script>>
    }
}
else
{
    <<run script>>
}

<<write current date time into the file>>

ファイルトリックを使用せずにいくつかの標準ツールを使用してこれを実行できますか?

答え1

cronを使用してスケジュールに従って*実行して確認します。その他スクリプトのスケジュールの一部:

一方通行:

@reboot /path/to/my_script.sh

if has_run_this_month() {
    exit
}

別の方法:

0 0 1 * * /path/to/my_script.sh

if has_run_since_reboot() {
    exit
}

*この動作モードにはいくつかの問題があります。

  • 1ヶ月以上機械を作動させたことはありますか?この月?どちらの場合もどうなりますか?
  • 機械から出たことがありますか?去る一ヶ月以上?これがどこに行くのかがわかります...
  • 国の道に固執することをどのように保証しますか?持つ永久どこかに保存)はRAMディスクなので、起動時に消去されませんか?

関連情報