North Detailで時々インフラ作業をしているFujiと申します。
今回はincronというジョブ実行プロセスを初めて使ってみた記事になります。
incronは指定されたファイルまたはディレクトリに対して
指定したイベントが発生したことを検知してコマンドを実行することができる
cronのファイル版と言えるデーモンプロセスです。
公式GitHubリポジトリ
クラウドプラットフォーム:AWS
サービス:EC2
OS: Amazon Linux2
/path/to
┗ project
┣ script.sh // 実行してほしいスクリプト
┗ zip_dir // zipファイル配置ディレクトリ
┗ source.zip //アップロードするzipファイル
よくお世話になっているepelが入っていれば、yumでインストールできるので楽ですね。
ただ、デフォルトのエディエタがvimですので、vimが入っていないと編集画面起動時にエラーメッセージが表示されますので、ご注意ください。
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm vim
$ sudo yum install incron
※ 使用するエディタを指定したい方は/etc/incron.confを編集ください
編集はcron同様に、-eオプションを付けて行います。
$ incrontab -e
↓のように記述していきます。cronの日時指定部分にパスとイベントを指定する要領ですね
/path/to/検知対象ファイルorディレクトリ 検知イベント 実行コマンド
今回はこのように設定しました。
/path/to/project/zip_dir IN_CLOSE_WRITE /path/to/project/script.sh
zipファイルをproject/zip_dirにアップロードすると、見事にscript.shが実行されました。
incronが実行されたかどうか、はcronと同じく/var/log/cron.logに記載されます
かなり便利です!
CI/CDツールなどが使用できない状況では、作業の自動化にかなり役立つのではないでしょうか!
5年前に知りたかった...