Recebo muitos avisos ao fazer backup dos meus arquivos de servidor Postfix e Courier em execução, como:
file has vanished: /var/kunden/mail/username/[email protected]/tmp/courier.lock
Como suprimir esses avisos rsync
ao executá-lo no Cron /usr/bin/rsnapshot hourly
?
De alguma forma, posso excluir esses diretórios?
/var/kunden/mail/*/*/tmp/
a tmp
pasta também pode ser mais profunda, por exemplo:
file has vanished: /var/kunden/mail/username/[email protected]/.Presse/tmp/1353871473.M716135P32214_imapuid_36.test.de
file has vanished: /var/kunden/mail/username/[email protected]/.Presse/tmp/courier.lock
rsync -a --exclude '/var/kunden/mail/*/*/tmp/' --exclude '/var/kunden/mail/*/*/*/tmp/' /var/kunden/ $SERVER/var_kunden/
?/tmp/
neles como eu escrevi. Se você quiser ser mais explícito, sim, você pode especificá-lo como você escreveu.--exclude='/tmp/'
exclui apenas o diretório chamadotmp
na raiz da cópia. Para excluir todos os subdiretórios chamados emtmp
qualquer lugar, use--exclude='**/tmp/'
.Infelizmente, diferente do descrito na solução SWdream,
--ignore-missing-args
não tem impacto nos arquivos desaparecidos. Ele simplesmente ignorará os argumentos de origem que não existem.Veja
man rsync
:A maneira "oficial" de ignorar o arquivo desaparecido é usar este script do repositório oficial de fontes rsync: https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/rsync-no- desapareceu; hb = CABEÇA
que é muito parecido com o que @kenorb e @ gilles-quenot disseram.
fonte
O motivo é que esses arquivos existiam enquanto o rsync criava a lista de arquivos a serem transferidos, mas foram removidos antes da transferência.
É uma massagem de aviso, não um erro. No entanto, você deve tentar descobrir por que esses arquivos foram excluídos. Talvez isso seja importante.
Para ignorar esse aviso, você pode usar a opção --exclude como a pergunta acima ou usar a
-ignore-missing-args
opção rsync, faz com que o rsync ignore os arquivos desaparecidos:--ignore-missing-args ignore missing source args without error
talvez ajude.fonte
O erro significa que
rsync
não é mais possível encontrar os arquivos existentes ao criar a lista para transferência. Esses erros de arquivo desaparecido acontecem quando um arquivo foi encontrado inicialmente presente e mais tarde não está mais lá. Em alguns casos, isso também acontece quando os arquivos de origem estão corrompidos ou têm caracteres inválidos no nome (fsck
é recomendável).Basicamente, isso é um aviso, não um erro, portanto não há com que se preocupar, pois o estado de cada arquivo de destino reflete um estado que os arquivos de origem correspondentes durante a execução.
Se estiver causando um problema devido ao valor de saída ser diferente de zero, isso poderá ser resolvido pelo seguinte script de wrapper ( origem ):
ou pelo seguinte script de solução alternativa ( origem ):
que existe basicamente com os mesmos códigos de erro que o rsync, se o rsync falhar.
Isso será discutido em: Bug 3653 - Reduza a necessidade do aviso "arquivos desaparecidos"
fonte
Ou simplesmente (com o bash moderno ):
fonte
vanished
?Minha resposta pode ser um caso de uso especial, mas acho que vale a pena notar, para que as pessoas não percam dados se se enquadrarem nesse caso.
Eu estava recebendo essa mensagem para vários arquivos enquanto fazia um backup de rotina das unidades via rsync.
Eu realizei uma verificação do sistema no disco e constatamos que há problemas com a unidade (alocação / corrupção de arquivos etc.) e recomendamos um backup + restauração + reformatação.
Portanto, antes de suprimir ou ignorar a mensagem, talvez seja aconselhável executar uma verificação de saúde em sua unidade apenas para garantir a segurança.
fonte
tmp
diretórios.Tente montar seu disco de backup com
nosuid,nodev,nofail,x-gvfs-show
opções.Não tenho certeza de qual sistema você está usando, mas acredito que isso esteja relacionado às opções de montagem do seu disco. No Linux, isso acontece se eu definir as opções de montagem como
User Session Default
. Ele resolve quando eu o desabilito e o rsync é concluído sem erros.fonte
Use este parâmetro:
para colocar a lista em um arquivo. No arquivo exclude.ini, escreva algo como:
Onde:
Lembre-se de que, se o sistema de arquivos diferir entre maiúsculas e minúsculas, talvez seja necessário explicar isso.
fonte