定期的に実行したいいくつかのタスクがあります。
- すべてのGitリポジトリプッシュ(1日5回)
- ファイルのウイルススキャン(90日ごと)
- サーバーからバックアップをダウンロードする(1日1回)
これらすべての操作にスクリプトがあります。これを調整するために、私はmaintenance
私の仕事の一部であるスクリプトを書いた。メンテナンス作業。これ現在のバージョンのスクリプト。
ジョブ用のJSON構成ファイルがあります。
"git-autopush": {
"disk": true,
"internet": true,
"interval": 0.3,
"local": false
},
システムのカスタムソフトウェアを減らしたいので、スクリプトを既存のジョブスケジューラに置き換えたいと思います。ただし、次の要件があります。
- バッテリーで動作するときは動作しないでください。
- 目に見える状態を提供してください。それも通過することができます
kdialog
。 - 一度に1つのディスク使用量を持つジョブのみを実行してください。
スクリプトmaintenance
はこれを処理するため、ジョブを実行するのに十分な時間がある限り、スクリプトを実行できます。そうでない場合は、すべての操作を中断して後で再開できます。
通常のクローンは、コンピュータの電源が切れていると機能しないため、良いことではありません。 anacronは良いかもしれませんが、始めるとすぐにすべてのタスクをすぐに実行すると思います。また、仮想マシンディスクが必要な場合は、スケジューラに停止するようにどのように通知できますか?
既存のプログラムはありますか?それとも私のプログラムを使い続けるべきですか?
答え1
仮想マシン用ディスクが必要な場合は、スケジューラに停止するようにどのように通知できますか?
Cronとanacronは(通常)デーモンサービスです。他のサービスと同様に、停止して開始できます。
cronは、コンピュータの電源が切れていると機能しないため、悪いことです。
これは回りにくい標準です。コンピュータがシャットダウンしたときにソフトウェアが何をしたいですか?
anacronは良いかもしれませんが、始めるとすぐにすべてのタスクをすぐに実行すると思います。
確かに。しかし、ここにアイデアがあります。anacron
で始まり、停止しますcron
。
一度に1つのディスク使用量を持つジョブのみを実行する
Anacronには次のオプションがあります。
-s
ジョブを順次実行します。 Anacronは、以前のタスクが完了するまで新しいタスクを開始しません。
これにより、次の2つを実装できます。
- バッテリーで動作するときは動作しないでください。
- 目に見える状態を提供してください。これはkdialogを介して達成することもできます。
1つ目は、anacronを起動する前にcronにバッテリーの状態を確認させることによって行うことができます。 2つ目はさまざまな方法で行うことができます。直接お勧めいただきましたね。