Estou usando rsync
para fazer backup de um conjunto de arquivos em /etc
. Os arquivos 'origem' estão em um ext4
sistema de arquivos e o 'destino' é uma ext4
partição em um pen drive USB. Meu encantamento é semelhante a este:
rsync -av --recursive --files-from=my/etcfiles /etc ./my/backup/etc/
Não inesperadamente, recebo erros com isso, incluindo:
rsync: failed to set times on "/my/backup/etc/somefile": Operation not permitted (1)
rsync: mkstemp "/my/backup/etc/somefile.erGL4a" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
Acho que isso ocorre porque a a
opção rsync
preserva a propriedade (raiz) dos arquivos dos quais estou fazendo backup e, portanto, os privilégios de root são necessários para concluir rsync
as operações do .
Essa rsync
operação é concluída com êxito quando executada em sudo
, mas preciso configurar isso como um cron
trabalho e usar sudo
em um crontab
traz um problema (armazenamento de senha) que gostaria de evitar.
Outra possibilidade pode ser alterar a propriedade dos arquivos de propriedade do root (usando a chown=USER:GROUP
opção) durante o rsync
backup. Eu não tentei isso porque me ocorre que, mesmo que funcione sem sudo
, a propriedade teria que ser restaurada se os backups fossem necessários.
Eu estive pensando sobre isso a maior parte do dia agora, e ficando cansado de discutir com rsync
as inúmeras opções de 's. Então - Minha pergunta é esta:
Como posso evitar usar sudo
para fazer backups de arquivos /etc
sem cometer um erro ainda pior ?
Configure um trabalho cron root e, em seguida, o script será executado como root de qualquer maneira. Para acessar o crontab root, execute
sudo crontab -e
.