LoginSignup
5
4

More than 5 years have passed since last update.

GithubへのPUSHを定期実行するCrontabとシェルスクリプトの作成方法

Posted at

目的

・1日に1回とかの定期実行を行いたい
・実行時に、GithubにもPUSHを行いたい

環境

OS : CentOS 6.7

構築方法

Crontabの導入方法

以下のコマンドを実行して、crontabをインストール
yum install crontab

以下のコマンドを実行して、Crontabの内容を編集する
crontab -e

vimと同じ操作になる。"a"や"i"を入力してインサートモードにする。
定期実行する時間+処理内容を1行で記述する。
1/* * * * * echo `date` >> out
上記書き方だと、1分ごとに、時刻をoutに出力することになる。

ちなみに、実行時は、ユーザーのホームディレクトリから実行されることになるので、ユーザーのホームディレクトリのoutが作成され、出力されていくはずである。

Githubへの定期PUSHの実行のシェルスクリプトの書き方

Crontab -eの中に直接書いてしまっても構わないが、あまり美しくない。
このため、シェルスクリプトを用いてGithubと連携することを考える。
すでにGithubにSSH接続等によりログイン情報を要求されない状態が構築されているものとする。

#!/bin/sh
cd /**/**/full path/ ; git add -A ; git commit -m "Git Push Agent by crontab " ; git push ; 

上記のように、一連のコマンドを全て";"でつなぎ、1行で書く必要がある。
なぜかというと、各コマンド実行ごとにホームディレクトリに戻ってしまうため。
フルパスで実行出来る場合は、別行でも構わないが、ディレクトリ場所が必要なものは、全て1行で構成されるシェルスクリプトを用意する必要がある。

5
4
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
5
4