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 ファイルに追加されるジョブ行の形式の説明を示します。
crontab ファイルの形式の詳細な記述を取得するには、次のコマンドを使用します。
man 5 crontab
この記事の例を説明するのに役立つ出力例の一部を次に示します。