
Szenario:
- Zeichnen Sie Inhalte mit der Kamera auf der CF-Karte auf.
- Kopiere den Inhalt der CF-Karte auf die lokale Festplatte in einen benannten Ordner (z. B. 20120311-D01). Ich habe nichts dagegen, das Skript zu ändern, um den gewünschten Namen zu aktualisieren. Es muss kein automatisch benannter Ordner sein.
- Kopieren Sie den Inhalt des lokalen HD-Ordners auf die USB-HD (zweite Kopie).
- CF-Karte leeren.
Ich habe mein Reiseset auf ein MacBook Air aktualisiert und nicht auf das Windows-System, das ich vorher verwendet habe. Im vorherigen Setup habe ich für die Schritte 2 und 3 Robocopy-Skripte verwendet. Der zusätzliche Vorteil war, dass Schritt 3 als Spiegelvorgang (Synchronisieren/Aktualisieren) eingerichtet war. Wenn ich also Zeit für die Nachbearbeitung von Fotos oder Videos hatte, konnte ich ihn erneut ausführen und es wurden nur die geänderten Dateien synchronisiert.
Ich bin neu bei OSX und aufgrund meiner mangelnden Recherchefähigkeiten habe ich möglicherweise „ditto“ oder „rsync“ verwendet und mir wurde gesagt, ich solle mir „Carbon Copy Cloner“ und „Superduper“ ansehen.
Kurz gesagt, ich hätte gerne eine einfache Methode, um den Inhalt meiner CF-Karte auf mein MacBook Air zu kopieren und dann aus Sicherheitsgründen eine zweite Kopie auf ein externes USB-Laufwerk zu erstellen.
Antwort1
Normalerweise führe ich in meinen Skripten mit rsync rsync -av /home/source/folder/here /Volumes/Disk1/destination/folder/here aus und verwende Lingon zur Planung. Crontab hat bei mir nicht wirklich funktioniert, aber Lingon funktioniert immer. Ich habe einen kostenlosen GPL-Download von 2.2 gefunden und es funktioniert bei mir einwandfrei, aber Sie können Version 3 sogar direkt im Mac App Store für 3 $ kaufen. Denken Sie daran, dass sich alle Netzwerklaufwerke und angeschlossenen USB-/Firewire-Laufwerke als eigener Ordner im Verzeichnis /Volumes befinden. Hoffe, das hilft!
Antwort2
Das erste, was Sie wahrscheinlich versuchen sollten, wäreHasel. Sie können auch versuchen, ein Shell-Skript wie dieses zu ändern.
#!/bin/bash
dir1=/Volumes/CF/Photos
[[ ! -e "$dir1" ]] && exit
dir2=~/"Pictures/Photos"
mkdir -p "$dir2"
i=1
date="$(date +%Y%m%d)"
target="$dir2/$date-D$(printf %02d $i)"
while [[ -e "$target" ]]; do
((++i))
target="$dir2/$date-D$(printf %02d $i)"
done
mkdir "$target"
mv "$dir1" "$target"
echo "Moved $dir1/ to $target/"
dir3="/Volumes/Backup/Photos"
[[ ! -e "$dir3" ]] && exit
rsync -a "$dir2" "$dir3"
echo "Copied $dir2/ to $dir3/"
Um es jedes Mal auszuführen, wenn das CF-Volume gemountet wird (oder einige Dateien darauf geändert werden), können Sie beispielsweise eine Eigenschaftenliste wie diese speichern ~/Library/LaunchAgents/com.superuser.411351.plist
und sie mit laden launchctl load ~/Library/LaunchAgents/com.superuser.411351.plist
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.superuser.411351</string>
<key>Program</key>
<string>/usr/bin/copyphotos</string>
<key>WatchPaths</key>
<array>
<string>/Volumes/CF/</string>
</array>
</dict>
</plist>