[Eisfair] Backup-Zip Argument --rsync-path funktioniert nicht
Matthias Prill
m.prill at gmx.de
So Jan 16 15:55:42 CET 2022
Am 16.01.2022 um 15:20 schrieb Marcus Röckrath:
> Hallo Matthias,
>
> Matthias Prill wrote:
>
>>> Zeile 470: "$tecopt2"
>>> Zeile 476: "$tecopt"
>>>
>>>> Nun kommt es wohl auf die Schreibweise bzw. Übergabe von der Konfig in
>>>> die tecopt Variable an...
>>>
>>> In der Konfiguration musst du IMHO die Variante
>>>
>>> -a --delete --rsync="sudo rsync"
>>>
>>> nutzen.
>>>
>> Das hat alles nicht so geklappt wie es sollte. Das beste was ich
>> herausbekommen konnte war:
>>
>> - der Aufruf muß mit "tecopt" passieren
>> - der Parameter muß in der Konfig ohne ' stehen ->
>> BACKUP_3_TEC_RSYN=--rsync-path="sudo rsync"
>>
>> - es darf nur der --rsync-path Teil drin sein. Andere Parameter wie -a
>> und --delete dürfen nicht drin sein, sonst klappt es nicht
>>
>> ...ich denke das ist eine Baustelle, die sehr tief verankert ist...
>
> Diese "-Behandlung ist ein Geheimnis für sich. Wen es interessiert kann ja
> mal folgendes Skript laufen lassen:
>
> #!/bin/sh
>
> BACKUP_1_TEC_RSYN='-a --delete --rsync-path=sudo rsync'
> BACKUP_2_TEC_RSYN='-a --delete --rsync-path="sudo rsync"'
> BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'
>
>
> backup ()
> {
> tecopt="$1"
> echo Anzahl Parameter: $# 1. Parameter: "$tecopt"
> }
>
> echo ohne Anfuehrungsstriche
> for z in 1 2 3
> do
> eval current_opt='$BACKUP_'$z'_TEC_RSYN'
> backup $current_opt
> done
> echo
> echo
> echo mit Anfuehrungsstriche
> for z in 1 2 3
> do
> eval current_opt='$BACKUP_'$z'_TEC_RSYN'
> backup "$current_opt"
> done
>
> Ausgabe:
>
> ohne Anfuehrungsstriche
> Anzahl Parameter: 4 1. Parameter: -a
> Anzahl Parameter: 4 1. Parameter: -a
> Anzahl Parameter: 4 1. Parameter: -a
>
> Hier wird die eigentlich aus 3 Optionen bestenhende Zeile in 4 Optionen
> zerlegt, womit eben --rsync-path="sudo rsync" z. B. in
>
> --rsync-pacht="sudo
> rsync"
>
> zerissen wird, was es dann auch für rsync tut.
>
> mit Anfuehrungsstriche
> Anzahl Parameter: 1 1. Parameter: -a --delete --rsync-path=sudo rsync
> Anzahl Parameter: 1 1. Parameter: -a --delete --rsync-path="sudo rsync"
> Anzahl Parameter: 1 1. Parameter: -a --delete --rsync-path=\"sudo rsync\"
>
Oha, ja das ist schon Zauberei...
Warum es dann aber mit der 2. Variante, also so wie es ja in der Konfig
steht, also mit '--rsync-path="sudo rsync"', ist schleierhaft, denn das
sieht ja auf den ersten Blick richtig aus...
Seltsam seltsam..
Gruß
Matthias
Mehr Informationen über die Mailingliste Eisfair