Thread zur Backup-FAQ

maceis schrieb:
@ruerueka

Du könntest einen Ordner auf deiner Linux Kiste freigeben (z.B. mit Samba oder NFS).
Dort könntest auf ein SPARSE Image (also ein mitwachsendes Image) anlegen.
Am iBook mountest Du das Image und schreibst da hinein die Daten (Eigentümer ignorieren darf im Info Fenster nicht aktiviert sein).

Das sollte eigentlich klappen.

---------------------

Das klappt super - vielen Dank!

Da ich selbst suchen musste:
Das sparse image habe ich auf der Konsole erzeugt mit:

hdiutil create -size 10g -type SPARSE -fs HFS+ backupimage

wobei 10g die Max. Größe ist und backupimage der Name der Imagedatei

Nachtrag:
Habe eben noch eine Einschränkung festgestellt: bei 2GB ist trotz anderer Einstellung Schluß, ist ja auch logisch, da das auf meinem pc drunterliegende ReiserFS nicht mehr unterstützt. Werde wohl auf SuSE10 gehen müssen und den dort eingebauten HSF+ Support testen. Aber wenigstens hab ich vorerst keine Probleme mehr mit langen Dateinamen und Umlauten.
 
Zuletzt bearbeitet:
Lofgard schrieb:
Das einfachste ist wohl, ich nehme auch mal vi. Habe jetzt nur das gefunden: http://macvim.org/OSX/index.php Eine suche im Internet oder einschlägigen Foren nach vi ist natürlich witzig (nur übertroffen von einer Suche nacht Texteditor).

Du hast vi doch schon auf dem System:
Terminal öffnen (d.h. du musst auf der Kommandozeile arbeiten) und eingeben vi /Pfad/zur/Datei/Dateiname

Anleitungen zu vi gibt es viele, hier eine zufällig gewählte auf deutsch:
http://www.hdm-stuttgart.de/~sr034/linux/zip/vi.htm
 
Zuletzt bearbeitet von einem Moderator:
sync_mail funktioniert leider nicht bei mir

Hallo sheep,

als blutiger Unix-Anfänger habe ich Deine Anleitung zum Abgleichen zweier Mail-Verzeichnisse ausprobiert und bin leider nicht zum Erfolg gekommen. Wie vorgegeben habe ich die sync_mail-Datei auf meinem PB erzeugt, auf dem Desktop liegt das Home-Verzeichnis meines per Airport verbundenen iMacs. Nach Eingabe von ./sync_mail erscheint folgender Text im Terminal:

building file list ... rsync: link_stat "/Users/snyder/Desktop/$HOME/Library/Mail/." failed: No such file or directory (2)
done

sent 25 bytes received 20 bytes 90.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-20/rsync/main.c(717)
building file list ... done
rsync: mkdir "/Users/snyder/Desktop/$HOME/Library/Mail" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at /SourceCache/rsync/rsync-20/rsync/main.c(396)
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-20/rsync/io.c(359)

Was geht hier nicht? Ich würde mich sehr über Hilfe freuen!
 
Das Verzeichnis scheint falsch zu sein.

Das muss heissen: $HOME/Library/Mail und nicht "/Users/snyder/Desktop/$HOME/Library/Mail

Zum Verständnis: $HOME wird von der Bash nach /Users/synder/ expandiert und liegt keineswegs auf dem Schreibtisch (auch wenn gelegentlich diese Illusion entstehen kann, weil die Festplatte auf dem Schreibtisch angezeigt wird), was du gemacht hast, hiesse also komplett so:

/Users/snyder/Desktop/Users/snyder/Library/Mail

Ein solches Verzeichnis gibt es natürlich nicht, daher die Fehlermeldung.

Ersetze einfach den Pfad durch den o.g., danach sollte das ohne Probleme durchlaufen. Vergiss ggf. auch nicht, das Ziel anzupassen, falls das vielleicht auch falsch ist.
 
