はじめに

この資料は Rust 製のコマンドラインツール evry について紹介するものです。

Rustの環境構築やツールのインストール方法については以下を参照してください

Rust開発環境を整える

evry について

シェルスクリプト中心のタスクスケジューラ。制御フローを決定するために終了コードを使用します。 bgproc と連携して使用します。

GitHub - seanbreckenridge/evry: A shell-script-centric task scheduler; uses exit codes to determine control flow

evryは各ジョブについてタイムスタンプ付きの永続的なファイルをコンピュータに保存し、anacronの哲学に従います。

何が便利なの?

何かしらの時間間隔でタスクを実行したい場合、通常であれば cron や anacron を使用します。この場合、次のような些細な問題があります。

evry を使うとこうした問題がなくなり、自分のスクリプトで anacorn のポリシーに従ったスケジューリングを行うことができます。

使用方法

まずは、例を見てみましょう。

evry 2 weeks -scrapesite && wget "https://" -o ....

これは、2週間ごとにwgetコマンドを実行します。

evry は過去2週間にコマンドが実行された場合、失敗の終了コードで終了します。つまり、wgetコマンドが実行されなかったことを意味します。

evry が成功の終了コードで終了すると、そのタグのメタデータ・ファイル(-scrapesite)に現在時刻が保存されます。これにより、evry がそのタグで再び実行されたときに、現在時刻をそのファイルと比較することができます。