![arquivos rsync em várias contas de usuário](https://rvso.com/image/192234/arquivos%20rsync%20em%20v%C3%A1rias%20contas%20de%20usu%C3%A1rio.png)
Sou muito novo no uso rsync
e estou me perguntando se é possível sincronizar novamente arquivos em várias contas de usuário em um único PC.
Para os computadores aos quais desejo aplicar o rsync
comando, cada usuário deve fazer login individualmente em sua própria conta de usuário. Por exemplo, se houver 20 usuários, haverá 20 contas de usuário naquele PC. Existe uma maneira de usar rsync
a conta root para acessar os diretórios e arquivos docadado utilizador? Eu só gostaria de pegar arquivos em.csvformatar.
Obrigado!
Responder1
Existe uma maneira de usar o rsync da conta root para acessar os diretórios e arquivos de cada usuário? Gostaria apenas de obter arquivos no formato .csv.
Este comando fará backup de tudo /home
e salvará no host remoto em /path/to/backup
. Ele manterá as propriedades e permissões dos usuários, desde que o sistema de arquivos remoto seja capaz de fazê-lo
rsync -av /home remoteHost:/path/to/backup/
Se você não tiver acesso root no sistema remoto, você deve adicionar a -M--fake-super
opção de fazer backup dos metadados do arquivo (propriedades e permissões) de uma forma que não precise de acesso root. Certifique-se de que, ao usar esse sinalizador, você também o use para restaurações.
A segunda parte da sua pergunta é uma duplicata deFiltro Rsync: copiando apenas um padrão. Para limitar a cópia apenas a .csv
arquivos você pode usar isto
rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/
Responder2
Em geral, sim. O problema que você encontrará é a autenticação. Você pode, por exemplo, executar um script rsync no cron. Faça você mesmo um script de shell. Se a origem e o destino estiverem no computador local, o root funciona.
Se a origem ou destino for remoto, a tarefa é muito mais difícil. A maneira mais fácil é contornar o problema --- usar o NFS para montar o disco remoto no computador local. Você também pode pesquisar a autenticação ssh... isso é uma toca de coelho para você pesquisar
OK. Suponha que /root/backupuserlist seja uma lista de usuários, um por linha e /backupdrive seja onde você está fazendo backup deles.
#!/bin/bash
# backup /root/backupuserlist to /backupdrive
BK_USERS=`cat /root/backupuserlist`
BK_DRIVE=/backupdrive
for user in $BK_USERS; do
rsync -av ~$user/ $BK_DRIVE/$user/
done
crate /root/backuserlist e, em seguida, execute-o como root... ou coloque-o no crontab do root ou /etc/crontab ... você entende.