Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Backup-Zip Argument --rsync-path funktioniert nicht

35 views
Skip to first unread message

Matthias Prill

unread,
Jan 15, 2022, 4:25:47 PM1/15/22
to
Hallo,

ich versuche via BackupZip einen raspberry im lokalen Netz zu sichern.

An der kommandozeile des eisfair klappt es z.B. mit folgender Syntax:

rsync -a --rsync-path="sudo rsync" p...@192.168.227.115:/etc /mnt

versuche ich nun das Argument --rsync-path="sudo rsync" in BackupZip zu
übergeben bekomme ich beim Testbackup den Fehler:

Backup is running, please wait.
[--Unexpected remote arg: p...@192.168.227.115:/etc/
rsync error: syntax or usage error (code 1) at main.c(1512) [sender=3.2.3]
- 6 Sec.]
Backup finished!

..ich habe auch probeweise die Syntax mit einfachen Hochkomma
--rsync-path='sudo rsync' getestet, funktioniert aber auch nicht..



Gruß
Matthias

Marcus Röckrath

unread,
Jan 15, 2022, 4:50:02 PM1/15/22
to
Hallo Matthias,

Matthias Prill wrote:

> ich versuche via BackupZip einen raspberry im lokalen Netz zu sichern.
>
> An der kommandozeile des eisfair klappt es z.B. mit folgender Syntax:
>
> rsync -a --rsync-path="sudo rsync" p...@192.168.227.115:/etc /mnt
>
> versuche ich nun das Argument --rsync-path="sudo rsync" in BackupZip zu
> übergeben bekomme ich beim Testbackup den Fehler:

Wie machst du das in der Konfiguration genau.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 15, 2022, 5:02:54 PM1/15/22
to
..ich füge es in dem Feld ein, wo die Defaultwerte stehen: -a --delete

das erweitere ich dann um --rsync-path="sudo rsync"

Evtl. kommt BackupZip nicht mit den Hochkomma klar...irgendwas in der
Art vermute ich...

Gruß
Matthias

Marcus Röckrath

unread,
Jan 15, 2022, 5:20:02 PM1/15/22
to
Mach mal auf der Konsole folgendes:

eis # x="a b"
eis # echo $x
a b

Du siehst, wie schnell die verschwinden.

Dagegen:

eis # x="\"a b\""
eis # echo $x
"a b"

1. Was steht in der Optionsvariablen in /etc/config.d/backp-zip?

2. Was steht in dieser Variablen, wenn du in der Konfiguration das "
escapest: --rsyn-path \"sudo sync\"?

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 15, 2022, 5:30:59 PM1/15/22
to
Am 15.01.2022 um 23:15 schrieb Marcus Röckrath:
> Hallo Matthias,

ja, das mit dem escapen habe ich schon probiert...
das steht da so drin wie ich es im Dialog getippt habe...

> 1. Was steht in der Optionsvariablen in /etc/config.d/backp-zip?
BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'
>
> 2. Was steht in dieser Variablen, wenn du in der Konfiguration das "
> escapest: --rsyn-path \"sudo sync\"?
BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'


Fehler bleibt bestehen:

Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
backups
Backup is running, please wait.
[---Unexpected remote arg: p...@192.168.227.115:/etc/
rsync error: syntax or usage error (code 1) at main.c(1512) [sender=3.2.3]
- 8 Sec.]
Backup finished!

Gruß
Matthias

Marcus Röckrath

unread,
Jan 16, 2022, 2:30:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> ja, das mit dem escapen habe ich schon probiert...
> das steht da so drin wie ich es im Dialog getippt habe...
>
>> 1. Was steht in der Optionsvariablen in /etc/config.d/backp-zip?
> BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'

Also steht das mit den \ auch schon so drin, wenn du es selbst nicht
escapst?

