Para arquivos Rsync onde a permissão foi negada

1

Eu quero encontrar os arquivos que não posso copiar para outro local, de modo que eu possa fazer o Rsync. Eu tenho um disco rígido externo e o disco rígido do meu sistema. O disco rígido externo tem arquivos que meu sistema está faltando. Estou pensando em como fazer isso.

Eu posso encontrar esses arquivos / diretórios com permissão negada -mensagens por

find / ! -perm /u+r

onde algumas permissões são

drwx------ 1  501 root       6 Oct 22  2014 PortableCV_WebCruiter_20141022

O seguinte comando pode funcionar em commandlinefu.com , já que remoto os dados podem ser considerados aqui como HDD externo

rsync --rsync-path 'sudo rsync' username@source:/folder/ /local/

que

Rsync remote data as root using sudo If your user has sudo on the remote box, you can rsync data as root without needing to login as root. This is very helpful if the remote box does not allow root to login over SSH (which is a common security restriction).

Como você pode rsync arquivos com permissão negada problemas entre HDD externo e HDD do sistema?

    
por Léo Léopold Hertz 준영 15.07.2015 / 21:17

3 respostas

2

Se você quiser ignorar os arquivos ilegíveis:

find /external/hd/folder ! -readable -print >unreadable_files
rsync -a --exclude-from=unreadable_files /external/hd/folder/ /local/folder

Isso pressupõe que você esteja usando o GNU find e que seus nomes de arquivos não tenham novas linhas incorporadas.

Se você deseja copiar todos os arquivos, independentemente de serem legíveis ou não no disco externo:

sudo rsync -a /external/hd/folder/ /local/folder
sudo chown -R masi:masi /local/folder

Isso pressupõe que você tenha privilégios suficientes para executar sudo rsync e sudo chown .

    
por 16.07.2015 / 07:14
1

Se você montar o HDD externo em seu sistema localmente, ele não será remoto. A menos que eu tenha entendido mal e seu HDD esteja executando um daemon rsync e digamos, conectando-se através de uma rede? Mas esqueça que, você pode simplesmente montar o drive localmente e como @mjturner diz, tudo que você precisa fazer é ter certeza de executar rsync como root e é uma cópia direta sudo rsync -a /mount/for/hdd/folder/ /local/ ??

    
por 16.07.2015 / 01:22
0

Por que não usar apenas rsync para copiar todos os arquivos no disco rígido externo para o HDD do sistema? Não copiará novamente os arquivos que já existem.

Claro, certifique-se de fazer a cópia como root para garantir que você copie todos os arquivos e preserve as permissões.

    
por 15.07.2015 / 22:33