Ich löste es, indem ich das vordere '* /' entfernte und absolute Pfade verwende. Ich weiß immer noch nicht, warum diese im Terminal gearbeitet haben und warum nicht in einem Skript mit korrekten Klammern und Fluchten.
Bash ignoriert zip -x-Argumente
401
Viktor Koncsek
Das folgende Skript ignoriert alle -x-Ausschlussargumente, wenn es von der Bash ausgeführt wird, es funktioniert jedoch von der Befehlszeile aus:
#!/bin/sh TIMESTAMP=$(date +%u) ulimit -s 65536 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 /usr/bin/zip -r -y $BACKUP_DIR/www/web.zip /var/www/ -x '*/.opcache/*' -x '*/phpThumb/cache/*' else /usr/bin/zip -r -y $BACKUP_DIR/www/web.zip /var/www/ -x '*/mycompany/files/*' -x '*/.opcache/*' -x '*/xml_extras/*' -x '*/files_admin/extras/*' -x '*/chatFiles/*' -x '*/phpThumb/cache/*' -x '*/backup-guard/*' -x '*/mailer/*' -x '*/mycompany/attachments/*' fi exit 0
Es ist eine 14-tägige Sicherungslösung, und ich möchte, dass die Wochentage die größeren Ordner wie Bilder ignorieren. Gibt es einen Grund, warum die -x-Argumente ignoriert werden?
Hinweis: Sie markieren [tag: bash], aber der Shebang verweist auf `sh`. Sie können das Skript von Bash aus ausführen, aber * wenn * eine Shell für das Problem relevant ist, dann ist es 'sh' anstelle von 'bash' (es sei denn, Sie * beziehen * aus Bash).
Kamil Maciorowski vor 5 Jahren
1
@ KamilMaciorowski Danke !! Ich löste es mit Ihrem Kommentar, nachdem ich das Problem mit der Shell gegoogelt hatte, bemerkte ich, dass ich * nach \\ * fliehen muss.
Viktor Koncsek vor 5 Jahren
0
Ehrlich gesagt verstehe ich es noch nicht wirklich. Nichts, worüber man sich Sorgen machen müsste. Ich denke, wenn Sie [Ihre eigene Frage beantworten] (https://superuser.com/help/self-answer) und erklären, dann werden Ihre Lösung und der Grund, warum das ursprüngliche Skript nicht funktioniert hat, klar.
Kamil Maciorowski vor 5 Jahren
0
Trotzdem funktioniert es immer noch nicht richtig (außer in der Kommandozeile, das ist perfekt).
Viktor Koncsek vor 5 Jahren
0
Ich habe diese Frage formal als Duplikat bezeichnet. Ich war du, ich würde es einfach löschen.
Kamil Maciorowski vor 5 Jahren
0
1 Antwort auf die Frage
0
Viktor Koncsek
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4