>> 2. Was steht in dieser Variablen, wenn du in der Konfiguration das "
>> escapest: --rsyn-path \"sudo sync\"?
> BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 3:10:29 AM1/16/22
to
Guten Morgen,
nein, wenn ich es normal eintippe, dann steht es so in der Konfig:
BACKUP_3_TEC_RSYN='-a --delete --rsync-path="sudo rsync"'

Daraufhin habe ich dann begonnen mit dem Escapen...aber ohne Erfolg.
Ich muß jetzt in die Tiefen des Backupscripts tauchen und die Stelle des
eigentlichen Aufrufes finden und mir den kompletten Befehl ansehen...

Gruß
Matthias

Marcus Röckrath

unread,
Jan 16, 2022, 3:40:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> ja, das mit dem escapen habe ich schon probiert...
> das steht da so drin wie ich es im Dialog getippt habe...
>
>> 1. Was steht in der Optionsvariablen in /etc/config.d/backp-zip?
> BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'
>>
>> 2. Was steht in dieser Variablen, wenn du in der Konfiguration das "
>> escapest: --rsyn-path \"sudo sync\"?
> BACKUP_3_TEC_RSYN='-a --delete --rsync-path=\"sudo rsync\"'
>
> Fehler bleibt bestehen:

Bitte verdopple in /usr/lib/baclup-zip/backup.create die Zeile 475 und lasse
eine der beiden Zeilen auf der Kommandozeile ausgeben und poste dann die
Ausgabe bei der Ausführung:

