Script de operação repetida de cópia de arquivo para 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 o HD local na pasta nomeada (por exemplo, 20120311-D01). Não me importo de alterar o script para atualizar o nome que quero 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. Limpe o cartão CF.

Atualizei meu kit de viagem para o MacBook Air e não para o sistema Windows que eu usei anteriormente. Na configuração anterior, usei scripts de 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 foto ou vídeo, poderia executar novamente e sincronizaria apenas os arquivos alterados.

Eu sou novo no OSX e minhas poucas habilidades de pesquisa apareceram usando possivelmente "idem" ou "rsync" e me disseram para procurar em "carbon copy cloner" e "superduper".

Em resumo, eu 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.

Walinmichi
fonte
Parece que o rsync deve ter os recursos que estou procurando.
Walinmichi

Respostas:

0

Normalmente, faço rsync -av / home / source / folder / here / Volumes / Disk1 / destination / folder / here nos 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 da versão 2.2 e funciona perfeitamente bem 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, unidades USB / Firewire conectadas estão no diretório / Volumes como sua própria pasta. Espero que isto ajude!

cohortq
fonte
O rsync é a solução simples mais próxima da robocopy no Windows. Obrigado!
Walinmichi
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 CF estiver montado (ou alguns arquivos nele forem modificados), você poderá salvar uma lista de propriedades como esta, por exemplo, ~/Library/LaunchAgents/com.superuser.411351.pliste carregá-la 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
fonte