Pregunta

Estoy creando un script bash para hacer una copia de seguridad de mis archivos con rsync.

Todas las copias de seguridad provienen de un único directorio.Sólo quiero hacer una copia de seguridad de los archivos nuevos o modificados.

Actualmente, le estoy diciendo a rsync que haga una copia de seguridad del directorio y verifique los archivos en comparación con la última copia de seguridad.

La forma en que estoy haciendo esto es

THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current

Estoy bastante seguro de que tengo la sintaxis correcta para esto.Cada copia de seguridad se comparará con la carpeta "Actual" y se cargará solo cuando sea necesario.Luego eliminará la carpeta actual y volverá a crear el enlace simbólico a la copia de seguridad más reciente que acaba de hacer.

Recibo un error cuando ejecuto el script:

rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"

=> /Backup/current/dgs1200series_manual_310.pdf falló:Operación no soportada (45)

El sistema operativo host ejecuta el sistema de archivos HFS, que admite enlaces físicos.Estoy tratando de averiguar si hay algo más que no admite esto o si tengo un problema en mi código.

Gracias por cualquier ayuda

Editar:

Puedo crear un enlace físico en mi máquina local.También puedo crear un enlace duro en el servidor remoto (cuando se registra localmente) no puedo crear un enlace duro en el servidor remoto cuando se monta a través de AFP.Incluso si ambos archivos existen en el servidor.

Supongo que esto es una limitación de afp.

¿Fue útil?

Solución

Hay dos cosas en la página donde se destacan hombre que merece la pena:

  

Si de archivos no están ligando, vuelva a comprobar sus atributos. también                 comprobar si algunos atributos están siendo forzados fuera del de rsync                 control, como una opción que aplasta a raíz de un único montaje                 usuario, o se monta una unidad extraíble con la propiedad genéricos (tales                 OS X como de “Ignorar propiedad sobre este volumen” opción).

y

  

Tenga en cuenta que las versiones de rsync 2.6.1 antes tenían un error que podría                 Prevenir --link-dest funcione correctamente para un no-superusuario                 cuando -o se ha especificado (o implícitos en -a). Puede trabajar-en torno a                 este fallo, evitando la opción -o al enviar a un viejo rsync.

¿Tiene el "Ignorar propiedad" opción habilitada? ¿Qué versión de rsync tiene?

Además, ¿ha intentado crear manualmente un vínculo físico similar utilizando ln en la línea de comandos?

Otros consejos

En caso de que su línea de comando sea solo un ejemplo:Asegúrese de especificar siempre el directorio de destino del enlace con un absoluto nombre de ruta!Eso es algo que me llevó bastante tiempo descubrir...

No sé si este es el mismo problema, pero sé que rsync no puede sincronizar un archivo cuando el destino es una partición FAT32 y el nombre del archivo tiene un ":" (dos puntos) en el mismo. [El sistema de ficheros fuente es ext3, y el destino es FAT32]

Trate de volver a configurar el comando date de modo que no utiliza dos puntos y ver si eso hace la diferencia.

por ejemplo.

THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top