rsync: fstat failed:

S

svenson1

Aktives Mitglied
Thread Starter
Dabei seit
18.07.2007
Beiträge
111
Reaktionspunkte
12
Hallo

bei mir ist folgende Zusammenstellung: ich habe einen G5 mit OSX 10.4.10 und gemountetem Linuxserver als Fileserver in /Volumes/NS4300/.

Nun habe ich mir ein Script erstellt, welches mir ein Rotationsbackup mit rsync erstellen soll. Quelle ist wie oben angegeben der Linuxserver und das Ziel ist eine zweite interne HD im G5. Die eigentliche Befehlszeile sieht wie folgt aus:

/usr/local/bin/rsync -avzE --delete $a $b/backup.0/

Nach 10 - 50GB update erhalte ich folgende Fehlermeldung:
rsync: fstat failed: No such file or directory (2)

Wenn ich ohne Option -E mache funktioniert es.

Kann mir da einer Helfen, ich weiss mir kein Rat mehr!!!

Sven
 
keine Angst, das habe ich mit Sicherheit gemacht. Auf dem zweiteren Link bin ich auch gestoßen und hatte nach dessen Anleitung die Spotlight-Funktion ausgeschalten. Am besten ist ich gebe hier das kompl. Script bekannt, da kann man es auch sehen.

Code:
#!/bin/sh

# INKREMENTELLLE BACKUPS

# Die folgenden Variablen m?ssen vom Benutzer angepasst werden

        # Zu sicherndes Verzeichnis (z.B. /Users/):
          a="/Volumes/NS4300/"

        # Verzeichnis bzw. Volume, in dem die Backups gespeicher werden sollen (z.B. /Volumes/Backup):
          b="/Volumes/Sicherung_HD"

        # Anzahl zu sichernde Versionen (z.B. 5; das Minimum ist 2!):
          c=4


# Ab hier sollte man normalerweise nichts mehr ?ndern m?ssen

# ?berpr?fen, ob das Verzeichnis $b existiert bzw. das entsprechende Volume gemountet ist - abbrechen, falls nicht
if [ -d $b ]; then
        echo "" > /dev/null
else
        exit
fi

# Funktion zum Schalten von Spotlight
spotlight_switch()
{
/usr/bin/mdutil -i $1 $a
/usr/bin/mdutil -i $1 $b
}
 
# Backup-Verzeichnisse erstellen, falls sie nicht existieren
e=$c
while [  $e -gt 0 ]; do
let e=e-1
if [ -d $b/backup.$e ]; then
        echo "" > /dev/null
else
        mkdir $b/backup.$e
fi
done

# Datum aufzeichnen (Beginn)
touch $b/backup.log
/bin/echo "Backup begonnen um:" >> $b/backup.log
/bin/date >> $b/backup.log

# Backup-Verzeichnisse rotieren
let c=c-1
d=$c
rm -rf $b/backup.$c
while [  $c -gt 1 ]; do
        let d=$c
        let c=c-1
        mv $b/backup.$c $b/backup.$d
done
let d=d-1
let c=c-1
cd $b/backup.$c && find . -print | cpio -dpl ../backup.$d

# Den eigentlichen Backup-Prozess starten
spotlight_switch off
/usr/local/bin/rsync -avzE --delete $a $b/backup.0/
spotlight_switch on

# Datum aufzeichnen (Ende)
/bin/echo "Backup beendet um:" >> $b/backup.log
/bin/date >> $b/backup.log
/bin/echo "--------------------------------------" >> $b/backup.log

# Datum von backup.0 in eine Datei sichern
/bin/date > $b/backup.0/datum

Ersteren Link habe ich mir noch nicht angeschaut, werde ich aber mit machen, dankeschön dafür.

MfG Sven
 
Zuletzt bearbeitet von einem Moderator:
Wenn Du Hilfe erwartest, solltest Du nicht unbedingt so ein langes Skript posten, sondern das Problem einkreisen, und ein möglichst kurzes, übersichtliches Skript posten, das den Fehler/das Problem demonstriert.
Da stehen di Chancen besser, dass das auch jemand liest.
 
