Uso el comando rsync para hacer una copia de seguridad de los archivos de uno de mi servidor ubuntu a otra máquina ubuntu. El servidor de respaldo activa un script que usa el comando rysnc. Aquí está el comando que uso
rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete-after root @ live_server: / home / / home / live_server_backup / home >> /tmp/logfile.log 2> Y 1
live_server es ssh-able sin contraseña. Entonces funciona. Ahora el problema es con
- opción borrar después
Después de todo el archivo sincronizado. Al final puedo ver el procedimiento de eliminación skipped.logfile error es como
Error de E / S encontrado - omitiendo la eliminación del archivo
Cuando intenté encontrar el registro, se produjo un error al sincronizar el archivo
rsync: send_files no pudo abrir "/home/xyz/Desktop/PPT_session_1_context.pdf": Permiso denegado (13)
Por lo tanto, entiendo que rsync no pudo leer todos los archivos del destino por razones de seguridad, ya que está omitiendo la eliminación del archivo.
¿Hay alguna manera de hacer --delete-after work incluso si hay algún error de permiso? No quiero usar la eliminación forzada ya que será peligroso en alguna situación.
fuente
Respuestas:
Nota adicional sobre este tema:
vanished file
no debería desencadenar la condiciónIO error encountered -- skipping file deletion
, pero esto sucede a menudo cuando está creando una copia de seguridad de un sistema en vivo.Esto está cubierto por el error rsync # 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) y debe resolverse en la próxima versión 3.1.0.
Mientras tanto, use:
fuente
Desde la página de manual de rsync:
Eso resolverá su problema.
fuente
Debe usar un archivo de exclusión para
rsync
ignorar los archivos que no puede leer. La lista se puede generarfind . -exec test -r '{}'
en el directorio de origen y luego se puede incluir en el formato de archivo de exclusiónrsync
deseado.fuente