![rsync-Dateien über mehrere Benutzerkonten hinweg](https://rvso.com/image/192234/rsync-Dateien%20%C3%BCber%20mehrere%20Benutzerkonten%20hinweg.png)
Ich bin ein ziemlicher Neuling in der Verwendung rsync
und 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, rsync
vom 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 /home
und 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-super
Option 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 .csv
Dateien 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.