Zeitliches Planen der Ausführung von SSIS-Paketen unter Linux mit CronSchedule SQL Server Integration Services package execution on Linux with cron

Gilt für: JaSQL Server (nur Linux) NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Wenn Sie SQL Server Integration Services (SSIS) und SQL Server unter Windows ausführen, können Sie die Ausführung von SSIS-Paketen mit dem SQL Server-Agent automatisieren.When you run SQL Server Integration Services (SSIS) and SQL Server on Windows, you can automate the execution of SSIS packages by using SQL Server Agent. Wenn Sie SQL Server und SSIS unter Linux ausführen, ist das SQL Server-Agent-Hilfsprogramm jedoch nicht zum Planen von Aufträgen unter Linux verfügbar.When you run SQL Server and SSIS on Linux, however, the SQL Server Agent utility isn't available to schedule jobs on Linux. Stattdessen verwenden Sie den Cron-Dienst, der häufig auf Linux-Plattformen verwendet wird, um die Paketausführung zu automatisieren.Instead, you use the cron service, which is widely used on Linux platforms to automate package execution.

Dieser Artikel enthält Beispiele, die zeigen, wie Sie die Ausführung von SSIS-Paketen automatisieren.This article provides examples that show how to automate the execution of SSIS packages. Die Beispiele sind so geschrieben, dass sie in Red Hat Enterprise ausgeführt werden.The examples are written to run on Red Hat Enterprise. Der Code ist für andere Linux-Distributionen wie z.B. Ubuntu ähnlich.The code is similar for other Linux distributions, such as Ubuntu.

VoraussetzungenPrerequisites

Bevor Sie den Cron-Dienst zum Ausführen von Aufträgen verwenden, überprüfen Sie, ob er auf dem Computer ausgeführt wird.Before you use the cron service to run jobs, check to see whether it is running on your computer.

Verwenden Sie den folgenden Befehl, um den Status des Cron-Diensts zu überprüfen: systemctl status crond.service.To check the status of the cron service, use the following command: systemctl status crond.service.

Wenn der Dienst nicht aktiv ist (d.h. nicht ausgeführt wird), wenden Sie sich an Ihren Administrator, um den Cron-Dienst ordnungsgemäß einzurichten und zu konfigurieren.If the service is not active (that is, it is not running), consult your administrator to set up and configure the cron service properly.

Erstellen von AufträgenCreate jobs

Ein Cron-Auftrag ist eine Aufgabe, die Sie so konfigurieren können, dass sie regelmäßig in einem bestimmten Intervall ausgeführt wird.A cron job is a task that you can configure to run regularly at a specified interval. Der Auftrag kann so einfach wie ein Befehl sein, den Sie normalerweise direkt in der Konsole eingeben oder als Shellskript ausführen.The job can be as simple as a command that you would normally type directly in the console or run as a shell script.

Zur Vereinfachung der Verwaltung und Wartung empfiehlt es sich, die Paketausführungsbefehle in ein Skript einzufügen, das einen beschreibenden Namen enthält.For easy management and maintenance purposes, we recommend that you put your package-execution commands in a script that contains a descriptive name.

Im Folgenden finden Sie ein Beispiel für ein einfaches Shellskript zum Ausführen eines Pakets.Here is an example of a simple shell script for running a package. Es enthält nur einen einzigen Befehl, aber Sie können nach Bedarf weitere Befehle hinzufügen.It contains only a single command, but you can add more commands as required.

# 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

Planen von Aufträgen mit dem Cron-DienstSchedule jobs with the cron service

Nachdem Sie Ihre Aufträge definiert haben, können Sie planen, dass sie automatisch mit dem Cron-Dienst ausgeführt werden.After you have defined your jobs, you can schedule them to run automatically by using the cron service.

Um den Auftrag zum Ausführen durch Cron hinzuzufügen, fügen Sie den Auftrag der crontab-Datei hinzu.To add your job for cron to run, add the job in the crontab file. Verwenden Sie den folgenden Befehl, um die crontab-Datei in einem Editor zu öffnen, in dem Sie den Auftrag hinzufügen oder aktualisieren können: crontab -e.To open the crontab file in an editor where you can add or update the job, use the following command: crontab -e.

Wenn Sie planen möchten, dass der zuvor beschriebene Auftrag täglich um 2:10 Uhr ausgeführt wird, fügen Sie der crontab-Datei die folgende Zeile hinzu:To schedule the previously described job to run daily at 2:10 AM, add the following line to the crontab file:

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

Speichern Sie die crontab-Datei, und beenden Sie dann den Editor.Save the crontab file, and then quit the editor.

Um das Format des Beispielbefehls zu verstehen, lesen Sie die Informationen im folgenden Abschnitt.To understand the format of the sample command, review the information in the following section.

Format einer crontab-DateiFormat of a crontab file

Die folgende Abbildung zeigt die Formatbeschreibung der Auftragszeile, die der crontab-Datei hinzugefügt wird.The following image shows the format description of the job line that's added to the crontab file.

Formatbeschreibung für den Eintrag in die crontab-Datei

Um eine ausführlichere Beschreibung des Formats der crontab-Datei zu erhalten, verwenden Sie den folgenden Befehl: man 5 crontab.To get a more detailed description of the crontab file format, use the following command: man 5 crontab.

Im Folgenden sehen Sie ein Teilbeispiel der Ausgabe, um das Beispiel in diesem Artikel zu erläutern:Here's a partial example of the output that helps to explain the example in this article:

Ausführliche teilweise Beschreibung des crontab-Formats