Interesse an k-sync?

14/11/2015 - 17:35 von Thomas Kaiser | Report spam
Moin,

da ich das Ganze eh grad basteln will/muß, die Frage, ob sich andere mit
einbringen wollen. Idee: Ein Sync-Tool à la CCC mit deutlich weniger
Komfort (!), das automatisiert bootbare Klone erzeugen kann. Und das
möglichst unfallfrei, d.h. durch die Kunst der Auslassung nix mitsyncen,
was problematisch wàre.

Das Tool, das die eigentliche Arbeit macht, ist natürlich rsync -- in
genau der Version 3.0.6, die Mike Bombich mit den nötigen Patches
versehen hat, damit HFS+-Kram vollwertig rumgesynct werden kann. Ziel
wàre, das einerseits aus dem laufenden System raus abfeuern zu können.
Aber eben auch aus der Recovery Partition heraus, um dann ein soz.
"ruhendes Systems" 100% sauber zu syncen. Ob letzteres geht, hab ich
noch nicht mal wirklich Ahnung.

Vorarbeiten: Mal dem CCC über die Schulter geguckt, was der eigentlich
macht. Der ruft rsync im Modus ohne "SafetyNet" (also wenn er nix
versioniert, d.h. als dummes Klon-Tool und nicht im Backup-Modus
unterwegs ist) wie folgt auf:

/Applications/Carbon Copy Cloner.app/Contents/MacOS/rsync -A -X -H --devices -p --fileflags --force-change -l -N -rtx --protect-decmpfs --numeric-ids -go --from0 --filter=._/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/com.bombich.ccc_filter.ejLZz3 --delete-during --protect-args // /Volumes/Klon

Die Exclude-Liste ist Nullbyte-terminiert in

/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/com.bombich.ccc_filter.ejLZz3

und sieht dann so aus wie in [1]. Ich würde diese Liste noch um alles
ergànzen, was auch per TimeMachine ausgeschlossen wird. Also auswerten,
was die folgenden 4 Befehle ausspucken, passend als rsync-Regelwerk
umbauen und an die --filter-Liste dranpappen:

defaults read /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions
defaults read /Library/Preferences/com.apple.TimeMachine ExcludeByPath
mdfind com_apple_backup_excludeItem = "com.apple.backupd"
defaults read /Library/Preferences/com.apple.TimeMachine SkipPaths

Ich würde das k-smart.app-Gerüst nehmen (eh nicht verkehrt, smartctl an
Bord zu haben, um damit auch noch schnell nebenher Quelle und Ziel auf
gesundheitliche Probleme abzuklopfen) und das GUI extrem rudimentàr
halten. Hauptzweck des GUIs wàre nur Auswahl von Zielplatte und dann
Anlegen eines LaunchDaemons, der stündlich làuft, dann prüft, ob
Zielplatte bzw. -Partition vorhanden ist, und wenn ja einfach drauflos
synct. Und parallel die aktuelle Filterliste samt simpel aufrufbarem
Skript nach /usr/local/bin/ kopiert, damit man als Nutzer jederzeit
seine Kiste runterfahren kann, um in die Recovery HD zu booten und von
dort aus dem Terminal heraus, das Simpelskript aufzurufen, das dann
einen 100% sauberen Sync nachzieht.

Gruss,

Thomas

[1] Das alles synct CCC 4.x _nicht_ mit:

tr '\000' '' </var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/com.bombich.ccc_filter.ejLZz3
# Internal filters
H /_CCC*
P /_CCC*
H /.com.bombich.ccc.start_time
P /.com.bombich.ccc.start_time

