ジョブの作成と実行

作成するジョブ

今回作るジョブは、Wordpressにアップロードした画像ファイルをtar.gzで圧縮してバックアップするものです。実用的ですね。

また、JobSchedulerはCentOSにインストールされているものとし、JOE(JobScheduler Object Editor)はWindowsで動かして、FTP経由でCentOS側のHot Folderに直接書き込むことにします。

JOEによるリモートファイルの更新

JOEはFTPやWebDavなどの方法で、直接リモートサーバに導入されているJobSchedulerの設定ファイルを編集することが出来るのです。JobSchedulerはHot Folderとして指定されているディレクトリのファイルが更新されると、自動的に読み込まれます。

FTPでHot Folderを開くように設定する

WindowsでJOEを起動し、メインメニューからOpen Hot Folder by FTPを選択します。

hotfolder_ftp_01

Open Hot Folderというダイアログが開くので、最初の実行時はProfileの作成をします。(下記参照)
Profileの作成後、ConnectボタンをクリックするとFTP接続が行われ、サーバ側のディレクトリが表示されるので、Hot Folderとして開きたいディレクトリを選択します。(New Folderでディレクトリを作成しても構いません。)

hotfolder_ftp_02

Profileボタンをクリックすると、Profilesダイアログが開きます。

hotfolder_ftp_03

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で良いでしょう

ジョブの作成

create_standalone_job_01

Hot FolderへのFTP接続が成功すると、このような画面になります。
今回作成するジョブはスタンドアロンジョブ(単独で起動できるジョブ。ジョブチェーンに含めることは出来ない)として作成します。

create_standalone_job_02

実際にジョブを作成します。JOEでは直接、実行したいスクリプトを書くことができます。(もちろん、別に作成したシェルスクリプトを読み込むことも出来ます。また、Languageオプションを変えれば、Java Classなどを実行することも出来ます。)

ここで入力するのは、Job Nameと、実行したいスクリプトそのものくらいです。
Job Nameは、WordpressFileBackupJobとしました。保存すると、JobSchedulerサーバ上にWordpressFileBackupJob.job.xmlというXMLファイルが生成されます。

何の変哲もないシェルスクリプトですが、注目したいのはパラメータの受け渡し部分です。
WP_UPLOAD_DIR=$SCHEDULER_PARAM_WP_UPLOAD_DIRという行がありますが、JobSchedulerでは、パラメータは必ずSCHEDULER_PARAM_というプリフィックスが付きます。

パラメータ値のセットはJOEから行います。

create_standalone_job_03

今回は下記のようなパラメータを設定しました。

WP_UPLOAD_DIR
/srv/wordpress/wp-content/uploads
BACKUP_DIR
/opt/backup

ジョブの実行

JOEでジョブを作成し保存すると、自動的に作成したジョブがJobSchedulerに読み込まれます。
JOC(JobScheduler Operation Centre)を開いてみましょう。デフォルトでは、JobSchedulerをインストールしたサーバのポート4444を、Webブラウザで開きます。

joc_job_01

このように、表示されるはずです。

joc_job_02

ジョブを右クリックするとコンテキストメニューが表示されるので、すぐに実行してみるためにStart task immediatelyをクリックします。これで、すぐにジョブの実行が始まります。

他にも、下記のようなメニューがあります。

Start task at
指定した日時に1回実行する。
Start tast parametrized
パラメータを指定して実行する。(実行日時も指定できる)
Set run time
繰り返し実行などを指定する。

joc_job_03

ジョブをクリックして選択すると、画面右にジョブの詳細情報とTask Historyが表示されます。
どうやら、ジョブが実行され、1秒後に問題なく終了したようですね。