Skrypty powtarzające się operacje kopiowania plików dla kopii zapasowej zawartości OSX

0

Scenariusz:

  1. Nagrywaj zawartość za pomocą aparatu na kartę CF.
  2. Skopiuj zawartość karty CF na lokalny HD w nazwanym folderze (np. 20120311-D01). Nie mam nic przeciwko zmianie skryptu, aby zaktualizować nazwę, której chcę używać, nie musi to być folder o automatycznej nazwie.
  3. Skopiuj zawartość lokalnego folderu HD na USB HD (druga kopia).
  4. Wyczyść kartę CF.

Zaktualizowałem mój zestaw podróżny, aby był MacBookiem Air, a nie systemem Windows, z którego wcześniej korzystałem. W poprzedniej konfiguracji korzystałem ze skryptów robocopy dla kroków 2 i 3. Dodatkową korzyścią było to, że krok trzeci był skonfigurowany jako operacja dublowania (synchronizacja / aktualizacja), więc jeśli miałbym czas na przetwarzanie zdjęć lub filmów, mógłbym ponownie uruchomić i zsynchronizuje tylko zmienione pliki.

Jestem nowy w OSX, a moje słabe umiejętności badawcze pojawiły się przy użyciu „ditto” lub „rsync” i powiedziano mi, żebym szukał „klonera kopii węglowej” i „superdupera”.

Krótko mówiąc, chciałbym w prosty sposób skopiować zawartość mojej karty CF na komputer Macbook Air, a następnie drugą kopię na zewnętrzny dysk USB w celu zapewnienia bezpieczeństwa.

Walinmichi
źródło
Wygląda na to, że rsync powinien mieć funkcje, których szukam.
Walinmichi,

Odpowiedzi:

0

Zwykle robię rsync -av / home / source / folder / here / Volumes / Disk1 / destination / folder / tutaj na moich skryptach z rsync, a do planowania używam Lingona. Crontab tak naprawdę dla mnie nie działał, ale Lingon cały czas pracuje. Znalazłem bezpłatne pobieranie GPL w wersji 2.2 i działa dla mnie idealnie, ale możesz nawet kupić wersję 3 bezpośrednio z Mac App Store za 3 USD. Pamiętaj, że wszystkie dyski sieciowe, podłączone dyski USB / Firewire znajdują się w katalogu / Volumes jako własny folder. Mam nadzieję że to pomoże!

kohortq
źródło
Rsync to proste rozwiązanie, które jest najbliższe robocopy w systemie Windows. Dzięki!
Walinmichi,
0

Pierwszą rzeczą, którą prawdopodobnie powinieneś spróbować, jest Hazel . Możesz także spróbować zmodyfikować taki skrypt powłoki.

#!/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/"

Aby uruchomić go za każdym razem, gdy wolumin CF jest montowany (lub niektóre pliki na nim są modyfikowane), możesz zapisać taką listę właściwości jak na przykład ~/Library/LaunchAgents/com.superuser.411351.plisti załadować ją 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>
Lri
źródło