cp -u copia todos os arquivos, não apenas os mais novos

2

Eu sou o script source ing que diz algo como

cp -vau /home/jordan/local-directory/ -t /media/jordan/A368-480F/BACKUP/

e é isso. A368-480F/ é o diretório que aparece quando conecto meu USB ao meu computador. A primeira vez que eu ligo isso, ele faz o que eu quero e copia meus arquivos. Se eu ligar de novo imediatamente sem desconectar o USB, o script não diz nada e retorna, como deveria. Se eu umount do USB, desconecte-o, conecte-o novamente e remova osource do script de backup, tudo será copiado novamente, o que não é o que eu quero.

Eu tentei usar stat em um arquivo no backup antes e depois de desconectar o USB, mas não vi nenhuma diferença. Não tenho certeza se isso vale para todos os arquivos que são copiados.

Então, minha pergunta é: "por que essa cópia indesejada está acontecendo e como faço para que isso não aconteça?".

Estou usando o Ubuntu 15.04.

    
por Jordan 22.12.2015 / 22:20

1 resposta

3

Lembre-se que o glorioso sistema de arquivos da Microsoft, apenas armazena tempos de arquivos com uma resolução mínima de 2 segundos. O que significa que se o seu arquivo de origem tiver um mtime de 13:35:47, o VFAT irá salvá-lo como 13:35:46. O que significa que seu arquivo de origem será sempre mais recente.

O comando cp não tem mecanismo para lidar com a estranheza do MS, os arquivos serão sempre copiados.

Para lidar adequadamente com o armazenamento com perda de tempo do VFAT, sugiro usar o rsync .

Você deu este comando cp como exemplo:

cp -vau /home/jordan/local-directory/ -t /media/jordan/A368-480F/BACKUP/

Um comando rsync equivalente seria:

rsync -va --modify-window=1 /home/jordan/local-directory/ /media/jordan/A368-480F/BACKUP/

Isto irá copiar os arquivos de src para dest, recursivamente, copiando todos os atributos que puderem representar no VFAT. (Permissões, proprietários, grupos, .. bem ... dang perto de tudo ... não copia para VFAT, apenas dados, e os carimbos de hora MESMO)

A opção - modify-window = 1 permite que os registros de data e hora do arquivo difiram em até 1 segundo ao determinar a novidade.

Eu gosto de adicionar a opção -P (--partial --progress), já que facilita o reinício das operações de cópia, mostrando uma boa barra de progresso.

rsync -vaP --modify-window=1 /home/jordan/local-directory/ /media/jordan/A368-480F/BACKUP/

Naturalmente, o rsync permite MUITO mais, incluindo cópia entre sistemas, backups de snapshots e outros, consulte a página do manual do rsync . Meus dedos podem digitar -avzP como opções de rsync por si só, acredito.

Não, eu não sou fã de VFAT. O NTFS é melhor, mas proprietário.

    
por lornix 22.12.2015 / 23:38