Irgendwas mache ich wohl noch falsch...

Von vorne: ich erzeuge mit TextEdit die Datei "sync_mail" auf dem Schreibtisch; sie hat folgenden Inhalt:

#!/bin/sh

#Variablen fuer die Pfade
declare quelle='$HOME/Library/Mail'
declare ziel='Volume/snyder/Library/Mail'

#Synchronisation ausführen
/usr/bin/rsync -avE $quelle/ $ziel/
/usr/bin/rsync -avE $ziel/ $quelle/

Dann öffne ich Terminal und tippe folgende Befehle:
cd Desktop (Return)
chmod +x sync_mail

Dann tippe ich den Befehl ./sync_mail
worauf das System mir die bereits erwähnten Fehlertexte zurückgibt:

Snyders-PB:~/Desktop snyder$ ./sync_mail
building file list ... rsync: link_stat "/Users/snyder/Desktop/$HOME/Library/Mail/." failed: No such file or directory (2)
done
rsync: mkdir "/Users/snyder/Desktop/Volume/snyder/Library/Mail" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at /SourceCache/rsync/rsync-20/rsync/main.c(396)
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-20/rsync/io.c(359)
building file list ... rsync: link_stat "/Users/snyder/Desktop/Volume/snyder/Library/Mail/." failed: No such file or directory (2)
done
rsync: mkdir "/Users/snyder/Desktop/$HOME/Library/Mail" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at /SourceCache/rsync/rsync-20/rsync/main.c(396)
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-20/rsync/io.c(359)
Snyders-PB:~/Desktop snyder$

Snyders-PB ist der Computername und snyder der User (Admin in meinem Fall)

Wär super, wenn doch was ginge. Diese Art zu syncen wäre für mich quasi ne Killer-Applikation!
 
Dann scheint der Fehler nicht bei dir zu liegen, sondern $HOME irgendwie falsch expandiert zu werden.

Versuche es mal so, um das Problem zu umgehen:

Code:
#!/bin/sh

#Variablen fuer die Pfade
declare quelle='/Users/snyder/Library/Mail'
declare ziel='/Volumes/snyder/Library/Mail'

#Synchronisation ausführen
/usr/bin/rsync -avE $quelle/ $ziel/
/usr/bin/rsync -avE $ziel/ $quelle/

Achtung: Dein Ziel "Volume/snyder" ist falsch, das muss heissen "/Volumes/snyder", also mit Slash "/" am Anfang und kleinem "s" am Ende von "Volume".
 
Das PB rattert und rattert vor sich hin... lebt es? Die Synchronisation scheint zu funktionieren!!! Heissen Dank!
 
Nach erfolgtem Sync nun erste Ergebnisse:

1. Vom PB aus den Sync gestartet - sichtbares Ergebnis: keines - Mailbestand auf dem Book wie vorher (der hat sich bis auf ein paar aktuelle Mails auch nicht groß unterschieden vorher, aber die paar aktuellen vom iMac sind nicht auf dem Powerbook gelandet - jedenfalls nicht per Aufruf des Programms Mail zu entdecken (muss hier vielleicht irgendwas neu gestartet werden?))
2. Nochmal den Befehl gestartet - jetzt sind sämtliche Mails in einem meiner sechs Postfächer (keine Unterordner) verschwunden - Mail möchte, dass ich sie mir neu vom Server hole - also die Liste mit den Headern ist noch da...
3. Ein dritter Durchlauf bringt nichts weiter.

Nanu? Was stimmt jetzt nicht?
 
Das kann nicht klappen:
Code:
declare quelle='$HOME/Library/Mail'
es muss heissen:
Code:
declare quelle="$HOME/Library/Mail"
oder
Code:
declare quelle=$HOME'/Library/Mail'
 
Vielen Dank schon mal für die Hilfe - bislang hat's aber noch nicht richtig geklappt. Liegt es womöglich daran, dass beide Rechner nicht genau identische Ordnerstrukturen innerhalb des Programms Mail haben?