echo "rsync .........."

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 4:00:01 AM1/16/22
to
Musst du nicht, steht in meinem anderen Beitrag.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 4:02:35 AM1/16/22
to
Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
backups
Backup is running, please wait.
[---Unexpected remote arg: p...@192.168.227.115:/etc/
rsync error: syntax or usage error (code 1) at main.c(1512) [sender=3.2.3]
rsync --exclude-from=/tmp/backup.exclude -a --delete --rsync-path="sudo
rsync" p...@192.168.227.115:/etc/ /DASI/backup/raspberry-email/etc_1/

Matthias Prill

unread,
Jan 16, 2022, 4:07:21 AM1/16/22
to
Am 16.01.2022 um 09:34 schrieb Marcus Röckrath:
> Hallo Matthias,
> Bitte verdopple in /usr/lib/baclup-zip/backup.create die Zeile 475 und lasse
> eine der beiden Zeilen auf der Kommandozeile ausgeben und poste dann die
> Ausgabe bei der Ausführung:
>
> echo "rsync .........."
>
und hier die Ausgabe wenn ich es (leicht angepasst bei den Pfaden) auf
der Kommandozeile ausführe:
gondwana # rsync -a --delete --rsync-path="sudo rsync"
p...@192.168.227.115:/etc/ /mnt -v
receiving incremental file list

sent 216 bytes received 58,888 bytes 16,886.86 bytes/sec
total size is 1,815,556 speedup is 30.72
gondwana #


Marcus Röckrath

unread,
Jan 16, 2022, 4:30:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>> echo "rsync .........."
>>
> und hier die Ausgabe wenn ich es (leicht angepasst bei den Pfaden) auf
> der Kommandozeile ausführe:
> gondwana # rsync -a --delete --rsync-path="sudo rsync"
> p...@192.168.227.115:/etc/ /mnt -v

Ich sehe jetzt den Unterschied nicht.

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 4:30:02 AM1/16/22
to
Was davon ist der hinzugefügte echo?

Du kannst auch die eigentliche rsync-Kommandozeile auskommentieren.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 4:52:19 AM1/16/22
to
Am 16.01.2022 um 10:20 schrieb Marcus Röckrath:
>
> Was davon ist der hinzugefügte echo?
>
> Du kannst auch die eigentliche rsync-Kommandozeile auskommentieren.
>
habe die eigentliche Zeile auskommentiert...
Hier die Ausgabe:

Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
backups
Backup is running, please wait.
[--rsync --exclude-from=/tmp/backup.exclude -a --delete
--rsync-path="sudo rsync" p...@192.168.227.115:/etc/
/DASI/backup/raspberry-email/etc_1/
- 6 Sec.]
Backup finished!

Marcus Röckrath

unread,
Jan 16, 2022, 5:00:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> ich versuche via BackupZip einen raspberry im lokalen Netz zu sichern.
>
> An der kommandozeile des eisfair klappt es z.B. mit folgender Syntax:
>
> rsync -a --rsync-path="sudo rsync" p...@192.168.227.115:/etc /mnt

Schonmal versucht, auf dem raspi ein Wrapperskript zu erstellen, dass pi
ausführen daf?

#!/bin/sh
sudo rsync

und dann auf eisseite dieses samt Pfad anzugeben.

--
Gruß Marcus
[eisfair-Team]

Helmut Backhaus

unread,
Jan 16, 2022, 5:03:46 AM1/16/22
to

Hallo zusammen,
Ich habe ja weder Ahnung von rsync noch von der hier besprochenen
Anwendung. Aber mir ist etwas aufgefallen:

Am 16.01.22 um 10:20 schrieb Marcus Röckrath:
> Hallo Matthias,
>
> Matthias Prill wrote:
>
>>> echo "rsync .........."
>>>
>> und hier die Ausgabe wenn ich es (leicht angepasst bei den Pfaden) auf
>> der Kommandozeile ausführe:
>> gondwana # rsync -a --delete --rsync-path="sudo rsync"
>> p...@192.168.227.115:/etc/ /mnt -v
>



gondwana # rsync -a --delete --rsync-path="sudo rsync"
p...@192.168.227.115:/etc/ /mnt -v


Dieser Teil hier --> p...@192.168.227.115:/etc/ /mnt -v <--

Gehört der ":" Doppelpunkt da wirklich hin?

Wenn ich das Richtig sehe, folgt dem Doppelpunkt doch sonst immer ein
Port, oder?

Das würde auch den Syntaxfehler begründen können.

Mag auch sein, dass ich völlig falsch liege ...
Aber das war mir aufgefallen.

Schönen Sonntag

Gruß,
Helmut

Matthias Prill

unread,
Jan 16, 2022, 5:14:21 AM1/16/22
to
Das ist ja mein Problem :-(
Es sieht identisch aus ich habe auch den kompletten Aufruf mit der
exclude Option in der Kommandozeile ausgeführt. Klappt.
Dann habe ich die Komandozeile ins Script kopiert, die " mit \" maskiert
(sonst würde er baum Audfruf ja nur das sudo machen) und es nach dem
eigentlichen Aufruf im Script ausgeführt.
Dann kommt der gleiche Fehler.
Kann es damit zu tun haben, das der eigentliche AUfruf im Script ja in
einer Schleife läuft, um diese Fortschrittsstriche zu erzeugen?

Gruß
Matthias

Matthias Prill

unread,
Jan 16, 2022, 5:17:37 AM1/16/22
to
Am 16.01.2022 um 11:03 schrieb Helmut Backhaus:
>
> Hallo zusammen,
> Ich habe ja weder Ahnung von rsync noch von der hier besprochenen
> Anwendung. Aber mir ist etwas aufgefallen:
>
> Dieser Teil hier --> p...@192.168.227.115:/etc/ /mnt -v <--
>
> Gehört der ":" Doppelpunkt da wirklich hin?
>
> Wenn ich das Richtig sehe, folgt dem Doppelpunkt doch sonst immer ein
> Port, oder?

Hallo Helmut,

danke fürs Mitmachen :-)
Ja, das muß so aussehen, das ist die Syntax dafür.

Gruß
Matthias

Marcus Röckrath

unread,
Jan 16, 2022, 5:20:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
> backups

^^^^^^^^^^^^^^^^^^^^^^^^
Diese Ausgabe kann IMHO nicht durch das zusätzlich echo kommen.

Bitte kapsele die zusätzliche Ausgabe noch durch:

echo "-------"
...
echo "-------"

> Backup is running, please wait.

> [--rsync --exclude-from=/tmp/backup.exclude -a --delete
> --rsync-path="sudo rsync" p...@192.168.227.115:/etc/
> /DASI/backup/raspberry-email/etc_1/
> - 6 Sec.]
> Backup finished!

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 5:20:03 AM1/16/22
to
Hallo Helmut,

Helmut Backhaus wrote:

> Dieser Teil hier --> p...@192.168.227.115:/etc/ /mnt -v <--
>
> Gehört der ":" Doppelpunkt da wirklich hin?

Ja; : meint bei rsync die Nutzung über ssh; :: über einen auf der anderen
Seiten laufenden rsync-Daemon.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 5:20:06 AM1/16/22
to
aber das muß ich doch dann auch wieder in dieses Argument verpacken?
Dann laufe ich sicher wieder in dieselben Probleme? Aber ich probiere es
einfach aus...

Marcus Röckrath

unread,
Jan 16, 2022, 5:40:02 AM1/16/22
to
Da würde wohl ein

--rsync-path=/path/to/rsyncwrapper

ohne " reichen, wenn die " bzw. das Leerzeichen für das Problem
verantwortlich sind.

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 5:40:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>> Ich sehe jetzt den Unterschied nicht.
>>
> Das ist ja mein Problem :-(

Ok, bin ich also nicht ganz blind.

> Es sieht identisch aus ich habe auch den kompletten Aufruf mit der
> exclude Option in der Kommandozeile ausgeführt. Klappt.
> Dann habe ich die Komandozeile ins Script kopiert, die " mit \" maskiert
> (sonst würde er baum Audfruf ja nur das sudo machen) und es nach dem
> eigentlichen Aufruf im Script ausgeführt.

Wenn du auf dem eis den Aufruf in eine Script schreibst, hat das \ nicht s
darin zu suchen; an der Stelle darf es nicht maskiert sein.

> Dann kommt der gleiche Fehler.

> Kann es damit zu tun haben, das der eigentliche AUfruf im Script ja in
> einer Schleife läuft, um diese Fortschrittsstriche zu erzeugen?

Welche Schleife?

Das Backup wird über die Unterfunktion backup in den Hintergrund geschickt
und ruft dann einmal rsync auf.

Die nach dem backup-Aufruf gestartete backup_status-Funktion wartet auf die
Beendigung von backup und zeichnet dabei den Fortschritt.

Hat es wirklich mit dem --rsync-path-Parameter zu tun?

Wenn nein, hat noch niemand rsync mit backup-zip benutzt, denn dann hätte
das schon auftreten müssen.

--
Gruß Marcus
[eisfair-Team]

Holger Bruenjes

unread,
Jan 16, 2022, 5:51:19 AM1/16/22
to
Hallo

Am 16/01/2022 um 11.14 schrieb Matthias Prill:
> Am 16.01.2022 um 10:20 schrieb Marcus Röckrath:
>> Hallo Matthias,
>>
>> Matthias Prill wrote:
>>
>>>> echo "rsync .........."
>>>>
>>> und hier die Ausgabe wenn ich es (leicht angepasst bei den Pfaden) auf
>>> der Kommandozeile ausführe:
>>> gondwana # rsync -a --delete --rsync-path="sudo rsync"


wuerde das mit dem kompletten Pfad funktionieren

--rsync-path="/usr/bin/sudo /usr/bin/rsync"


wenn die Ausfuehrung ueber cron erfolgt, wie ist dann das env

Holger

Matthias Prill

unread,
Jan 16, 2022, 5:54:52 AM1/16/22
to
Am 16.01.2022 um 11:31 schrieb Marcus Röckrath:
> Welche Schleife?
>
> Das Backup wird über die Unterfunktion backup in den Hintergrund geschickt
> und ruft dann einmal rsync auf.
>
> Die nach dem backup-Aufruf gestartete backup_status-Funktion wartet auf die
> Beendigung von backup und zeichnet dabei den Fortschritt.
ja, das meinte ich...
>
> Hat es wirklich mit dem --rsync-path-Parameter zu tun?
Ja, das sieht im moment wohl so aus. bzw. mit der Art der Übergabe des
Parameters. Es klemmt wohl an den Hochkomma...

Habe das mal in ein minimales Script geschrieben. Wobei ich den
Parameter einmal als Variable übergebe und einmal direkt in der Zeile
übergebe:

#!/bin/bash
echo Aufruf mit Parameter als Variable:
tecopt=--rsync-path="sudo rsync"
echo $tecopt
rsync --exclude-from=/root/backup.exclude -a --delete $tecopt
p...@192.168.227.115:/etc/ /mnt -v

echo Aufruf mit Parameter in Zeile:
rsync --exclude-from=/root/backup.exclude -a --delete --rsync-path="sudo
rsync" p...@192.168.227.115:/etc/ /mnt -v




Aufruf mit Parameter als Variable:
--rsync-path=sudo rsync
Unexpected remote arg: p...@192.168.227.115:/etc/
rsync error: syntax or usage error (code 1) at main.c(1512) [sender=3.2.3]

Aufruf mit Parameter in Zeile:
receiving incremental file list

sent 216 bytes received 58,888 bytes 23,641.60 bytes/sec
total size is 1,815,556 speedup is 30.72

Gruß
Matthias

Marcus Röckrath

unread,
Jan 16, 2022, 6:10:03 AM1/16/22
to
Hallo Holger,

Holger Bruenjes wrote:

> wuerde das mit dem kompletten Pfad funktionieren
>
> --rsync-path="/usr/bin/sudo /usr/bin/rsync"
>
> wenn die Ausfuehrung ueber cron erfolgt, wie ist dann das env

Es geht um die Gegenstelle und nach Matthias Posting funktioniert das so
direkt auf der Kommandozeile ausgeführt.

Entweder hat rsync in backup-zip nie gescheit funktioniert - wäre
ungewöhnlich, dass das in all den Jahren noch nie jemand benutzt hat, oder
es liegt an dem Leerzeichen bzw. den " die irgendwie in der letztendlichen
Kommandozeile anders interpretiert werden.

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 6:10:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> Habe das mal in ein minimales Script geschrieben. Wobei ich den
> Parameter einmal als Variable übergebe und einmal direkt in der Zeile
> übergebe:
>
> #!/bin/bash
> echo Aufruf mit Parameter als Variable:
> tecopt=--rsync-path="sudo rsync"
> echo $tecopt
> rsync --exclude-from=/root/backup.exclude -a --delete $tecopt
> p...@192.168.227.115:/etc/ /mnt -v
>
> echo Aufruf mit Parameter in Zeile:
> rsync --exclude-from=/root/backup.exclude -a --delete --rsync-path="sudo
> rsync" p...@192.168.227.115:/etc/ /mnt -v
>
> Aufruf mit Parameter als Variable:
> --rsync-path=sudo rsync

Damit ist der Parameter zerissen und --rsync-path=sudo ist aktiv und rsync
ein davon unabhängiger nächster Kommandozeilenparameter.

Warum dies bei einem echon im backup.create-Script nun nicht sichtbar ist,
erschliesst sich mich noch nicht.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 6:10:59 AM1/16/22
to
mit dem wrapperscript bekomme ich als Ausgabe die Ausgabe von rsync ohne
parameter, also alle Parameter usw.

Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
backups
Backup is running, please wait.
[---rsync version 3.2.3 protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, hardlink-specials, symlinks, IPv6, atimes,
batchfiles, inplace, append, ACLs, xattrs, optional protect-args,
.
...einige Ausgaben entfernt...
.
documentation.
See https://rsync.samba.org/ for updates, bug reports, and answers
rsync error: syntax or usage error (code 1) at main.c(1735) [client=3.2.3]
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(228)
[Receiver=3.2.3]
- 8 Sec.]
Backup finished!


Muß ich nicht noch die Aufrufparameter womit das Wrapperscript
aufgerufen wird irgendwie weiterreichen?

Marcus Röckrath

unread,
Jan 16, 2022, 6:30:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> #!/bin/bash
> echo Aufruf mit Parameter als Variable:
> tecopt=--rsync-path="sudo rsync"
> echo $tecopt
> rsync --exclude-from=/root/backup.exclude -a --delete $tecopt
> p...@192.168.227.115:/etc/ /mnt -v
>
> Aufruf mit Parameter als Variable:
> --rsync-path=sudo rsync
> Unexpected remote arg: p...@192.168.227.115:/etc/
> rsync error: syntax or usage error (code 1) at main.c(1512) [sender=3.2.3]

Mal vielleicht so:

echo "$tecopt"
rsync --exclude-from=/root/backup.exclude -a --delete "$tecopt"

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 6:30:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>>>> #!/bin/sh
>>>> sudo rsync

> mit dem wrapperscript bekomme ich als Ausgabe die Ausgabe von rsync ohne
> parameter, also alle Parameter usw.

sudo rsync $*

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 6:50:02 AM1/16/22
to
Hallo Matthias,

Marcus Röckrath wrote:

>> Habe das mal in ein minimales Script geschrieben. Wobei ich den
>> Parameter einmal als Variable übergebe und einmal direkt in der Zeile
>> übergebe:
>>
>> #!/bin/bash
>> echo Aufruf mit Parameter als Variable:
>> tecopt=--rsync-path="sudo rsync"

Mach mal auf dem nur folgendes, was dir schon bei der Zuweisung um die Ohren
fliegen würde:

eis # tecopt="-a --delete --rsync-path="sudo rsync""
rsync version 3.2.3 protocol version 31
...
Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See https://rsync.samba.org/ for updates, bug reports, and answers
rsync error: syntax or usage error (code 1) at main.c(1748) [client=3.2.3]

Aber so wäre die Variable korrekt gesetzt:

eis # echo $tecopt
-a --delete --rsync-path="sudo rsync"
eis # echo "$tecopt"
-a --delete --rsync-path="sudo rsync"

Das heißt dann wohl, das die Fehlermeldung des Skriptes garnicht von der
eigentlichen rsync-Zeile, sondern von der Zuweisung an tecopt käme:

Kapsele mal die Zeile 408 in backup.create in

echo "--------------"
...
echo "--------------"

ein.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 7:00:30 AM1/16/22
to
Am 16.01.2022 um 12:21 schrieb Marcus Röckrath:
> Hallo Matthias,
> Mal vielleicht so:
>
> echo "$tecopt"
> rsync --exclude-from=/root/backup.exclude -a --delete "$tecopt"
>

Damkit klappt es!

Testscript:

#!/bin/bash
echo Aufruf mit Parameter als Variable:
tecopt=--rsync-path="sudo rsync"
echo $tecopt
rsync --exclude-from=/root/backup.exclude -a --delete "$tecopt"
p...@192.168.227.115:/etc/ /mnt/test/ -v

echo Aufruf mit Parameter in Zeile:

rsync --exclude-from=/root/backup.exclude -a --delete --rsync-path="sudo
rsync" p...@192.168.227.115:/etc/ /mnt/test2/ -v

Ausgaben:

gondwana 2.8.25 # ./backup-wrapper.sh
Aufruf mit Parameter als Variable:
--rsync-path=sudo rsync
receiving incremental file list

sent 216 bytes received 58,888 bytes 10,746.18 bytes/sec
total size is 1,815,556 speedup is 30.72
Aufruf mit Parameter in Zeile:
receiving incremental file list

sent 216 bytes received 58,888 bytes 16,886.86 bytes/sec
total size is 1,815,556 speedup is 30.72


Habe das mal im BackupScript auch in Hochkomma gesetzt ($tecopt), aber
das reicht noch nicht. Da kommen noch Fehler:

Backup is running, please wait.
[--rsync: -a --delete --rsync-path="sudo rsync": unknown option
rsync error: syntax or usage error (code 1) at main.c(1762) [client=3.2.3]
- 6 Sec.]

Nun kommt es wohl auf die Schreibweise bzw. Übergabe von der Konfig in
die tecopt Variable an...

Gruß
MAtthias

Marcus Röckrath

unread,
Jan 16, 2022, 7:30:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>> Mal vielleicht so:
>>
>> echo "$tecopt"
>> rsync --exclude-from=/root/backup.exclude -a --delete "$tecopt"
>
> Damkit klappt es!
>
> Testscript:
>
> #!/bin/bash
> echo Aufruf mit Parameter als Variable:
> tecopt=--rsync-path="sudo rsync"
> echo $tecopt
> rsync --exclude-from=/root/backup.exclude -a --delete "$tecopt"
> p...@192.168.227.115:/etc/ /mnt/test/ -v
>
> echo Aufruf mit Parameter in Zeile:
>
> rsync --exclude-from=/root/backup.exclude -a --delete --rsync-path="sudo
> rsync" p...@192.168.227.115:/etc/ /mnt/test2/ -v

Du siehst, welchen Spaß man mit " haben kann.

Ich werde nun aber nicht vorschnell " im rsync-Aufruf in backup.create
setzen, da ich mir über andere Nebenwirkungen nicht klar bin.

Da es vorläufig keine neue neuen Versionen des Paketes geben wird, kannst du
das bitte mal an den zwei betroffenen Stellen im Skript für dich so setzen
und dann mal im Dauerbetrieb nutzen.

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.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 7:35:29 AM1/16/22
to
Am 16.01.2022 um 12:43 schrieb Marcus Röckrath:
> Hallo Matthias,
>
> Kapsele mal die Zeile 408 in backup.create in
>
> echo "--------------"
> ...
> echo "--------------"
>
> ein.
>
das ist bei mir ein einzelnes "fi"...das geht bestimmt schief.
Was ist dein Plan? Willst Du die Variable extern setzen und gucken ob
das Script dann läuft?

Matthias Prill

unread,
Jan 16, 2022, 7:44:37 AM1/16/22
to
Am 16.01.2022 um 13:25 schrieb Marcus Röckrath:

> Du siehst, welchen Spaß man mit " haben kann.
ohja :)

> Da es vorläufig keine neue neuen Versionen des Paketes geben wird, kannst du
> das bitte mal an den zwei betroffenen Stellen im Skript für dich so setzen
> und dann mal im Dauerbetrieb nutzen.
>
> Zeile 470: "$tecopt2"
> Zeile 476: "$tecopt"
ist bei mir 475 aber habe ich gesetzt...
>
>> 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.
Damit steht in der Konfigdatei dies:
BACKUP_3_TEC_RSYN='-a --delete --rsync-path="sudo rsync"'
>

wäre ja zu schön gewesen...
Hier die Ausgabe mit den oben beschriebenen Änderungen:

Backup p...@192.168.227.115:/etc, tec: rsyn, size: not available for ssh
backups
Backup is running, please wait.
[---rsync: -a --delete --rsync-path="sudo rsync": unknown option
rsync error: syntax or usage error (code 1) at main.c(1762) [client=3.2.3]
- 8 Sec.]
Backup finished!

Es ist schon zum Verzweifeln...

Gruß
Matthias

Matthias Prill

unread,
Jan 16, 2022, 8:41:09 AM1/16/22
to
Am 16.01.2022 um 13:25 schrieb Marcus Röckrath:
> Hallo Matthias,
> Ich werde nun aber nicht vorschnell " im rsync-Aufruf in backup.create
> setzen, da ich mir über andere Nebenwirkungen nicht klar bin.
>
> Da es vorläufig keine neue neuen Versionen des Paketes geben wird, kannst du
> das bitte mal an den zwei betroffenen Stellen im Skript für dich so setzen
> und dann mal im Dauerbetrieb nutzen.
>
> 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...
Aber ich konnte es mit dem Wrapperscript und der Übergabe der Parameter
darin mit $* lösen.
Damit kann ich sichern.
Mal sehen, was die nächtliche Sicherung heute bringt...

Gruß
Matthias

Marcus Röckrath

unread,
Jan 16, 2022, 9:30:02 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>> Kapsele mal die Zeile 408 in backup.create in
>>
>> echo "--------------"
>> ...
>> echo "--------------"
>>
>> ein.
>>
> das ist bei mir ein einzelnes "fi"...das geht bestimmt schief.
> Was ist dein Plan? Willst Du die Variable extern setzen und gucken ob
> das Script dann läuft?

Tippfehler 404, die

tecopt=$7

Zeile umrahmen.

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 9:30:02 AM1/16/22
to
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\"

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 16, 2022, 9:40:03 AM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

> - es darf nur der --rsync-path Teil drin sein. Andere Parameter wie -a
> und --delete dürfen nicht drin sein, sonst klappt es nicht

Wie mein Skriptbeispiel zeigt, sieht rsync mit den Anführungszeichen die
Optionskette als eine einzelne Option, du dürftest nämlich wohl auch auf
der Kommandozeile nicht

rsync "-a --delete ..."

schreiben.

Mir scheint die Lösung mit dem Wrapper auf dem raspi die einzig sinnvoll
gangbare Lösung zu sein.

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 16, 2022, 9:55:44 AM1/16/22
to
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

Marcus Röckrath

unread,
Jan 16, 2022, 2:40:03 PM1/16/22
to
Hallo Matthias,

Matthias Prill wrote:

>> Hier wird die eigentlich aus 3 Optionen bestenhende Zeile in 4 Optionen
>> zerlegt, womit eben --rsync-path="sudo rsync" z. B. in
>>
>> --rsync-path="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...

Auf der Kommandozeile interpretiert die Bash die "" als Klammerung und
übergäbe 3 Parameter; im Skript ist das ein String, in dem die " ganz
normale Zeichen - wie jedes andere - sind.

--
Gruß Marcus
[eisfair-Team]

Marcus Röckrath

unread,
Jan 17, 2022, 12:30:02 AM1/17/22
to
Hallo,

Marcus Röckrath wrote:

>>> 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...
>
> Auf der Kommandozeile interpretiert die Bash die "" als Klammerung und
> übergäbe 3 Parameter; im Skript ist das ein String, in dem die " ganz
> normale Zeichen - wie jedes andere - sind.

Hier noch eine andere Version: Dem Testskript die Kommandozeile übergeben
und einmal die Parameter sofort zerlegt (wie sie die Bash dem Programm
darreicht) und dann über die Unterfunktion:

eis # ./b -a --delete --rsync-path="sudo rsync"

als Kommandozeilenparameter ueber backup
Anzahl Parameter: 4 1. Parameter: -a
Anzahl Parameter: 4 2. Parameter: --delete
Anzahl Parameter: 4 3. Parameter: --rsync-path=sudo
Anzahl Parameter: 4 4. Parameter: rsync


als Kommandozeilenparameter direkt
Anzahl Parameter: 3 1. Parameter: -a
Anzahl Parameter: 3 2. Parameter: --delete
Anzahl Parameter: 3 3. Parameter: --rsync-path=sudo rsync

--
Gruß Marcus
[eisfair-Team]

Matthias Prill

unread,
Jan 17, 2022, 12:29:35 PM1/17/22
to
ja, das denke ich auch. Zumindest hat es gestern funktioniert und die
Datensicherung ist ordnungsgemäß gelaufen.
Vielen Dank für Deine Bemühungen!!! ..und dann auch noch am Sonntag :-)

Gruß
Matthias
0 new messages