O problema é que desejo ver erros ao mover um arquivo, mas não vejo erros com permissões. Em outras palavras - eu me importo se o arquivo não for totalmente transmitido, mas não quero ver erros como este:
mv: falha ao preservar a propriedade de `/home/blah/backup/pgsql.tar.gz ': operação não permitida
Então eu quero algo como: mv $backupfile $destination --ignore-permissions
.
O arquivo de backup pode variar de 1 MiB a 5 GiB e é transferido através do NFS.
cifs
).Respostas:
mv
é a ferramenta errada para este trabalho; você quercp
e entãorm
. Como você está movendo o arquivo para outro sistema de arquivos, é exatamente isso quemv
está acontecendo nos bastidores, exceto quemv
também está tentando preservar os bits de permissão do arquivo e as informações do proprietário / grupo. Isso ocorre porquemv
preservaria essas informações se estivesse movendo um arquivo no mesmo sistema de arquivos emv
tentasse se comportar da mesma maneira nas duas situações. Como você não se importa com a preservação de bits de permissão de arquivo e informações de proprietário / grupo, não use essa ferramenta. Usecp --no-preserve=mode
e emrm
vez disso.fonte
cp --no-preserve=mode,ownership $backupfile $destination
verifique o código de saída e façarm $backupfile
se estiver tudo bem.Quando você move um arquivo dentro do mesmo sistema de arquivos,
mv
desanexa o arquivo do local antigo e o anexa ao novo local; metadados, como permissões, permanecem os mesmos. Quando você move um arquivo para um sistema de arquivos diferente,mv
copia o arquivo, tenta replicar o máximo de metadados possível e remove o original.Como você está migrando para um sistema de arquivos diferente e não deseja replicar muitos metadados, copie o arquivo e remova o original.
Isso preserva as permissões do arquivo até certo ponto (por exemplo, legibilidade do mundo, executabilidade). A hora da modificação do arquivo não é preservada. Com o GNU
cp
, você pode usar a--preserve=…
opção para controlar quais metadados são replicados mais finamente, por exemplo--preserve=mode,timestamps
.Você também pode usar
rsync
e dizer o que deseja preservar. A opção-a
significa "preservar a maioria dos metadados", que inclui o proprietário se estiver sendo executado apenas como raiz.fonte
rsync
solução funciona de forma excelente. Eu estava lutando para tentar transferir minha antiga instalação do ubuntu do compartilhamento CIFS. Meu rsync não relatou uma falha ao mover o arquivo, mas não o moveu e apenas relatou problemas de permissão.rsync
solução!