作成するジョブ
今回作るジョブは、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を選択します。
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ファイルが生成されます。
何の変哲もないシェルスクリプトですが、注目したいのはパラメータの受け渡し部分です。
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秒後に問題なく終了したようですね。