ここまでSOS JobSchedulerの紹介やインストール方法の説明をしてきましたが、ついにジョブを作って実行してみましょう。
今回作るジョブは、Wordpressにアップロードした画像ファイルをtar.gzで圧縮してバックアップするものです。実用的ですね。
また、JobSchedulerはCentOSにインストールされているものとし、JOE(JobScheduler Object Editor)はWindowsで動かして、FTP経由でCentOS側のHot Folderに直接書き込むことにします。
JOEはFTPやWebDavなどの方法で、直接リモートサーバに導入されているJobSchedulerの設定ファイルを編集することが出来るのです。JobSchedulerはHot Folderとして指定されているディレクトリのファイルが更新されると、自動的に読み込まれます。
FTPでHot Folderを開くように設定する
WindowsでJOEを起動し、メインメニューからOpen Hot Folder by FTPを選択します。
Open Hot Folderというダイアログが開くので、最初の実行時はProfileの作成をします。(下記参照)
Profileの作成後、ConnectボタンをクリックするとFTP接続が行われ、サーバ側のディレクトリが表示されるので、Hot Folderとして開きたいディレクトリを選択します。(New Folderでディレクトリを作成しても構いません。)
Profileボタンをクリックすると、Profilesダイアログが開きます。
Name: 適当に名前を付けましょう
Protocol: FTPと初期入力されているので、そのままにします
Host Name or IP Address: JobSchedulerが導入されているサーバのホスト名かIPアドレスを入力します
※当然ですが、FTPサーバが起動していて、ログイン出来る必要があります。
Port: 初期値の21のままで良いでしょう(FTPポートが異なる場合は変更します)
User Name: FTP接続時のユーザ名を入力します(ディレクトリへの書き込み権限が必要です)
Password: FTP接続時のパスワードを入力します
Root Directory: FTP接続時に開くディレクトリを指定します
※JobSchedulerのインストール時に作成されたconfig/liveディレクトリを指定すると良いでしょう
例: /home/scheduler/sos-berlin.com/jobscheduler/scheduler/config/live
Directory For Local Copy: サーバ上のファイルをキャッシュするためのローカル側のディレクトリを指定します
Save Password: パスワードを保存する場合はチェックします
Transfer Mode: ASCIIで良いでしょう
ジョブの作成
Hot FolderへのFTP接続が成功すると、このような画面になります。
今回作成するジョブはスタンドアロンジョブ(単独で起動できるジョブ。ジョブチェーンに含めることは出来ない)として作成します。
実際にジョブを作成します。JOEでは直接、実行したいスクリプトを書くことができます。(もちろん、別に作成したシェルスクリプトを読み込むことも出来ます。また、Languageオプションを変えれば、Java Classなどを実行することも出来ます。)
ここで入力するのは、Job Nameと、実行したいスクリプトそのものくらいです。
Job Nameは、WordpressFileBackupJobとしました。保存すると、JobSchedulerサーバ上にWordpressFileBackupJob.job.xmlというXMLファイルが生成されます。
今回作成したスクリプトは下記のようなものです。
echo "starting WordPressFileBackupJob..."
WP_UPLOAD_DIR=$SCHEDULER_PARAM_WP_UPLOAD_DIR
BACKUP_DIR=$SCHEDULER_PARAM_BACKUP_DIR
echo "WP_UPLOAD_DIR: $WP_UPLOAD_DIR"
echo "BACKUP_DIR: $BAKCUP_DIR"
TIMESTAMP=`date '+%Y%m%d%H%M%S'`
FILENAME="wp_upload_${TIMESTAMP}.tar.gz"
echo "FILENAME: $FILENAME"
tar cvzf $BACKUP_DIR/$FILENAME $WP_UPLOAD_DIR/*
echo "WordpressFileBackupJob completed."
exit 0
何の変哲もないシェルスクリプトですが、注目したいのはパラメータの受け渡し部分です。
WP_UPLOAD_DIR=$SCHEDULER_PARAM_WP_UPLOAD_DIRという行がありますが、JobSchedulerでは、パラメータは必ずSCHEDULER_PARAM_というプリフィックスが付きます。
パラメータ値のセットはJOEから行います。
今回は下記のようなパラメータを設定しました。
WP_UPLOAD_DIR: /srv/wordpress/wp-content/uploads
BACKUP_DIR: /opt/backup
ジョブの実行
JOEでジョブを作成し保存すると、自動的に作成したジョブがJobSchedulerに読み込まれます。
JOC(JobScheduler Operation Centre)を開いてみましょう。デフォルトでは、JobSchedulerをインストールしたサーバのポート4444を、Webブラウザで開きます。
このように、表示されるはずです。
ジョブを右クリックするとコンテキストメニューが表示されるので、すぐに実行してみるためにStart task immediatelyをクリックします。これで、すぐにジョブの実行が始まります。
他にも、下記のようなメニューがあります。
Start task at: 指定した日時に1回実行する。
Start tast parametrized: パラメータを指定して実行する。(実行日時も指定できる)
Set run time: 繰り返し実行などを指定する。
ジョブをクリックして選択すると、画面右にジョブの詳細情報とTask Historyが表示されます。
どうやら、ジョブが実行され、1秒後に問題なく終了したようですね。
ということで、今回はJobSchedulerでジョブを作成し実行してみました。
次回はもう一つジョブを作成して、ジョブチェーンを組んでみることにしましょう。