Eu uso o comando rsync para fazer backup de arquivos de um dos meus servidores ubuntu para outra máquina ubuntu. O servidor de backup aciona um script que usa o comando rysnc. Aqui está o comando que eu uso
rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete após a raiz @ live_server: / home / / home / live_server_backup / home >> /tmp/logfile.log 2> & 1
O live_server é compatível com ssh sem senha. Então funciona. Agora o problema é com
- opção de exclusão após
Depois de todo o arquivo sincronizado. No final, eu posso ver o procedimento de exclusão skipped.logfile erro é como
Erro de E / S encontrado - ignorando a exclusão do arquivo
Quando tentei encontrar o log, houve algum erro ao sincronizar o arquivo
rsync: send_files falhou ao abrir "/home/xyz/Desktop/PPT_session_1_context.pdf": permissão negada (13)
Portanto, meu entendimento é que o rsync não pôde ler todos os arquivos do destino por motivos de segurança, pois está pulando a exclusão do arquivo.
Existe alguma maneira de executar o trabalho --delete-after, mesmo que haja algum erro de permissão? Eu não quero usar a exclusão de força, pois será perigoso em alguma situação.
fonte
Respostas:
Nota adicional sobre este problema:
vanished file
não deve acionar a condiçãoIO error encountered -- skipping file deletion
, mas isso geralmente acontece quando você está criando um backup de um sistema ativo.Isso é coberto pelo bug rsync nº 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) e deve ser resolvido na próxima versão 3.1.0.
Enquanto isso, use:
fonte
Na página do manual rsync:
Isso resolverá o seu problema.
fonte
Você deve usar um arquivo de exclusão para
rsync
ignorar os arquivos que não podem ler. A lista pode ser geradafind . -exec test -r '{}'
no diretório de origem e depois massageada no formato de arquivo de exclusãorsync
desejado.fonte