定期的なタスクスケジューラを既存の製品に置き換える

定期的なタスクスケジューラを既存の製品に置き換える

定期的に実行したいタスクがいくつかあります。

  • すべての Git リポジトリをプッシュする (1 日 5 回)
  • ファイルのウイルススキャンを実行する(90日ごと)
  • サーバーからバックアップをダウンロードする(1日1回)

これらすべてのタスクにはスクリプトがあります。それらを調整するために、私はスクリプトを書きました。maintenanceこれは私のメンテナンスプロジェクトスクリプトの現在のバージョン

タスク用の JSON 設定ファイルがあります:

"git-autopush": {
    "disk": true,
    "internet": true,
    "interval": 0.3,
    "local": false
},

システム上のカスタム ソフトウェアを削減したいので、スクリプトを既存のタスク スケジューラに置き換えたいと思っています。ただし、次の要件があります。

  • バッテリー駆動時は走行しないでください。
  • 目に見えるステータスを提供します。それは、通過するkdialogこともできます。
  • 一度にディスクを大量に消費するタスクを 1 つだけ実行します。

スクリプトmaintenanceがその処理をしてくれるので、タスクを実行するのに十分な時間があるときはいつでもスクリプトを実行できます。時間がない場合は、すべてのタスクを中止して、後で再開できます。

単純な cron は、コンピュータの電源がオフになっていると動作しないので、適していません。anacron の方が良いかもしれませんが、起動直後にすべてのタスクが実行されると思います。また、仮想マシンにディスクが必要になった場合、スケジューラを停止するにはどうすればよいでしょうか。

既存のプログラムはありますか、それとも自分のプログラムをそのまま使い続けるべきでしょうか?

答え1

仮想マシンにディスクが必要になった場合、スケジューラに停止を指示するにはどうすればよいでしょうか?

Cron と anacron は (通常は) デーモン サービスです。他のサービスを停止および開始するのと同じように停止および開始できます。

cronはコンピュータの電源がオフのときには動作しないので、良くない。

それは回避するのがかなり難しい基準です。コンピューターの電源がオフになっている間にソフトウェアに何をさせたいですか?

anacron の方が良いかもしれませんが、起動直後にすべてのタスクが実行されると思います。

どうやら。ただし、ここにアイデアがあります:anacronで開始および停止しますcron

一度にディスクを大量に消費するタスクを 1 つだけ実行する

Anacron にはこのオプションがあります:

-s
ジョブの実行をシリアル化します。Anacron は、前のジョブが完了するまで新しいジョブを開始しません。

残っているのは、次の 2 つを実装するだけです。

  • バッテリー駆動時は走行しないでください。
  • 目に見えるステータスを提供します。これは kdialog を通じても可能になります。

最初の方法は、anacron を起動する前に cron にバッテリーの状態をチェックさせることで実現できます。2 つ目の方法は、さまざまな方法で実行できます。すでに 1 つの方法を提案されています。

関連情報