rsync-Dateien über mehrere Benutzerkonten hinweg

rsync-Dateien über mehrere Benutzerkonten hinweg

Ich bin ein ziemlicher Neuling in der Verwendung rsyncund frage mich, ob es möglich ist, Dateien über mehrere Benutzerkonten auf einem einzigen PC hinweg zu synchronisieren.

Bei den Computern, auf denen ich den Befehl anwenden möchte rsync, muss sich jeder Benutzer einzeln bei seinem eigenen Benutzerkonto anmelden. Wenn es beispielsweise 20 Benutzer gibt, gibt es auf diesem einen PC 20 Benutzerkonten. Gibt es eine Möglichkeit, rsyncvom Root-Konto aus auf die Verzeichnisse und Dateien von zuzugreifen?jedeBenutzer? Ich möchte nur Dateien in.csvFormat.

Danke!

Antwort1

Gibt es eine Möglichkeit, rsync vom Root-Konto aus zu verwenden, um auf die Verzeichnisse und Dateien jedes Benutzers zuzugreifen? Ich möchte nur Dateien im CSV-Format abrufen.

Dieser Befehl sichert alles in /homeund speichert es auf dem Remote-Host unter /path/to/backup. Dabei bleiben die Eigentümer und Berechtigungen der Benutzer erhalten, sofern das Remote-Dateisystem dazu in der Lage ist.

rsync -av /home remoteHost:/path/to/backup/

Wenn Sie keinen Root-Zugriff auf das Remote-System haben, sollten Sie die -M--fake-superOption hinzufügen, Dateimetadaten (Eigentümer und Berechtigungen) auf eine Weise zu sichern, die keinen Root-Zugriff erfordert. Stellen Sie sicher, dass Sie dieses Flag, wenn Sie es verwenden, auch für Wiederherstellungen verwenden.

Der zweite Teil Ihrer Frage ist ein Duplikat vonRsync-Filter: nur ein Muster kopierenUm das Kopieren nur auf .csvDateien zu beschränken, können Sie dies verwenden

rsync -av --prune-empty-dirs --include='*/' --include='*.csv' --exclude='*' /home remoteHost:/path/to/backup/

Antwort2

Im Allgemeinen ja. Das Problem, auf das Sie stoßen werden, ist die Authentifizierung. Sie können beispielsweise ein rsync-Skript von cron aus ausführen. Erstellen Sie sich ein Shell-Skript. Wenn sich Quelle und Ziel auf dem lokalen Computer befinden, funktioniert Root.

Wenn die Quelle oder das Ziel remote ist, ist es eine viel schwierigere Aufgabe. Der einfachste Weg ist, das Problem zu umgehen --- verwenden Sie NFS, um die Remote-Festplatte auf dem lokalen Computer zu mounten. Sie können auch nach einer SSH-Authentifizierung suchen ... das ist ein Kaninchenloch, das Sie erforschen müssen

OK. Angenommen, /root/backupuserlist ist eine Liste von Benutzern, einer pro Zeile, und /backupdrive ist der Ort, an dem Sie sie sichern.

#!/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

Erstellen Sie /root/backuserlist und führen Sie dies dann als Root aus … oder legen Sie es in die Crontab von Root oder /etc/crontab … Sie verstehen schon.

verwandte Informationen