Atualmente, estou gravando um sistema de backup automático em python que sincronizará dinamicamente com diretórios específicos em um servidor, dependendo do usuário, da máquina e do sistema operacional em execução no momento.
Estou tentando fazer com que o seguinte comando funcione ao criar os diretórios user, system, os e sync, se eles ainda não existirem.
rsync -arvR --password-file=./rsyncdpw --rsync-path="mkdir -p /srv/backupdir/jim/desktop/Linux/sync/ && rsync" ./20160602BU user@server::backup/jim/desktop/Linux/sync/
Se os diretórios não existirem, nenhum diretório será criado e o comando falhará com:
enviando lista de arquivos incremental
rsync: mkdir "/ jim / desktop / Linux / sync" (no backup) falhou: Nenhum arquivo ou diretório (2)
Erro de rsync: erro no arquivo IO (código 11) em main.c (674) [Receiver = 3.1.1]
O comando funciona perfeitamente se os diretórios já existirem. Também obtive a opção --rsync-path funcionando bem quando não estou conectando ao daemon. O comando a seguir cria corretamente todos os diretórios e sincroniza os arquivos conforme o esperado.
rsync -rvR --rsync-path="mkdir -p /srv/backupdir/jim/desktop/Linux/sync/ && rsync" ./20160602BU jim@filesrv:/srv/backupdir/jim/desktop/Linux/sync/
O módulo de backup em rsync.conf para o daemon especifica / srv / backupdir como seu diretório, então eu tentei fazer apenas / jim / desktop / Linux / sync para elogiar isso, e eu também tentei o caminho absoluto . Ambas as abordagens falham com o mesmo resultado.
Eu tenho lutado com isso por alguns dias entre codificar outras partes do sistema. Eu quase terminei o sistema, mas eu bati em uma parede nesta parte.
Obrigado por qualquer ajuda que você possa oferecer.