cron を使用して Linux 上で SQL Server Integration Services パッケージの実行スケジュールを設定する

適用対象:SQL Server - Linux

Windows 上で SQL Server Integration Services (SSIS) と SQL Server を実行するときは、SQL Server エージェントを使用して SSIS パッケージの実行を自動化できます。 ただし、Linux 上で SQL Server と SSIS を実行する場合、SQL Server エージェント ユーティリティを使用して Linux 上でジョブをスケジュールすることはできません。 代わりに、パッケージの実行を自動化するために Linux プラットフォームで広く使用されている cron サービスが使用されます。

この記事では、SSIS パッケージの実行を自動化する方法を示す例を紹介します。 これらの例は、Red Hat Enterprise で実行するように記述されています。 このコードは、Ubuntu などの他の Linux ディストリビューションでも同様です。

前提条件

cron サービスを使用してジョブを実行する前に、そのサービスが使用しているコンピューター上で実行されているかどうかを確認します。

cron サービスの状態を確認するには、次のコマンドを使用します。

systemctl status crond.service

サービスがアクティブでない場合 (つまり、サービスが実行されていない場合) は、管理者に連絡して cron サービスを適切に設定して構成してください。

ジョブを作成する

cron ジョブは、指定された間隔で定期的に実行されるように構成できるタスクです。 ジョブは、通常、コンソールに直接入力するか、シェル スクリプトとして実行するコマンドと同じようにシンプルにすることができます。

管理と保守を容易にするために、わかりやすい名前を含むスクリプトにパッケージ実行コマンドを配置することをお勧めします。

パッケージを実行するためのシンプルなシェル スクリプトの例を次に示します。 それには 1 つのコマンドだけが含まれていますが、必要に応じてさらにコマンドを追加できます。

# A simple shell script that contains a simple package execution command
# Script name: SSISpackageName.daily

/opt/ssis/bin/dtexec /F yourSSISpackageName.dtsx >> $HOME/tmp/out 2>&1

cron サービスを使用してジョブのスケジュールを設定する

ジョブを定義したら、cron サービスを使用して、ジョブが自動的に実行されるようにスケジュールできます。

cron で実行するジョブを追加するには、crontab ファイルにジョブを追加します。 ジョブを追加したり更新したりできるエディターで crontab ファイルを開くには、次のコマンドを使用します。

crontab -e

前に記述したジョブを毎日午前 2 時 10 分に実行するようにスケジュールするには、次の行を crontab ファイルに追加します。

# run <SSIS package name> at 2:10 AM every day
10 2 * * * $/HOME/SSIS/jobs/SSISpackageName.daily

crontab ファイルを保存し、エディターを終了します。

サンプル コマンドの形式を理解するには、次のセクションの情報を確認してください。

crontab ファイルの形式

次の図に、crontab ファイルに追加されるジョブ行の形式の説明を示します。

Screenshot of the format description for a crontab file entry.

crontab ファイルの形式の詳細な記述を取得するには、次のコマンドを使用します。

man 5 crontab

この記事の例を説明するのに役立つ出力例の一部を次に示します。

Screenshot of a detailed partial description of crontab format.