Soy bastante nuevo en el uso rsync
y me pregunto si es posible sincronizar archivos entre varias cuentas de usuario en una sola PC.
Para las computadoras a las que quiero aplicar el rsync
comando, cada usuario debe iniciar sesión individualmente en su propia cuenta de usuario. Por ejemplo, si hay 20 usuarios, hay 20 cuentas de usuario en esa PC. ¿Hay alguna forma de utilizar rsync
desde la cuenta raíz para acceder a los directorios y archivos decada¿usuario? Sólo me gustaría capturar archivos en.csvformato.
¡Gracias!
Respuesta1
¿Existe alguna forma de utilizar rsync desde la cuenta raíz para acceder a los directorios y archivos de cada usuario? Sólo me gustaría obtener archivos en formato .csv.
Este comando hará una copia de seguridad de todo /home
y lo guardará en el host remoto en /path/to/backup
. Conservará la propiedad y los permisos de los usuarios siempre que el sistema de archivos remoto sea capaz de hacerlo.
rsync -av /home remoteHost:/path/to/backup/
Si no tiene acceso de root en el sistema remoto, debe agregar la -M--fake-super
opción de hacer una copia de seguridad de los metadatos del archivo (propiedades y permisos) de una manera que no necesite acceso de root. Asegúrese de que si usa esta bandera, también la use para restauraciones.
La segunda parte de su pregunta es un duplicado deFiltro Rsync: copiar solo un patrón. Para limitar la copia solo a .csv
archivos, puede usar esto
rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/
Respuesta2
En general, sí. El problema con el que te encontrarás es la autenticación. Puede, por ejemplo, ejecutar un script rsync desde cron. Hazte un script de shell. Si el origen y el destino están en la computadora local, root funciona.
Si el origen o el destino es remoto, la tarea es mucho más difícil. La forma más sencilla es evitar el problema: utilice NFS para montar el disco remoto en la computadora local. También puedes buscar autenticación ssh... esa es una madriguera que debes investigar
DE ACUERDO. Supongamos que /root/backupuserlist es una lista de usuarios, uno por línea y /backupdrive es donde los respalda.
#!/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, y luego ejecútelo como root... o colóquelo en el crontab de root o /etc/crontab... ya entiende.