JobScheduler 1.11インストール手順（Linux/CLI版）

##1.JobSchedulerについて

JobSchedulerは独SOS社(Software- und Organisations-Service GmbH)によって開発されている、ジョブ管理システムです。
JobSchedulerの主な特徴は、下記となります。

- オープンソース（GNU Public License V.2）
 - Linux/Windows版は、無料で使用可能。（但しユニバーサル・エージェントの同時複数タスク実行は有償ライセンスが必要）
 - 有償ライセンスを購入すれば、ユニバーサル・エージェントの同時複数タスク実行に加えて、障害対応、バグフィックス／ワークアラウンドの提供、新機能の早期提供、などのサービスが提供される。
 - 有償ライセンスの機能が使用できる、３０日間無償トライアルライセンスも提供されている。申し込みは[こちら](http://www.ossl.co.jp/jpn/node_184)から
- プログラマブル
 - ジョブの中で、Java, Perl, JavaScript, VBScript, Powershell, javax.scriptの内部APIを使ったロジックを記述可能
 - 外部APIによりRESTまたはコマンドラインからジョブの実行制御、実行状況の取得が可能 
- エンタープライズ・グレード
 - ファイル転送やログローテンション等豊富なテンプレート機能
 - リモートジョブ実行、冗長化機能、ロードバランス、外部認証等、エンタープライズ向け大規模システム対応
 - Zabbix/Nagios（ジョブ実行監視）との連携機能
 - MySQL/MariaDBの他、PostgreSQL, Oracle, DB2, MS SQL Serverに対応
- 豊富な導入実績

詳細な情報については、以下をご覧下さい。

 - 日本語紹介資料 https://www.ossl.co.jp/?page_id=148
 - 日本JobSchedulerユーザーグループ https://sites.google.com/site/jobschedulerja/ 
  - https://groups.google.com/forum/?hl=ja#!forum/jobscheduler-ja
  - https://www.facebook.com/Jobscheduler-Japan-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97-594469610565511/timeline/
 - ナレッジベース（英語）　https://kb.sos-berlin.com/display/PKB/Product+Knowledge+Base+Home
 -  JIRA（英語）
　https://change.sos-berlin.com/secure/Dashboard.jspa
 - User Forum（英語）　http://sourceforge.net/projects/jobscheduler/forums/forum/486122
 - SOS社ホームページ　http://www.sos-berlin.com

##2.JobSchedulerの構成について

JobSchedulerは以下のコンポーネントで構成されています。

![図1.png](https://qiita-image-store.s3.amazonaws.com/0/52445/389645f5-82a2-dae1-7614-84bf2ef2904d.png "図1.png")



JOCコックピットと、JobSchedulerマスターは、同一サーバー上で同一データベースを使用することも、異なるサーバー上で異なるデータベースを使用することも可能です。

##3.稼働条件
JobScheduler 1.11.0 (2017/4現在）
- CPU 2core<、メモリ2GB<、ディスク空き容量10GB<
- OracleJDK 1.8 (openJDKは未サポート）
- RHEL/CentOS 6 < (32/64bit)
- Windoes Server 2008 R2, 2012 R8 (32/64bit)

詳細はこちらを参照（英語）
 - https://kb.sos-berlin.com/pages/viewpage.action?pageId=3638020

##4.データベースサポート
 - Oracle® 8.1.7, 9.2, 10g, 11g, 12c
 - SQL Server®	2000, 2005, 2008, 2012
 - DB2®	 8.x
 - MariaDB® 5.5 <
 - MySQL®	5.5 <
 - PostgreSQL®	8.3, 9.1 <

詳細はこちらを参照（英語）
 - https://kb.sos-berlin.com/display/PKB/Which+common+Database+Management+Systems+are+supported+by+JobScheduler

##5.インストール環境
本手順は、JobSchedulerの機能確認を目的とした検証環境の構築の手順です。
実業務では使用しないで下さい。

詳細な手順はこちらを参照（英語）
 - https://kb.sos-berlin.com/display/PKB/JobScheduler+Master+-+Installation+Guide+-+Overview+and+Requirements

**(1)前提条件**
本手順は以下の前提条件での手順です。
* JobSchedulerマスターと JOCコックピットは同居しデータベースも同じものを使用する。
* CentOS 7.x 64bit minimalインストール、標準レポジトリのみ
* SELinuxはdisabled、Firewallは停止されていること
* 以下手順はroot権限で実行

```shell-session
# yum groupinstall -y minimal
```

**(2)EPELリポジトリのインストール**

```shell-session
# yum install -y epel-release
```
**(3)JAVAインストール**
下記からOracleJDK1.8をダウンロードし、以下のコマンドを実行します。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

```shell-session
# rpm -ivh jdk-8u121-linux-x64.rpm
# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
```

**(4)データベースインストール**

本手順では、Postgresをインストールします。

```shell-session
# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum install -y postgresql-server
# service postgresql initdb
```

外部からの接続許可設定を行います。

```shell-session
# vi /var/lib/pgsql/data/pg_hba.conf
```

以下の部分を変更し、保存します。

```
# “local” is for Unix domain socket connections only
local   all             all                             trust  # <- 変更
# IPv4 local connections:
host    all             all             0.0.0.0/0       trust  # <- 変更
# IPv6 local connections:
host    all             all             ::1/128         trust  # <- 変更
```

```shell-session
# vi /var/lib/pgsql/data/postgresql.conf
```

```
listen_addresses = ‘*’　←コメントを解除し、‘’内を * に変更
中略
port 5432　←コメントを解除
中略
bytea_output = ‘escape’  　←コメントを解除し、‘hex’を‘escape’に変更、JobScheduler用設定
```

自動起動に設定し、サービスを起動します。

```shell-session
# systemctl enable postgresql
# systemctl start postgresql
```

JobScheduler用データベースを作成します。

```shell-session
# su - postgres
-bash-4.2$ createdb scheduler
-bash-4.2$ createlang -U postgres plpgsql scheduler
```

##6.JobScheduler　マスター　インストール手順
**(1)インストール用ユーザー作成**
JobSchedulerはroot権限ではインストールできないためインストール用ユーザー"scheduler"を作成し、以降は作成したユーザーで作業します。

```shell-session
# useradd scheduler -m -p scheduler
# su - scheduler
```

**(2)インストーラのダウンロード**
下記サイトから、インストーラをダウンロードできます。
http://www.sos-berlin.com/jobscheduler-downloads
Linux用(32/64bit)とWindows用(32/64bit)で、それぞれ下記のパッケージに分かれてますが

JobScheduler Master
- Full Install（JobSchedulerマスター　一括インストーラ）
- Update（JobSchedulerマスターアップデータ）
- JOE（Job Object Editor単体インストーラ）

本手順で使用するのは、
JobScheduler Master Linux-x64 (64-Bit version) Full Install
になりますので、適当な場所にダウンロードし解凍します。

```shell-session
$ curl -O https://download.sos-berlin.com/JobScheduler.1.11/jobscheduler_linux-x64.1.11.0.tar.gz
$ tar xvzf jobscheduler_linux-x64.1.11.0.tar.gz
$ cd jobscheduler.1.11.0/
```

**(3)インストール設定ファイルの編集**
本手順ではGUIインストーラを使用せずに、CLIでインストールしますのでインストール用設定ファイルを編集します。

```shell-session
$  vi jobscheduler_install.xml
```

プログラムとデータのインストール先をフルパスで指定します。
Linuxの場合は、プログラムは"/opt/sos-berlin.com/jobscheduler"、データは ”/home/[インストールユーザー名]/sos-berlin.com/jobscheduler” とします。インストール用ユーザー名は、本手順では"scheduler"です。

```
        <!-- SELECT THE INSTALLATION PATH FOR THE BINARIES AND LIBRARIES
             The installation expands this path with the Scheduler ID as subdirectory.
             The path must be absolute!
             Default paths are
             /opt/sos-berlin.com/jobscheduler for Unix
             C:\Program Files\sos-berlin.com\jobscheduler for Windows -->
        <installpath>/opt/sos-berlin.com/jobscheduler</installpath>
中略

        <!-- SELECT THE DATA PATH FOR CONFIGURATION AND LOG FILES
             The installation expands this path with the Scheduler ID as subdirectory.
             The path must be absolute!
             Default paths are
             /home/[user]/sos-berlin.com/jobscheduler for Unix
             C:\ProgramData\sos-berlin.com\jobscheduler for Windows -->
        <UserPathPanelElement>/home/scheduler/sos-berlin.com/jobscheduler</UserPathPanelElement> 
       
```

JobSchedulerが稼働するホスト名を指定します。通常は"localhost"で問題ありません。

```
            <!-- Enter the name or ip address of the host on which the JobScheduler is operated -->
            <entry key="schedulerHost" value="localhost"/>
```


JobScheduler ID（マスターインスタンスの識別名）を指定します。デフォルトは"scheduler"です。

```
            <!-- To enter a JobScheduler ID is required.
                 The IDs of multiple instances of the JobScheduler must be unique per server.
                 The JobScheduler ID expands the above installation paths as subdirectory.
                 Please omit special characters like: / \ : ; * ? ! $ % & " < > ( ) | ^ -->
            <entry key="schedulerId" value="scheduler"/>
```

JobScheudulerに接続を許可するアドレスを指定します。全てのアドレスを許可する場合は、 ”0.0.0.0” で指定します。

```
            <!-- It is recommended to enable TCP access for the host where the JobScheduler will install,
                 optionally enter additional host names or ip addresses. To enable all hosts in your
                 network to access the JobScheduler enter '0.0.0.0'. -->           
                 <entry key="schedulerAllowedHost" value="0.0.0.0"/>
```

JobSchedulerから通知メールを発信する場合は下記を設定します。使用しない場合は変更不要です。

```
    <com.izforge.izpack.panels.UserInputPanel id="smtp">
        <userInput>
            <!-- Mail Recipients Configuration / SMTP Authentication -->

            <!-- Enter the ip address or host name and port (default: 25) of your SMTP server -->
            <entry key="mailServer" value=""/>  ## smtpサーバーのIPアドレス
            <entry key="mailPort" value="25"/>　## smtpサーバーのポート番号

            <!-- Configure the SMTP authentication if necessary. -->
            <entry key="smtpAccount" value=""/>　## smtpサーバーの認証ユーザー名
            <entry key="smtpPass" value=""/>　## smtpサーバーのパスワード

            <!-- Enter the addresses of recipients to which mails with log files are automatically
                 forwarded. Separate multiple recipients by commas -->

            <!-- Account from which mails are sent -->
            <entry key="mailFrom" value=""/>　## 送信元メールアドレス

            <!-- Recipients of mails -->
            <entry key="mailTo" value=""/>　## 宛先メールアドレス

            <!-- Recipients of carbon copies: -->
            <entry key="mailCc" value=""/> ## CCメールアドレス

            <!-- Recipients of blind carbon copies -->
            <entry key="mailBcc" value=""/> ## BCCメールアドレス

        </userInput>
    </com.izforge.izpack.panels.UserInputPanel>
    <com.izforge.izpack.panels.UserInputPanel id="email">
        <userInput>
            <!-- Mail Configuration / Event Handler -->

            <!-- Choose in which cases mails with log files are automatically forwarded. -->
            <entry key="mailOnError" value="yes"/> ## ジョブエラー通知
            <entry key="mailOnWarning" value="yes"/> ## ジョブワーニング通知
            <entry key="mailOnSuccess" value="no"/>　 ## ジョブ成功通知
```

使用するデータベースを指定します。本手順ではPostgresを使用するので"pgsql"とします。

```
            <!-- Choose the database management system. Supported values are 'mysql' for MySQL,
                 'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL,
                 'db2' for DB2 and 'sybase' for Sybase. -->
            <entry key="databaseDbms" value="pgsql"/>
```

データベース接続の設定をします。

```
            <!-- Enter the name or ip address of the database host -->
            <entry key="databaseHost" value="localhost"/> ## DB稼働ホスト名またはIPアドレス

            <!-- Enter the port number for the database instance. Default ports are for MySQL 3306,
                 Oracle 1521, MS SQL Server 1433, postgreSQL 5432, DB2 50000, Sybase 5000. -->
            <entry key="databasePort" value="5432"/> ## DB接続ポート番号

            <!-- Enter the schema -->
            <entry key="databaseSchema" value="scheduler"/> ## DB名

            <!-- Enter the user name for database access -->
            <entry key="databaseUser" value="postgres"/> ## DB接続ユーザー名

            <!-- Enter the password for database access -->
            <entry key="databasePassword" value="postgres"/> ## DB接続パスワード

            <!-- You have to provide the MySQL, MS SQL Server, Sybase or DB2 JDBC driver respectively if you selected
                 corresponding DBMS type. For license reasons MySQL, Sybase and MS SQL Server JDBC Drivers are
                 not provided. Alternatively you can use the mariadb JDBC Driver for MySQL and
                 the jTDS JDBC Driver for MS SQL Server and Sybase which is provided. -->

            <!-- You can choose between 'yes' or 'no' for using the jTDS JDBC Driver
                 This entry affects only MS SQL Server or Sybase -->
            <entry key="connectorJTDS" value="yes"/> ## MS SQL Server/Sybase使用時のみ有効

            <!-- You can choose between 'yes' or 'no' for using the mariadb JDBC Driver
                 This entry affects only MySQL -->
            <entry key="connectorMaria" value="yes"/> ## MySQL使用時にMariaDB JDBCコネクタ使用時のみ有効
```


```<com.izforge.izpack.panels.UserInputPanel id="reportingDatabase">```セクションは、JOCコックピットが使用するレポーティングデータベースで、JobSchedulerのデータベースとは別のものを使用する場合は設定が必要ですが、本手順では同じデータベースを使用するため、変更不要です。


**(4)インストール実行**

jobscheduler_install.xmlを保存後、インストーラを実行します。

```shell-session   
$  ./setup.sh jobscheduler_install.xml
sudo -E java -jar ./jobscheduler_linux-x64.1.11.0.jar jobscheduler_install.xml

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for scheduler:
```

インストーラは最初sudoコマンドを使用しますが、本手順ではインストール用ユーザー"scheduler" にsudo許可設定をしていないので、3回空エンターを実行すると、

```shell-session   
sudo: 3 回パスワード試行を間違えました
Do you want to use 'su' instead of 'sudo'? (y or n)
```

と聞かれるので、yを入力するとsu rootコマンドが実行されますので、rootパスワードを入力します。

```shell-session   
su root -c "java -jar \"./jobscheduler_linux-x64.1.11.0.jar\" jobscheduler_install.xml"
パスワード:
```

インストールが開始し、メッセージが表示されます。

```shell-session   
Starting JobScheduler...


[ Processing finished ]
[ Writing the uninstaller data ... ]
[ Automated installation done ]
```

と表示され、プロンプトに戻ったらインストールが完了です。

ブラウザから```http://ホストアドレス:4444```にアクセスすると、下記画面が表示されます。

![スクリーンショット 2017-03-22 17.35.19.png](https://qiita-image-store.s3.amazonaws.com/0/52445/9b82f22f-50a1-3e5d-6f0d-efdbd6136a11.png "スクリーンショット 2017-03-22 17.35.19.png")

**注：JobScheduler V.1.12以降はポート4444及び上記画面は廃止されていますので、JOCコックピットをご使用ください。**

**(5)起動と停止**
JobSchedulerマスターの起動と停止は、以下のコマンドで実行します。
起動：```/opt/sos-berlin.com/jobscheduler/[インストールユーザー名]/bin/jobscheduler.sh start```
停止：```/opt/sos-berlin.com/jobscheduler/[インストールユーザー名]/bin/jobscheduler.sh stop```
ステータス確認：```/opt/sos-berlin.com/jobscheduler/[インストールユーザー名]/bin/jobscheduler.sh status```
コマンドヘルプ：```/opt/sos-berlin.com/jobscheduler/[インストールユーザー名]/bin/jobscheduler.sh```

**(6)ログファイル**
JobSchedulerマスターのログファイルは、以下のディレクトリに保存されます。
/var/log/sos-berlin.com/jobscheduler/[インストールユーザー名]/
インストールログ：Install_V1.11.0_YYYYMMDDHHMMSS_XXXXXXXXXXXX.log
メインログ：scheduler-YYYY-MM-DD-XXXXXX.scheduler.log
デバッグログ：scheduler.log
ジョブ実行ログ：job.ジョブ名.log
オーダー実行ログ：order.ジョブチェーン名.オーダー名.log
タスク実行ログ：task.ジョブ（チェーン）名.log

**(7)アンインストール**
```# /opt/sos-berlin.com/jobscheduler/[インストールユーザー名]/Uninstaller/uninstall.sh```

##7.JobScheduler JOCコックピット　インストール手順

**(1)インストーラのダウンロード**
下記サイトから、インストーラをダウンロードできます。
http://www.sos-berlin.com/jobscheduler-downloads
Linux (32-Bit, 64-Bit)
JOC Cockpit
を適当な場所にダウンロードし解凍します。

```shell-session
$ curl -O https://download.sos-berlin.com/JobScheduler.1.11/joc_linux.1.11.0.tar.gz
$ tar xvzf joc_linux.1.11.0.tar.gz
$ cd joc_linux.1.11.0
```

**(3)インストール設定ファイルの編集**
本手順ではGUIインストーラを使用せずに、CLIでインストールしますのでインストール用設定ファイルを編集します。

```shell-session
$  vi joc_install.xml
```
プログラムとのインストール先とjettyのベースディレクトリをフルパスで指定します。
Linuxの場合は、プログラムは"/opt/sos-berlin.com/joc"、jettyのベースディレクトリは ”/home/[インストールユーザー名]/sos-berlin.com/joc” とします。インストール用ユーザー名は、本手順では"scheduler"です。

```
        <!-- SELECT THE INSTALLATION PATH
             It must be absolute!
             For example:
             /opt/sos-berlin.com/joc on Linux
             C:\Program Files\sos-berlin.com\joc on Windows -->
        <installpath>/opt/sos-berlin.com/joc</installpath> 
中略
            <!-- Path to Jetty base directory
                 For example:
                 /homer/[user]/sos-berlin.com/joc on Linux
                 C:\ProgramData\sos-berlin.com\joc on Windows -->
            <entry key="jettyBaseDir" value="/home/scheduler/sos-berlin.com/joc"/>     
```

JOCコックピットが使用するレポーティングデータベース接続の設定をします。
使用するデータベースを指定します。本手順ではPostgresを使用するので"pgsql"とします。

```
            <!-- Reporting Database Configuration -->

            <!-- Choose the database management system. Supported values are 'mysql' for MySQL,
                 'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL. -->
            <entry key="reporting.databaseDbms" value="pgsql"/>```
```

```
            <!-- Enter the name or ip address of the database host -->
            <entry key="reporting.databaseHost" value="localhost"/> ## DB稼働ホスト名またはIPアドレス
            
            <!-- Enter the port number for the database instance. Default ports are for MySQL 3306,
                 Oracle 1521, MS SQL Server 1433, postgreSQL 5432. -->
            <entry key="reporting.databasePort" value="5432"/> ## DB接続ポート番号

            <!-- Enter the schema -->
            <entry key="reporting.databaseSchema" value="scheduler"/> ## DB名

            <!-- Enter the user name for database access -->
            <entry key="reporting.databaseUser" value="postgres"/> ## DB接続ユーザー名
            
            <!-- Enter the password for database access -->
            <entry key="reporting.databasePassword" value="postgres"/> ## DB接続パスワード                                           
```

```
            <!-- JobScheduler Database Configuration -->

            <!-- Set 'yes' if the Reporting and the JobScheduler database are the same.
                 If 'yes' then further JobScheduler database variables are ignored. -->
            <entry key="sameDbConnection" value="yes"/>
```            

```<!-- JobScheduler Database Configuration -->```セクションは、JOCコックピットが使用するレポーティングデータベースにJobSchedulerのデータベースと同じものを使用する場合変更不要です。別のデータベースを使用するときのみ ”no"とし、設定を記載します。


**(4)インストール実行**

joc_install.xmlを保存後、インストーラを実行します。

```shell-session   
$ ./setup.sh joc_install.xml
sudo -E java -jar ./joc.1.11.0.jar joc_install.xml
[sudo] password for scheduler:
```

インストーラは最初sudoコマンドを使用しますが、本手順ではインストール用ユーザー"scheduler" にsudo許可設定をしていないので、3回空エンターを実行すると、

```shell-session   
sudo: 3 回パスワード試行を間違えました
Do you want to use 'su' instead of 'sudo'? (y or n)
```

と聞かれるので、yを入力するとsu rootコマンドが実行されますので、rootパスワードを入力します。

```shell-session   
su root -c "java -jar \"./joc.1.11.0.jar\" joc_install.xml"
パスワード:
```

インストールが開始し、メッセージが表示されます。

```shell-session   
Starting Jetty: . OK 2017年  3月 22日 水曜日 18:19:36 JST
The daemon "joc" has been started.
[ Processing finished ]
[ Writing the uninstaller data ... ]
[ Automated installation done ]```
```

と表示され、プロンプトに戻ったらインストールが完了です。
ブラウザから```http://ホストアドレス:4446```にアクセスすると、下記画面が表示されます。

![1.jpg](https://qiita-image-store.s3.amazonaws.com/0/52445/f6542d38-0fbe-fc3a-492a-3d432e384762.jpeg)

デフォルトユーザー "root"、パスワード "root"でログインし、下記画面が表示されれば OKです。

![スクリーンショット 2017-03-22 18.26.52.png](https://qiita-image-store.s3.amazonaws.com/0/52445/11cd1123-a2c0-2d13-3d03-2467de22af19.png "スクリーンショット 2017-03-22 18.26.52.png")

**(5)起動と停止**
JOCコックピットの起動と停止は、以下のコマンドで実行します。
起動：```/etc/init.d/joc start```
停止：```/etc/init.d/joc stop```
ステータス確認：```/etc/init.d/joc status```
コマンドヘルプ：```/etc/init.d/joc```

**(6)ログファイル**
JobSchedulerマスターのログファイルは、以下のディレクトリに保存されます。
/var/log/sos-berlin.com/joc
インストールログ：Install_V1.11.0_YYYYMMDDHHMMSS_XXXXXXXXXXXX.log
エラーログ：YYYY_MM_DD.stderrout.log
操作ログ：JOCAuditLog.log
起動ログ：start.log

**(7)アンインストール**
```# /opt/sos-berlin.com/joc/Uninstaller/uninstall.sh```

##8.JobScheduler　エージェント　インストール手順

JobSchedulerエージェントは、通常はマスターとは異なるジョブ実行サーバーにインストールしますが、本手順ではマスターと同じサーバーにインストールしますので、以下の作業は完了しているものとします。
- Oracle JDKインストール
- インストール用ユーザー作成

参考（英語）https://kb.sos-berlin.com/pages/viewpage.action?pageId=9898129


**(1)インストーラのダウンロード**
下記サイトから、インストーラをダウンロードできます。
http://www.sos-berlin.com/jobscheduler-downloads
Linux用(32/64bit)とWindows用(32/64bit)で、それぞれ下記のパッケージに分かれてますが

JobScheduler Universal Agent
- Universal Agent (Tarball)
- Universal Agent Batch Installer (for mass deployment only)


本手順で使用するのは、
JobScheduler Universal Agent (32-bit,64-Bit) Tarball
になりますので、インストール用ユーザーから適当な場所にダウンロードし解凍します。

```shell-session
# su - scheduler
$ curl -O https://download.sos-berlin.com/JobScheduler.1.11/jobscheduler_unix_universal_agent.1.11.0.tar.gz
$ tar xvzf jobscheduler_unix_universal_agent.1.11.0.tar.gz
```

**(2)エージェントの起動**
展開したディレクトリをプログラムディレクトリに移動し、エージェントを起動します。

```shell-session
$ mv jobscheduler_agent /opt/sos-berlin.com/
$ cd /opt/sos-berlin.com/jobscheduler_agent/bin
$ ./jobscheduler_agent.sh start
$ ...JobScheduler Agent(4445) is started with pid=1157!
...see log file /opt/sos-berlin.com/jobscheduler_agent/var_4445/logs/jobscheduler_agent_4445.log
...watchdog for pid 1157 is started
Hit ENTER to return to your command prompt.
## 起動を確認します
$ ./jobscheduler_agent.sh status
totalTaskCount: 0
isTerminating: false
system:
  hostname: jos11p
  distribution: CentOS Linux release 7.3.1611 (Core)
  cpuModel: QEMU Virtual CPU version (cpu64-rhel6)
  mxBeans:
    operatingSystem:
      processCpuLoad: 1.9422053416610515E-5
      availableProcessors: 2
      freePhysicalMemorySize: 87138304
      systemCpuLoad: 0.0015086610538454538
      committedVirtualMemorySize: 3064274944
      totalPhysicalMemorySize: 1929326592
currentTaskCount: 0
java:
  systemProperties:
    java.vendor: Oracle Corporation
    os.arch: amd64
    os.version: 3.10.0-327.el7.x86_64
    os.name: Linux
    java.version: 1.8.0_121
  memory:
    maximum: 428867584
    total: 157810688
    free: 99083976
version: 1.11.0
startedAt: '2017-03-23T08:00:44.788Z'
```

**(3)マスターにエージェントを登録**
マスターにエージェントを登録するために、プロセスクラスを作成します。
ジョブ定義ディレクトリ（$SCHEDULER_DATA/config/live/）に移動し、プロセスクラス定義ファイルを作成します。
プロセスクラス定義ファイル名は「プロセスクラス名.process_class.xml」とします。

```shell-session
$ cd /home/scheduler/sos-berlin.com/jobscheduler/scheduler/config/live/
$ vi agent1.process_class.xml
```

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<process_class  max_processes="10">
    <remote_schedulers>
        <remote_scheduler remote_scheduler="http:/エージェントのホスト名orIPアドレス:4445"/>
    </remote_schedulers>
</process_class>
```

プロセスクラス定義ファイルを保存後1−2分で反映されますので、JOCコックピットを開きリソース＞プロセスクラス画面で登録したプロセスクラスが表示されます。

![図1.png](https://qiita-image-store.s3.amazonaws.com/0/52445/ffd04d68-cb04-6c59-107e-6e95d492939f.png "図1.png")


**(5)起動と停止**
JobSchedulerエージェントの起動と停止は、以下のコマンドで実行します。
起動：```/opt/sos-berlin.com/jobscheduler_agent/bin/jobscheduler_agent.sh start```
停止：```/opt/sos-berlin.com/jobscheduler_agent/bin/jobscheduler_agent.sh stop```
ステータス確認：```/opt/sos-berlin.com/jobscheduler_agent/bin/jobscheduler_agent.sh status```
コマンドヘルプ：```/opt/sos-berlin.com/jobscheduler_agent/bin/jobscheduler_agent.sh```

**(6)ログファイル**
JobSchedulerマスターのログファイルは、以下のディレクトリに保存されます。
/opt/sos-berlin.com/jobscheduler_agent/var_4445/logs/
メインログ：jobscheduler_agent_4445.log

**(7)アンインストール**

```shell-session
# /opt/sos-berlin.com/jobscheduler_agent/bin/jobscheduler_agent.sh stop
# rm -rf /opt/sos-berlin.com/jobscheduler_agent
```

##9.JobScheduler　JOE　インストール手順

JOE (Job Object Editor)は、JobSchedulerのジョブ定義（XMLファイル）を生成するデスクトップ（スタンドアローン）プログラムです。
Linux版とWindows版が提供されていますが、Linux版はデスクトップ環境（X-Window）が必要ですので、通常は管理用PCにWindows版をインストールします。

**(1)前提条件**
JOEをJobSchedulerマスターと違うシステムにインストールする場合、作成したジョブ定義ファイルをJobSchedulerマスターに反映する方法は、以下の二つがあります。
①	JOEのメニューから、JobSchedulerが稼働するホストへftp/sftpまたはWebDAVで接続する。
②	手作業（scp等）で、JobSchedulerが稼働するホストへ定義ファイルをコピーする。
いずれの方法であれ、JOEインストール先と、JobSchedulerマスターのインストール先間で使用するプロトコルが通信できる必要があります。

**(2)JREのインストール**
OracleのサイトからWindows版JREをダウンロードし、実行します。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

**(3)インストーラのダウンロード**
下記サイトから、インストーラをダウンロードできます。
http://www.sos-berlin.com/jobscheduler-downloads
Windows-x64 (64-Bit version)
JOE
または
Windows-x86 (32-Bit version)
JOE
を適当な場所にダウンロードし解凍します。
32bit/64bitは、JREに合わせる必要がありますのでご注意ください。
JREのバージョンは、コントロールパネルの検索窓からJAVAで検索して確認できます。

**(4)インストール実行**

インストーラを展開後、setup.cmdをダブルクリックし実行します。
![スクリーンショット 2017-03-24 18.53.01.png](https://qiita-image-store.s3.amazonaws.com/0/52445/ef960b57-264d-22af-9459-419f62888d47.png "スクリーンショット 2017-03-24 18.53.01.png")
はいをクリックし変更を許可
![スクリーンショット 2017-03-24 18.53.18.png](https://qiita-image-store.s3.amazonaws.com/0/52445/cb1233e9-1def-7480-7aff-13eda93a543f.png "スクリーンショット 2017-03-24 18.53.18.png")
使用言語は [eng（英語）] で、[OK]ボタンをクリック
![スクリーンショット 2017-03-24 18.53.33.png](https://qiita-image-store.s3.amazonaws.com/0/52445/ae9b35c5-e246-58a2-d205-4b2d8fc2ded6.png "スクリーンショット 2017-03-24 18.53.33.png")
[Next]ボタンをクリック
![スクリーンショット 2017-03-24 18.53.46.png](https://qiita-image-store.s3.amazonaws.com/0/52445/0057eae4-f996-818f-adad-2e9a1a130708.png "スクリーンショット 2017-03-24 18.53.46.png")
ライセンス条項に同意したら、”I accept 〜“をクリックし、[Next]ボタンをクリック
![スクリーンショット 2017-03-24 18.53.58.png](https://qiita-image-store.s3.amazonaws.com/0/52445/d7e3b0fe-5db0-a118-dcb1-0d5ab5be7b45.png "スクリーンショット 2017-03-24 18.53.58.png")
プログラムのインストール先にデフォルトを使用する場合は、何も変更せず、[Next]ボタンをクリック
変更する場合は、ディレクトリのアクセス権がインストールアカウントの所有になっている事。
![スクリーンショット 2017-03-24 18.54.08.png](https://qiita-image-store.s3.amazonaws.com/0/52445/88125105-f054-66f4-e5d6-24c3cd5a4410.png "スクリーンショット 2017-03-24 18.54.08.png")
設定ファイルやログファイルなどの出力先にデフォルトを使用する場合は、何も変更せず、[Next]ボタンをクリック
変更する場合は、ディレクトリのアクセス権がインストールアカウントの所有になっている事。
![スクリーンショット 2017-03-24 18.54.19.png](https://qiita-image-store.s3.amazonaws.com/0/52445/4bc311d7-3071-3295-fb67-9fa22b681022.png "スクリーンショット 2017-03-24 18.54.19.png")
インストール準備が始まるので、終了したら、[Next]ボタンをクリック
![スクリーンショット 2017-03-24 18.54.38.png](https://qiita-image-store.s3.amazonaws.com/0/52445/8a226755-1b3a-639f-ee61-57a7b5468c7f.png "スクリーンショット 2017-03-24 18.54.38.png")
[Create shortcuts …done]と表示されたら、[Next]ボタンをクリック
![スクリーンショット 2017-03-24 18.54.49.png](https://qiita-image-store.s3.amazonaws.com/0/52445/53963b3b-8305-d1ed-bf0e-51084bc0647e.png "スクリーンショット 2017-03-24 18.54.49.png")
インストール完了なので、[Done]ボタンをクリック

**(4)JOEのダイアグラム表示**
ジョブチェーンのフローダイアグラムを表示するために、Graphvizをインストールします。
手順は下記記事を参照ください。
http://qiita.com/satoruf/items/e32a7c099c54e707fcdb

**(5)JOEの起動とJobSchedulerマスターとの接続**
スタートメニュー＞その他のプログラム＞SOS JobScheduler＞JOE＞Start JOEをクリックして起動します。
![スクリーンショット 2017-03-24 18.55.14.png](https://qiita-image-store.s3.amazonaws.com/0/52445/50c5607e-8183-51a3-a687-10e11a29f4a2.png "スクリーンショット 2017-03-24 18.55.14.png")
起動したらFileメニューからFTP/SFTP＞Open Directoryを選択
![スクリーンショット 2017-03-24 18.56.47.png](https://qiita-image-store.s3.amazonaws.com/0/52445/418d43ff-52f6-d026-c624-af978a0dd351.png "スクリーンショット 2017-03-24 18.56.47.png")
Profileボタンをクリック
![スクリーンショット 2017-03-24 18.58.01.png](https://qiita-image-store.s3.amazonaws.com/0/52445/6155cf4a-502b-56ef-c181-b4690201e818.png "スクリーンショット 2017-03-24 18.58.01.png")
Propertiesタブで接続情報を入力します。
Name：接続名
Protocol：マスターにftpサーバーが稼働していなければSFTPを指定
Host Name or IP Address：ホスト名またはIPアドレス
Root Directory：変更不要
Directory For Local Copy：変更不要
Save Password：ログインパスワードを保存する場合はチェック
Transfer Mode：通常ASCIIを使用
Passive Mode：パッシブモードを使用する場合はチェック
![スクリーンショット 2017-03-24 18.58.19.png](https://qiita-image-store.s3.amazonaws.com/0/52445/344c3004-beee-b5a4-9ccb-154cf98c604b.png "スクリーンショット 2017-03-24 18.58.19.png")
SFTPタブを開いて、認証情報を入力し、Applyボタンをクリック
![スクリーンショット 2017-03-24 18.58.34.png](https://qiita-image-store.s3.amazonaws.com/0/52445/0f5a94d0-03bf-f591-29b7-eedd945be362.png "スクリーンショット 2017-03-24 18.58.34.png")
作成した接続名を選択し、 Connectボタンをクリック
![スクリーンショット 2017-03-24 19.02.15.png](https://qiita-image-store.s3.amazonaws.com/0/52445/11cf56f3-17a3-3d99-c1fd-7b09c35472bd.png "スクリーンショット 2017-03-24 19.02.15.png")
接続できればマスターの /config/liveディレクトリが表示されます。
![スクリーンショット 2017-03-24 19.02.48.png](https://qiita-image-store.s3.amazonaws.com/0/52445/da8cb894-195c-8840-1626-ff96502a1c21.png "スクリーンショット 2017-03-24 19.02.48.png")