Geplante Exports

Automatisches Erstellen eines Exports für den Vormonat

Das Skript berechnet den ersten und letzten Tag des Vormonats, erstellt einen Export-Dateinamen basierend auf Jahr und Monat und führt den Konsolenbefehl aus, um den Export zu erzeugen.

Zuerst musst du auf deinem Server eine Datei erstellen, z. B. export_documents.sh, und den folgenden Code einfügen.

#!/bin/bash
# Pfad zu bin/console
CONSOLE_CMD="bin/console"
# Die Profil-ID für den Export
PROFILE_ID="018f76c0f01e7015b7594faafcd2fc54"
# Verzeichnis, in dem die Export-ZIP-Datei gespeichert wird
OUTDIR="/tmp"
# Betriebssystem erkennen und ersten/letzten Tag des Vormonats berechnen
if date -d "2020-01-01" +%F >/dev/null 2>&1; then
# GNU Datum (Linux)
first_day=$(date -d "$(date +%Y-%m-01) -1 month" +%F)
last_day=$(date -d "$first_day +1 month -1 day" +%F)
ym=$(date -d "$first_day" +%Y-%m)
else
# BSD Datum (macOS)
first_day=$(date -v-1m -v1d +%Y-%m-%d)
last_day=$(date -v-1d -v1m +%Y-%m-%d)
ym=$(date -v-1m +%Y-%m)
fi
outfile="$OUTDIR/export-$ym.zip"
echo "Exportiert von $first_day bis $last_day..."
"$CONSOLE_CMD" iwv-csv-documents:export \
--filePath="$outfile" \
--fromDate="$first_day" \
--untilDate="$last_day" \
--profileId="$PROFILE_ID"
echo "Fertig. Datei gespeichert unter $outfile"

Danach öffnest du die Crontab auf deinem Server mit dem folgenden Befehl:

crontab -e

Als Beispiel, um das Skript jeden Tag um 5:00 Uhr auszuführen, fügst du dann diese Zeile hinzu.

0 5 * * * /path/to/export_documents.sh >> /var/log/iwv-documents-exporter.log 2>&1

CHAT

Hello! How can I help you today?
12:52