Das Shell-Skript zippt einen Ordner, schließt jedoch nicht funktionierende Parameter aus, wenn es von cron.daily ausgeführt wird

367
Viktor Koncsek

Das Skript funktioniert gut, wenn ich es mit laufe sh filename, aber es ignoriert alle --excludeParameter, wenn es von cron ausgeführt wird:

#!/bin/sh TIMESTAMP=$(date +%u)  WEEK=`date +"%V"` if [ $(($WEEK%2)) -eq 0 ]; then echo "even"; BACKUP_DIR="/mnt/backup/2_$TIMESTAMP" mkdir -p "$BACKUP_DIR/www"  else echo "odd"; BACKUP_DIR="/mnt/backup/1_$TIMESTAMP" mkdir -p "$BACKUP_DIR/www"  fi  if [ $(date +%u) -gt 6 ]; then zip -r -y $BACKUP_DIR/www/web.zip /var/www/ --exclude='var/www/\.opcache/*' --exclude='var/www/utils/phpThumb/cache/*' else zip -r -y $BACKUP_DIR/www/web.zip /var/www/ --exclude='var/www/mycompany/files/*' --exclude='var/www/\.opcache/*' --exclude='var/www/mycompany/szamlazz/xml_szamlak/*' --exclude='var/www/mycompany/files_admin/szamlazz/*' --exclude='var/www/mycompany/files_admin/chatFiles/*' --exclude='var/www/mycompany/utils/phpThumb/cache/*' --exclude='*/backup-guard/*' --exclude='var/www/mycompany/mailer/*' --exclude='var/www/mycompany/attachments/*' fi  exit 0 

Das obige Skript sollte am Sonntag ein größeres Backup und an Wochentagen ein teilweises Backup erstellen.

0

1 Antwort auf die Frage

1
Kamil Maciorowski

Ihr zipBefehl aktualisiert die ZIP-Datei, falls vorhanden. Sie schreiben zyklisch in Verzeichnisse, sie werden schließlich wiederverwendet. Wenn Sie eine alte ZIP-Datei ohne Ausnahmen erstellt haben, werden durch das Update keine alten Versionen von Dateien entfernt, die Sie aus dem Archiv ausschließen möchten.

Unkomplizierte Lösung: Entfernen Sie die alte ZIP-Datei, bevor Sie sie ausführen zip.