10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Linux】crontabコマンドでgit pullを定期実行しておく

Posted at

crontabというコマンドを使って、定期的にPCに仕事をしてもらうようにする方法を紹介していきます。
crontabはUNIX系のコマンドでmacでつかうこともできるし、サーバ上で定期的にバッチを動かして働かせることができます。
PCに仕事をさせるのにぴったりなコマンドですね。では実際に使い方を見ていこうと思います。
今回はgit pullを自動実行して、常にローカルリポジトリを最新の状態に維持する方法を紹介していきます。

  • crontabコマンドの注意
  • crontabの記述
  • シェルスクリプトへの記述

crontabコマンドの注意

crontabコマンドは基本的にオプションと組み合わせて実行します。が、注意点があるので一旦manで使い方を確認


-l Display the current crontab on standard output.

-r Remove the current crontab.

-e Edit the current crontab using the editor specified by the VISUAL or EDITOR environment vari-
ables. The specified editor must edit the file in place; any editor that unlinks the file and
recreates it cannot be used. After you exit from the editor, the modified crontab will be
installed automatically.

-lをつけることで、現在の現在の状態を見れて、
-rをつけることで、crontabの削除ができて、
-eをつけることで、編集ができるようになります。

crontabはログインしているユーザごとの作成が可能です。

[ここでむちゃくちゃ注意しないといけないのが、オプション-eと-rの違いです。eとrはキーボードで隣の位置なので、間違えたら取り返しの付かないことになります。慣れないうちは必ずman crontabを使ってどっちだったか確認してから実行したほうがいいと思います。

crontabへの記述

crontabにはスケジュールと実行するコマンドを書いておきます。
今回はシェルスクリプトを書いて、それを実行させていきます。

スケジュール

分、時、日、月、曜日を指定することができます。
左からこの順番です。*だと指定なしとなり、 */2 とすると~おきの実行となります。


 */5 * * * *

これだと5分おき

 0 23 * * *

これだと毎日23時

 * */1 * * *

これだと1時間おきになります。

より詳しく書いていきたい場合はこの記事とかを参考にすればいいかなと思います

クーロン(cron)をさわってみるお - Qiita

コマンド

絶対パスを書いて上げて下さい。今回は/root以下にシェルスクリプトを書きます。

/root/gitpull.sh
これをスケジュールの横に書いてあげればおけです。

*/5 * * * * /root/gitpull.sh

crontabのeditがおわったら、再読込のため再起動しましょう。


service crond restart

シェルスクリプトへの記述

ではgitpull.shを書いていきます。

gitpull.sh
cd (git pullしたいプロジェクトのディレクトリに移動)
git fetch
git reset --hard origin/master
git merge origin/master

とりあえず基本の型のみです。

git fetch
git reset --hard origin/master

はリモートの最新の状態をorigin/masterにもってきています。
git mergeで最新の状態をmasterに反映させることで、ローカルのファイルに変更の適用をすることができます。

つまりはgit pullをしてるだけですね

こちらも参考にしてみて下さい

git fetchとは - Qiita

[社内新人向け]Gitで使ってほしくないコマンド - Qiita

以上です。5分おきに実行とかにしておけばgitの最新の状態が常に反映された状態になるかと。
便利ですね。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?