# Global filters
H .AppleDouble
P .AppleDouble
H .AppleDB
P .AppleDB
H .afpDeleted*
P .afpDeleted*
H .SynologyWorkingDirectory
P .SynologyWorkingDirectory
H .DocumentRevisions-V100*
P .DocumentRevisions-V100*
H .Trash/
H /.HFS+ Private Directory Data*
P /.HFS+ Private Directory Data*
H /.MobileBackups/
P /.MobileBackups/
H /.MobileBackups.trash/
P /.MobileBackups.trash/
H Library/Mobile Documents.*
P Library/Mobile Documents.*
H .Spotlight-V100/
P .Spotlight-V100/
H /.Trashes/
P /.Trashes/
H /.VolumeIcon.icns
P /.VolumeIcon.icns
H /.bzvol
P /.bzvol
H /.com.apple.NetBootX/
P /.com.apple.NetBootX/
H /.com.apple.timemachine.donotpresent
P /.com.apple.timemachine.donotpresent
H /.fileflags_compat
P /.fileflags_compat
H /.fseventsd
P /.fseventsd
H /.hotfiles.btree
P /.hotfiles.btree
H /.journal
P /.journal
H /.journal_info_block
P /.journal_info_block
H /.metadata_never_index
P /.metadata_never_index
H /.metadata_never_index_unless_rootfs
P /.metadata_never_index_unless_rootfs
H /.reenable_spotlight
P /.reenable_spotlight
H /.vol/*
P /.vol/*
H .webtmp
H Backups.backupdb/
P Backups.backupdb/
H /Library/Caches/CrashPlan
H /Library/NetBoot/.clients
H /Library/NetBoot/.sharepoint
H /Library/Application Support/Comodo/AntiVirus/Quarantine
P /Library/Application Support/Comodo/AntiVirus/Quarantine
H /Network/
H Network Trash Folder/
P Network Trash Folder/
H /PGPWDE01
P /PGPWDE01
H /PGPWDE02
P /PGPWDE02
H /System/Library/CoreServices/.disk_label*
P /System/Library/CoreServices/.disk_label*
H /System/Library/Caches/com.apple.bootstamps
P /System/Library/Caches/com.apple.bootstamps
H /System/Library/Caches/com.apple.corestorage
P /System/Library/Caches/com.apple.corestorage
H /System/Library/Caches/com.apple.coresymbolicationd
P /System/Library/Caches/com.apple.coresymbolicationd
H /System/Library/Caches/com.apple.kext.caches
P /System/Library/Caches/com.apple.kext.caches
H TheVolumeSettingsFolder
P TheVolumeSettingsFolder
H /Volumes/*
P /Volumes/*
H /automount/
P /automount/
H /cores/
H /dev/*
H /lost+found
H /net/
H /private/tmp/*
H /private/tmp/kacta.txt
P /private/tmp/kacta.txt
H /private/tmp/kactd.txt
P /private/tmp/kactd.txt
H /private/var/db/dyld/dyld_*
P /private/var/db/dyld/dyld_*
H /private/var/folders/zz/*
H /private/var/vm/*
H Saved Application State
H /private/var/db/systemstats
H /private/var/spool/qmaster
H Library/Preferences/ByHost/com.apple.loginwindow*
H $Recycle.Bin
H .Transporter Library
 

Lesen sie die antworten

#1 Thomas Kaiser
14/11/2015 - 18:09 | Warnen spam
Ingrid Kaiser schrieb in <news:
Vorarbeiten: Mal dem CCC über die Schulter geguckt, was der eigentlich
macht. Der ruft rsync im Modus ohne "SafetyNet" (also wenn er nix
versioniert, d.h. als dummes Klon-Tool und nicht im Backup-Modus
unterwegs ist) wie folgt auf:

/Applications/Carbon Copy Cloner.app/Contents/MacOS/rsync -A -X -H --devices -p --fileflags --force-change -l -N -rtx --protect-decmpfs --numeric-ids -go --from0 --filter=._/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/com.bombich.ccc_filter.ejLZz3 --delete-during --protect-args // /Volumes/Klon



Und wenn SafetyNet aktiviert ist, werden noch diese Argumente
drangehàngt:


Da drin landet dann alles, was im "nur dumm rumklonen"-Modus ansonsten
überschrieben oder gelöscht worden wàre. Filterliste siehe [1]. Das wàre
dann schon Kür, diese eher primitive Variante der Versionierung auch zu
unterstützen. Aber halte ich eigentlich für Blödsinn -- das Ziel ist
eigentlich, auf ausreichend großen TM-Platten 2 Partitionen anzulegen.
Eine so groß wie das zu sichernde System-Volume, die andere 150% vom
System-Volume. Auf die erste Partition làuft der stumpfe "1:1-Sync", auf
die zweite dann die viel sinnigeren TM-Sicherung. Dann hat man auf jedem
TM-Medium zwei bootbare Systeme: Den "1:1-Klon" (der natürlich nicht 1:1
erstellt wird, sonst gàb's Probleme mit dem Booten) fürs Bauchgefühl und
das startbare Minimalsystem auf der TM-Partition, von dem aus ein
Restore angestubst werden kann.

Gruss,

Thomas, grad amüsiert, dass der CCC bzw. eher rsync nicht durchlaufen
sondern an irgendeiner winzigen Müll-Datei komplett scheitern und die
Datei nicht etwa überspringen sondern einfach aufgeben:

-rw-r--r--@ 1 tk staff 83240 6 Sep 2005 Desktop/Müll vom Schreibtisch/Sonar.app/Contents/Resources/Sonar.icns

[1] Filterliste mit aktiviertem "SafetyNet" -- vermutlich identisch:

# Internal filters
P /*
H /_CCC*
P /_CCC*
H /.com.bombich.ccc.start_time
P /.com.bombich.ccc.start_time

# Global filters
H .AppleDouble
P .AppleDouble
H .AppleDB
P .AppleDB
H .afpDeleted*
P .afpDeleted*
H .SynologyWorkingDirectory
P .SynologyWorkingDirectory
H .DocumentRevisions-V100*
P .DocumentRevisions-V100*
H .Trash/
H /.HFS+ Private Directory Data*
P /.HFS+ Private Directory Data*
H /.MobileBackups/
P /.MobileBackups/
H /.MobileBackups.trash/
P /.MobileBackups.trash/
H Library/Mobile Documents.*
P Library/Mobile Documents.*
H .Spotlight-V100/
P .Spotlight-V100/
H /.Trashes/
P /.Trashes/
H /.VolumeIcon.icns
P /.VolumeIcon.icns
H /.bzvol
P /.bzvol
H /.com.apple.NetBootX/
P /.com.apple.NetBootX/
H /.com.apple.timemachine.donotpresent
P /.com.apple.timemachine.donotpresent
H /.fileflags_compat
P /.fileflags_compat
H /.fseventsd
P /.fseventsd
H /.hotfiles.btree
P /.hotfiles.btree
H /.journal
P /.journal
H /.journal_info_block
P /.journal_info_block
H /.metadata_never_index
P /.metadata_never_index
H /.metadata_never_index_unless_rootfs
P /.metadata_never_index_unless_rootfs
H /.reenable_spotlight
P /.reenable_spotlight
H /.vol/*
P /.vol/*
H .webtmp
H Backups.backupdb/
P Backups.backupdb/
H /Library/Caches/CrashPlan
H /Library/NetBoot/.clients
H /Library/NetBoot/.sharepoint
H /Library/Application Support/Comodo/AntiVirus/Quarantine
P /Library/Application Support/Comodo/AntiVirus/Quarantine
H /Network/
H Network Trash Folder/
P Network Trash Folder/
H /PGPWDE01
P /PGPWDE01
H /PGPWDE02
P /PGPWDE02
H /System/Library/CoreServices/.disk_label*
P /System/Library/CoreServices/.disk_label*
H /System/Library/Caches/com.apple.bootstamps
P /System/Library/Caches/com.apple.bootstamps
H /System/Library/Caches/com.apple.corestorage
P /System/Library/Caches/com.apple.corestorage
H /System/Library/Caches/com.apple.coresymbolicationd
P /System/Library/Caches/com.apple.coresymbolicationd
H /System/Library/Caches/com.apple.kext.caches
P /System/Library/Caches/com.apple.kext.caches
H TheVolumeSettingsFolder
P TheVolumeSettingsFolder
H /Volumes/*
P /Volumes/*
H /automount/
P /automount/
H /cores/
H /dev/*
H /lost+found
H /net/
H /private/tmp/*
H /private/tmp/kacta.txt
P /private/tmp/kacta.txt
H /private/tmp/kactd.txt
P /private/tmp/kactd.txt
H /private/var/db/dyld/dyld_*
P /private/var/db/dyld/dyld_*
H /private/var/folders/zz/*
H /private/var/vm/*
H Saved Application State
H /private/var/db/systemstats
H /private/var/spool/qmaster
H Library/Preferences/ByHost/com.apple.loginwindow*
H $Recycle.Bin
H .Transporter Library

Ähnliche fragen