たろ
サーバー起動時に1度だけスクリプトを実行するにはどうすればいいんだろう?
こんな疑問にお答えします。
本記事の内容
- サーバー起動時に任意のスクリプトを実行する方法の紹介
はじめに
man 5 crontab でドキュメントを確認すると以下の記載がありました。
crontab に実装するこでサーバーの起動時に任意のスクリプトを実行できることになります。
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
以下、@reboot を使う際の注意点。
crontab に@rebootを実装
crontab には以下のように実装。
$ crontab -l
@reboot /home/user/self-deploy.sh
例えば、サーバー起動時に所定のパスに移動し、git pull を実行する例。
$ cat self-deploy.sh
#!/bin/bash
cd /path/to/your/workspace
git pull
このようにすることで眠っていたサーバーが起動したさいに常に最新のコードを展開することが可能になります。