Fazendo script de operação repetida de cópia de arquivo para o backup de conteúdo OSX

0

Cenário:

  1. Grave conteúdo usando a câmera no cartão CF.
  2. Copie o conteúdo do cartão CF para HD local na pasta nomeada (por exemplo, 20120311-D01). Não me importo de alterar o script para atualizar o nome que desejo usar, não precisa ser uma pasta com nome automático.
  3. Copie o conteúdo da pasta HD local para USB HD (segunda cópia).
  4. Limpar cartão CF.

Atualizei meu kit de viagem para ser o MacBook Air em vez do sistema Windows que usei anteriormente. Na configuração anterior, usei scripts de robocopy para as etapas 2 e amp; 3. O benefício adicional foi que a etapa três foi configurada para ser uma operação de espelhamento (sync / update), portanto, se eu tivesse tempo de fazer pós-processamento de foto ou vídeo, poderia executar novamente e sincronizar apenas os arquivos alterados.

Sou novo na OSX e minhas poucas habilidades de pesquisa apareceram usando possivelmente "idem" ou "rsync" e recebi instruções para pesquisar "clonador de cópias de carbono" e "superduper".

Em suma, eu gostaria de um método simples para copiar o conteúdo do meu cartão CF para o meu Macbook Air, em seguida, uma segunda cópia para uma unidade USB externa para segurança.

    
por Walinmichi 11.04.2012 / 22:56

2 respostas

0

Eu normalmente faço rsync -av / home / source / pasta / aqui / Volumes / Disk1 / destination / folder / here nos meus scripts com o rsync, e para agendar eu uso o Lingon. Crontab realmente não estava funcionando para mim, mas Lingon trabalha o tempo todo. Eu encontrei um download gratuito GPL de 2.2 e funciona perfeitamente bem para mim, mas você pode até comprar a versão 3 diretamente da Mac App Store por US $ 3. Lembre-se de todas as unidades de rede, unidades USB / Firewire conectadas estão no diretório / Volumes como sua própria pasta. Espero que isso ajude!

    
por 12.04.2012 / 02:10
0

A primeira coisa que você provavelmente deveria tentar seria Hazel . Você também pode tentar modificar um script de shell como este.

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

Para executá-lo sempre que o volume do CF for montado (ou alguns arquivos nele forem modificados), você poderá salvar uma lista de propriedades como por exemplo ~/Library/LaunchAgents/com.superuser.411351.plist e carregá-la com 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>
    
por 12.04.2012 / 16:08