
Cenário:
- Grave conteúdo usando a câmera no cartão CF.
- Copie o conteúdo do cartão CF para o HD local na pasta nomeada (por exemplo, 20120311-D01). Não me importo de mudar o script para atualizar o nome que desejo usar, não precisa ser uma pasta com nome automático.
- Copie o conteúdo da pasta HD local para USB HD (segunda cópia).
- Limpe o 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 robocopy para as etapas 2 e 3. O benefício adicional foi que a etapa três foi configurada para ser uma operação de espelho (sincronização/atualização), portanto, se eu tivesse tempo para fazer o pós-processamento de fotos ou vídeos, poderia executar novamente e sincronizaria apenas os arquivos alterados.
Sou novo no OSX e minhas poucas habilidades de pesquisa revelaram-se usando possivelmente "idem" ou "rsync" e me disseram para pesquisar "cloner de cópia carbono" e "superduper".
Resumindo, gostaria de um método simples para copiar o conteúdo do meu cartão CF para o meu Macbook Air e, em seguida, uma segunda cópia para uma unidade USB externa por segurança.
Responder1
Normalmente faço rsync -av /home/source/folder/here /Volumes/Disk1/destination/folder/here em meus scripts com rsync e, para agendamento, uso o Lingon. O Crontab realmente não estava funcionando para mim, mas o Lingon funciona o tempo todo. Encontrei um download gratuito da GPL 2.2 e funciona perfeitamente para mim, mas você pode até comprar a versão 3 diretamente na Mac App Store por US$ 3. Lembre-se de que todas as unidades de rede e unidades USB/Firewire conectadas estão no diretório /Volumes como sua própria pasta. Espero que isto ajude!
Responder2
A primeira coisa que você provavelmente deveria tentar seriaAvelã. 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 CF for montado (ou alguns arquivos nele forem modificados), você pode salvar uma lista de propriedades como esta, 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>