Ich habe jetzt diverse, vom iMac übernommene, allerdings auf dem PB leere Ordner, mein einer Account bzw. dessen Posteingang ist immer noch leer.
 
Für mal folgende Kommando im Terminal aus, und schau dann in den Zielordner:
Code:
rsync -avE /Users/snyder/Library/Mail/ /Volumes/snyder/Library/Mail
 
maceis schrieb:
Das kann nicht klappen:
Code:
declare quelle='$HOME/Library/Mail'
es muss heissen:
Code:
declare quelle="$HOME/Library/Mail"
oder
Code:
declare quelle=$HOME'/Library/Mail'
Oh-oh, das geht dann wohl auf mein Konto. Da scheint sich ein systematischer Fehler in meine Anleitung eingeschlichten zu haben.

Sorry an alle, bei denen es deswegen nicht richtig funktioniert hat, ich werde das umgehend ändern!
 
Frage bzw Hinweis zum Script:

Du Deklarierst Quelle & Ziel fest in die Scriptdateien!

Warum machst es nicht einfach per Variable z.B.:

Code:
#Variablen fuer die Pfade
declare quelle="$1"
declare ziel="$2"

dies hätte beim script für einzelne Ordner den Vorteil dass du Quelle und Ziel als parameter angibst zb mit
Code:
einzelbackup.sh /Users/truster/ /Volumes/backup
Erklärung:
einzelbackup.sh = $0
/Users/Truster/ = $1
/Volumes/backup = $2

Somit würde sich auch ein guter USAGE parameter implementieren lassen

.... nur so ein Gedanke von mir :D
 
Zuletzt bearbeitet:
Und hier noch ein Beispiel-Script das ich auf die schnelle zusammengeschurstert habe zum Floppy kopieren unter FreeBSD

Schlagt mich :D
Code:
#!/bin/sh
#DCP by Truster
version="V 2.0beta3"
PN=`basename "$0"`
FLOPPY=$1	

Usage () {
	echo "$PN - DiskDuplicator $version (c) 2002 by Truster"
	echo "Usage: $PN <device> e.g. $PN /dev/fd0"
	echo " "
	exit
}

if [ "$FLOPPY" = "" ]
then Usage
fi

CKFSTAB=`cat /etc/fstab | grep $FLOPPY | wc -l`
if [ $CKFSTAB -eq 1 ]
	then
	echo " "
	echo "$PN - DiskDuplicator $version (c) 2002 by Truster"
	echo "Visit www.chatfreak.at"
	echo "--------------------------------------------------------------"
	echo -n "Prepare System for Diskcopy..."

	look=`mount | grep $FLOPPY | wc -l`
	if [ $look -eq 1 ]
		then
		umount $FLOPPY 2> /dev/null
	fi
	lookmore=`mount | grep $FLOPPY > /dev/null 2>&1 | wc -l`
	if [ $lookmore -eq 1 ]
		then
		echo "failed"
		echo "FATAL ERROR: UNLABE TO UNMOUNT :-("
		echo "maybe $FLOPPY is still in use"
		echo "Please unmount $FLOPPY manually!"
		exit
		fi
	echo "Done!"
	rm -fr /tmp/diskcopy.image 
	echo -n "Insert SOURCE disk in $FLOPPY and hit <RETURN>. To abort press CTRL+C"  
	read Response

	echo "Reading Disk in $FLOPPY - Please wait..."
	dd conv=noerror if=$setdev of=/tmp/diskcopy.image

	echo -n "Insert TARGET disk in $FLOPPY and hit <RETURN>. To abort press CTRL+C"
	read Response

	echo "Writing Disk in $FLOPPY - Please Wait..."
	dd conv=noerror if=/tmp/diskcopy.image of=$FLOPPY
	echo "Cleaning up..."
	rm -fr /tmp/diskcopy.image
	echo "DiskCopy finished."
	exit