Wenn Du Hilfe erwartest, solltest Du nicht unbedingt so ein langes Skript posten, sondern das Problem einkreisen, und ein möglichst kurzes, übersichtliches Skript posten, das den Fehler/das Problem demonstriert.
Da stehen di Chancen besser, dass das auch jemand liest.

Find ich nicht. Sooo lang ist das ja wohl auch nicht, und 90% von dem script gehen für irgendwelche nummerungsschleifen drauf.

Meiner Meinung nach sieht das alles gut aus. Ich mein, ... wenns ja eh mittem im backup abbricht, bei 10GB von 50gb, muss es *irgendwas* mit dem rsync zu tun haben. Somit steckt der fehler nicht im script sondern in dem programm..


Weiterhelfen kann ich dir leider auch nicht. Hast du mal probiert das spotlight auszuschalten und einfach manuel ein rsyn anzustoßen?! Ich meine, ist unwahrscheinlich, dass dies jetzt ganz durchläuft, aber nach der MacOSXhints.com Seite sollte das ja funktionieren. Auch wenn das schon in Deinem Script untergebracht ist ./
Also kurz: ka! ich hab auch mal nach dem fehler gegoogled, nichts großartiges gefunden.
 
Also ich finde ja auch, dass das Script nicht gerade Umfangreich ist aber gut, da ich die Spotlight-Geschichte mit eingebunden habe, habe ich eben gleich das kompl. Script gepostet.

Der Fehler, wie xentric schon gesagt hat, liegt am rsync-Befehl. Wenn ich die Option -E entferne, läuft das Backup sauber durch. Ich versehe eben nicht, warum die Spotlight Deaktivierung nichts bringt:mad:

Hat nicht doch noch jemand eine Idee, ich komme nicht weiter:confused:

Sven
 
Kennt sich denn hier wirklich keiner mit dem rsync-Befehl aus???
:confused: :confused: :confused: :confused: :confused:

Sven
 
Ja, was willst Du denn noch hören.. ?

Das ist:

a) liegt es an dem Spotlight, und das der Damon mit den vielen dateiänderen/zugriffen anscheinend nicht zurecht kommt
b) eine Mac OS X Kiste.
c) liegt es nicht an rsync
d) weißt du, wie mans umgehen kann..


Also, ist alles geklärt. Was willst du jetzt noch hören ;)?
 
Das Problem mit der Fehlermeldung ist noch nicht geklärt. Einziger Hinweis im Netz ist die Spotlightdeaktivierung auf der Macosxhints-Seite, die ich aber auch schon vor Eröffnung dieses Themas hier gefunden und ins Script eingearbeitet habe. Die Fehlermeldung bleibt aber, nur wenn ich Option -E beim rsync entferne funktioniert es, aber die braucht man nun mal zwecks der resource forks.

Also?
 
Ich sage jetzt mal auf die Schnelle:
spotlight_switch funktioniert nicht.
Mach doch mal vor/nach rsync direkt mit mdiutil -i off/on ...
 
ok, versuche ich mal. Obwohl ich sagen muss, das beim Start des Script´s Meldungen für die Deaktivierung von Spotlight kamen. Aber ich versuche es, Danke erstmal für den Tip, ich melde mich, ob´s einen Erfolg gab oder nicht.

Sven
 
So, ich glaube es funktioniert :)

Ich habe das Script wie folgt abgeändert:

# Funktion zum Schalten von Spotlight
spotlight_switch()
{
/usr/bin/mdutil -i $1 /
/usr/bin/mdutil -i $1 /Volumes/NS4300
/usr/bin/mdutil -i $1 /Volumes/Sicherung_HD
}


Ich habe da nicht die Variablen eingesetzt sondern direkte Pfade angegeben und den letzten "/" weggelassen.
Jeden falls disabled er das Indexing zu beginn und am Ende macht er ein enabled und alle Daten sind übertragen.

Danke an alle!!!
Sven
 
So, ich glaube es funktioniert :)
... den letzten "/" weggelassen.
Sven

Glückwunsch.
Beim rsync selbst gibt's auch 'nen "kleinen" Unterschied, ob "/" am Ende oder nicht.
Steht aber im man ausführlich beschrieben.
Aber wenn's jetzt läuft... :)
 
Zurück
Oben Unten