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