Scripting de operación de copia repetida de archivos para copia de seguridad de contenido OSX

Scripting de operación de copia repetida de archivos para copia de seguridad de contenido OSX

Guión:

  1. Grabe contenido usando la cámara en la tarjeta CF.
  2. Copie el contenido de la tarjeta CF al disco duro local en la carpeta denominada (por ejemplo, 20120311-D01). No me importa cambiar la secuencia de comandos para actualizar el nombre que quiero usar, no tiene que ser una carpeta con nombre automático.
  3. Copie el contenido de la carpeta HD local a USB HD (segunda copia).
  4. Purgar tarjeta CF.

He actualizado mi kit de viaje para que sea MacBook Air en lugar del sistema Windows que usaba anteriormente. En la configuración anterior, utilicé secuencias de comandos de robocopy para los pasos 2 y 3. El beneficio adicional fue que el paso tres se configuró para ser una operación reflejada (sincronización/actualización), de modo que si tenía tiempo para posprocesar fotos o videos, podía volver a ejecutarlos. y solo sincronizaría los archivos modificados.

Soy nuevo en OSX y mis pobres habilidades de investigación aparecieron usando posiblemente "ídem" o "rsync" y me dijeron que buscara "clonador de copias" y "superduper".

En resumen, me gustaría un método simple para copiar el contenido de mi tarjeta CF a mi Macbook Air y luego una segunda copia a una unidad USB externa por seguridad.

Respuesta1

Normalmente hago rsync -av /home/source/folder/here /Volumes/Disk1/destination/folder/here en mis scripts con rsync, y para programar uso Lingon. Crontab realmente no estaba funcionando para mí, pero Lingon funciona todo el tiempo. Encontré una descarga gratuita de GPL 2.2 y me funciona perfectamente, pero incluso puedes comprar la versión 3 directamente desde la Mac App Store por $3. Recuerde que todas las unidades de red, las unidades USB/Firewire conectadas están en el directorio /Volumes como su propia carpeta. ¡Espero que esto ayude!

Respuesta2

Lo primero que probablemente deberías intentar seríaColor avellana. También puedes intentar modificar un 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 ejecutarlo siempre que se monte el volumen CF (o se modifiquen algunos archivos), puede guardar una lista de propiedades como esta, por ejemplo, ~/Library/LaunchAgents/com.superuser.411351.plisty cargarla con 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>

información relacionada