fi
echo "Wrong Device:$FLOPPY"
 
Zuletzt bearbeitet:
TrusterX schrieb:
Du Deklarierst Quelle & Ziel fest in die Scriptdateien!

Warum machst es nicht einfach per Variable z.B.:
In meinem Installer (siehe 1. Posting) habe ich es auch auf diese Art umgesetzt. Mein Gedanke war einfach, dass diese Variante für Terminal-Neulinge eher schwerer zu verstehen bzw. schwieriger zu erklären sein könnte - ich lasse mich aber gerne eines Besseren belehren :).
 
naja wenn jemand dein Tutoial schafft, schafft derjenige auch sicher 2 Parameter anzugeben :D
 
TrusterX schrieb:
naja wenn jemand dein Tutoial schafft, schafft derjenige auch sicher 2 Parameter anzugeben :D
Das ist wohl so, da habe ich wahrscheinlich etwas unrealistisch gedacht :). Muss mal sehen, wann ich dazu komme, all die Änderungen einzubauen. Vielen Dank jedenfalls schon mal für das Engagement von euch allen!
 
Naja du hast noch das komplizierte Windows-denken :D. Spass bei Seite: denn es hat ja noch einen Vorteil, wenn du mit parameter arbeitest: Du bietest das fertige script zum downloaden an und der User braucht es nur noch auszuführen eben mit die Parameter!

So ersparst du dem User dein Extrem-textedit-hacking-aktion :D

Und wenn jemand wirklich die Terminal-Lösung zu hardcore ist, dann kann man sicher eine Frontend für dein Script bauen, hab ich aber auf dem Mac noch nie gemacht
 
Zuletzt bearbeitet:
TrusterX schrieb:
Naja du hast noch das komplizierte Windows-denken :D.
Ganz bestimmt nicht, bevor ich einen Mac gekauft habe, habe ich über eineinhalb Jahre Linux benutzt ;).

TrusterX schrieb:
Und wenn jemand wirklich die Terminal-Lösung zu hardcore ist, dann kann man sicher eine Frontend für dein Script bauen, hab ich aber auf dem Mac noch nie gemacht
Habe ich doch schon (siehe 1. Posting). Zwar nur für's Terminal, aber immerhin, graphische Frontends sind mir dann doch zu hoch.

Das mit dem Script als Download anbieten ist allerdings auch keine schlechte Idee, wenn man das wie von dir vorgeschlagen ändert.
 
hallo,
ich wollte nun mal mein system mit der beschriebenen anleitung (zum ersten mal erstellen) synchen und erhalte folgende fehlermeldung:

rsync: writefd_unbuffered failed to write 86 bytes: phase "unknown" [receiver]: Broken pipe (32)
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-20/rsync/io.c(909)
Command terminated abnormally.
282.91 real 12.07 user 67.27 sys
No mount point for /Volumes/System_clon/System/Library/CoreServices
Can't determine mount point of '/Volumes/System_clon/System/Library/CoreServices' and ''

was ist da passiert? kann bless das verzeichnis nicht finden? aber es steigt doch scho rsync aus. das volume ist aber gelistet, wenn ich df eingebe erscheint:
/dev/disk2 160572480 69623384 90949096 43% /Volumes/RAID1
/dev/disk1s10 162523624 2230648 160292976 1% /Volumes/Oskar
/dev/disk1s12 162523624 69623504 92900120 43% /Volumes/System_clon

kann mir einer weiterhelfen? kenne mich mit unix nicht aus.
vielen dank. gruz kasp

habe den og ordner mal von hand angelegt. die fehlermeldung beschränkt sich nun auf:

rsync: writefd_unbuffered failed to write 86 bytes: phase "unknown" [receiver]: Broken pipe (32)
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-20/rsync/io.c(909)
Command terminated abnormally.
243.72 real 10.77 user 61.06 sys
 
Zuletzt bearbeitet:
Zurück
Oben Unten