JobScheduler 1.13インストール手順（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（ジョブ実行監視）との連携機能
 - PostgreSQL, MySQL, MariaDB, Oracle, 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マスターは、同一サーバー上で同一データベースを使用することも、異なるサーバー上で異なるデータベースを使用することも可能です。
※V.1.13からJOEの機能はJOCコックピットに統合されましたので、ローカルPCで作業する必要がない限り使用しません。

##3.稼働条件
JobScheduler 1.13.4 (2020/7現在）
**JobSchedulerマスター/JOCコックピット**
- CPU 2core<、メモリ4GB<、ディスク空き容量10GB<
- OracleJDK/openJDK 1.8-12
- RHEL/CentOS 6 < (32/64bit)
- Windows Server 2008 R2, 2012 R8, 2016 (32/64bit)
**JobSchedulerエージェント**
- Any Linux/Windows (OracleJDK/openJDK 1.8-12がサポートされる環境)
- AIX 6,7 PowerPC
- Solaris 9,10,11 SPARC/x86-64
- HP-UX 11 IA64

詳細はこちらを参照（英語）
[Which platforms is JobScheduler available for and what platform support is provided?](https://kb.sos-berlin.com/pages/viewpage.action?pageId=3638020)
[Which Java versions is JobScheduler available for?]
(https://kb.sos-berlin.com/pages/viewpage.action?pageId=19857566)

##4.データベースサポート
 - Oracle® 8.1.7, 9.2, 10g, 11g, 12c, 18x, 19c
 - SQL Server®	2000, 2005, 2008, 2012, 2014, 2017
 - MariaDB® 10.0.14
 - MySQL® 5.5, 5.6, 5.7, 8.0
 - PostgreSQL®	8.3, 9.6<, 10.5, 11.x

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


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

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

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

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

```shell-session
# dnf install -y epel-release
# dnf update -y
```
**(3)JAVAインストール**

```shell-session
# dnf install java-11-openjdk
# java -version
openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)
```

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

本手順では、Postgresをインストールします。
参考： https://www.postgresql.org/download/linux/redhat/

```shell-session
## Install the repository RPM:
# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
## Disable the built-in PostgreSQL module:
# dnf -qy module disable postgresql
## Install PostgreSQL:
# dnf install postgresql11-server
## Optionally initialize the database and enable automatic start:
# /usr/pgsql-11/bin/postgresql-11-setup initdb
# systemctl enable postgresql-11
# systemctl start postgresql-11
```

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

```shell-session
# vi /var/lib/pgsql/11/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/11/data/postgresql.conf
```

```
listen_addresses = ‘*’　←コメントを解除し、‘’内を * に変更
中略
port 5432　←コメントを解除
```

サービスを起動します。

```shell-session
# systemctl restart postgresql
```

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

```shell-session
# psql -U postgres
postgres=# create database scheduler;
postgres=# ¥q
```

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

```shell-session
# useradd scheduler -m -p scheduler
# passwd scheduler ##ユーザー scheduler のパスワードを設定
# visudo ##ユーザー schedulerにパスレスsudo権限を付加
```
下記を追加して保存

```
Defaults:scheduler    !requiretty
scheduler ALL=(ALL)       NOPASSWD: ALL
```

**(2)インストーラのダウンロード**
以下の作業はユーザー schedulerで作業します。

```
# su - scheduler
```

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

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

Update（JobSchedulerマスターアップデータ）は旧バージョンマスターをバージョンアップする場合使用しますが、Full Install（JobSchedulerマスター　一括インストーラ）でもバージョンアップは可能です。

JOE（Job Object Editor単体インストーラ）は、V.1.13からJOCに統合されましたので、通常不要です。

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

```
$ curl -O https://download.sos-berlin.com/JobScheduler.1.13/jobscheduler_linux-x64.1.13.4.tar.gz
$ tar xvzf jobscheduler_linux-x64.1.13.4.tar.gz
```
PostgreSQL 11用のJDBCドライバもダウンロードします。

```shell-session
$ curl -O https://jdbc.postgresql.org/download/postgresql-42.2.5.jar
```

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

```shell-session
$ cd jobscheduler.1.13.4
$ 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"/>
```
V.1.13から追加された機能の"JobStream"を使用する設定をvalue="on"にします。

```
            <!-- Enable JobStreams plugin.
                 For more information see https://kb.sos-berlin.com/x/uoC2AQ -->
            <entry key="jobStreamsPlugin" value="on"/>
```


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"/>　 ## ジョブ成功通知

```
Housekeepingジョブを使用する設定をvalue="on"にします。

```
            <!-- The Housekeeping package is required for configure JobScheduler as event handler
                 Choose this option if you intend to use JobScheduler Events and
                 - this JobScheduler instance is the only instance which processes Events
                 - this JobScheduler instance is a supervisor for other JobSchedulers which submit Events -->
            <entry key="jobEvents" value="on"/>
```

使用するデータベースを指定します。本手順では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接続パスワード
```
インストーラに同梱されているJDBCドライバではなく、事前にダウンロードしていたドライバを使用します。

```
            <!-- You can choose between 'yes' or 'no' for using the internal JDBC connector
                 or not -->
            <entry key="internalConnector" value="no"/>

            <!-- Select the path to JDBC Driver -->
            <entry key="connector" value="/home/scheduler/postgresql-42.2.5.jar"/>
```

```<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.13.4.jar jobscheduler_install.xml
```

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

```shell-session   
Starting JobScheduler...


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

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

**(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.xx.x_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.13/joc_linux.1.13.4.tar.gz
$ tar xvzf joc_linux.1.13.4.tar.gz
$ cd joc_linux.1.13.4
```

**(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接続パスワード                                           
```

インストーラに同梱されているJDBCドライバではなく、事前にダウンロードしていたドライバを使用します。

```
            <!-- You can choose between 'yes' or 'no' for using the internal JDBC connector
                 or not -->
            <entry key="reporting.internalConnector" value="no"/>

            <!-- Select the path to JDBC Driver -->
            <entry key="reporting.connector" value="/home/scheduler/postgresql-42.2.5.jar"/>
```

```
            <!-- 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.13.4.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コックピットの起動と停止は、以下のコマンドで実行します。
起動：```systemctl start joc.service```
停止：```systemctl stop joc.service```
ステータス確認：```systemctl status joc.service```

**(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/openJDKインストール
- インストール用ユーザー作成

参考（英語）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.13/jobscheduler_unix_universal_agent.1.13.4.tar.gz
$ tar xvzf jobscheduler_unix_universal_agent.1.13.4.tar.gz
```

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

```shell-session
$ sudo 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
currentTaskCount: 0
isTerminating: false
java:
  memory:
    free: 237576176
    maximum: 2090860544
    total: 299892736
  systemProperties:
    java.vendor: Oracle Corporation
    os.arch: amd64
    os.version: 4.18.0-193.el8.x86_64
    os.name: Linux
    java.version: 11.0.7
startedAt: '2020-06-26T08:12:57.566167Z'
system:
  cpuModel: Common KVM processor
  distribution: CentOS Linux release 8.2.2004 (Core)
  hostname: jos134centos82
  mxBeans:
    operatingSystem:
      availableProcessors: 2
      committedVirtualMemorySize: 5081362432
      freePhysicalMemorySize: 3765051392
      processCpuLoad: 3.458655683518173E-4
      systemCpuLoad: 0.020322611536540566
      systemLoadAverage: 0.32
      totalPhysicalMemorySize: 8357883904
totalTaskCount: 0
version: 1.13.4
```

**(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　インストール手順

※ V.1.13からJOEの機能はJOCコックピットに統合されていますので、ローカルPCだけで作業する必要がなければ不要です。
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")