GNU/Linux >> LINUX-Kenntnisse >  >> Linux

[Gelöst]:Warum hat rsync keine versteckten Dateien/Verzeichnisse kopiert und warum enthält Sternchen keine versteckten (Punkt-)Dateien in Linux?

Ich habe rsync verwendet Befehl zum Kopieren eines bestimmten Benutzerverzeichnisses von einem Speichergerät auf ein anderes. Der Vorgang wurde erfolgreich abgeschlossen, ohne dass eine Warnung/ein Fehler ausgegeben wurde. Aber zu meiner Überraschung betrugen die zu kopierenden Daten etwa 167 GB und die kopierten Daten nur 1,4 GB! Ich habe den Befehl „du“ verwendet, um die Festplattengröße von Quell- und Zielordnern zu berechnen, und sichergestellt, dass „du“ keine unregelmäßigen Ergebnisse anzeigt, indem ich diesem Tutorial gefolgt bin – wie man unregelmäßige Festplattennutzungsstatistiken von du behebt. Unten ist ein Schnappschuss, der das Szenario erklärt.

Szenario: Nehmen wir an – der alte Speicher-Mount-Punkt ist „/sata1/home/ramya“ und der neue Speicher-Mount-Punkt ist „/tmp/home/ramya“. Wie bereits erwähnt, habe ich rsync verwendet um das Verzeichnis wie unten gezeigt zu kopieren:

usr/bin/rsync -avzlh /sata1/home/ramya/* /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log

Achten Sie auf das "Sternchen" im obigen Befehl (das war das Problem und ich werde den Grund unter dem Falz erklären)

Ergebnisse der Diskrepanz des du-Befehls:

du Befehlsausgabe des Quellverzeichnisses (/sata1/home/ramya/):

# du -chs /sata1/home/ramya/167G /sata1/home/ramya/167G insgesamt

du Befehlsausgabe des Zielverzeichnisses (/tmp/home/ramya):

# du -chs /tmp/home/ramya/1.4G /tmp/home/ramya/1.4G insgesamt

Aus den obigen Momentaufnahmen können Sie ersehen, dass das Quellverzeichnis eine Größe von 167 GB und das kopierte Verzeichnis eine Größe von 1,4 GB hat. Wo sind also die restlichen Daten? Lassen Sie mich erklären, wie ich das Problem behoben habe.

Lösung:

Um das Problem zu beheben, habe ich du verwendet Befehl, um die Größe jeder Datei in den Quell- und Zielordnern wie unten gezeigt zu überprüfen:Durch Auflisten der Dateien und Vergleichen der Dateigröße.

bash-3.2#du -h -x /sata1/home/ramya 15G /sata1/home/ramya/.g448M /sata1/home/ramya/1SVC13G /sata1 /home/ramya/.g8120M /sata1/home/ramya/techg/.techla90G /sata1/home/ramya/.openVAS.tar-gz16G /sata1/home/ramya/.VSL.zip...... 
bash-3.2#du -h -x /tmp/home/ramya 1G /tmp/home/ramya/samplejobtoec48M /tmp/home/ramya/1SVC41M /tmp/home/ramya/M1512K /tmp/home /ramya/techglimpse/openvas.txt134M /tmp/home/ramya/etc/pki264K /tmp/home/ramya/NAMD_CV......

Aus der obigen Ausgabe habe ich verstanden, dass die versteckten Dateien nicht kopiert wurden und dies an „*" (asterisk) lag in rsync verwendet Befehl. Das Sternchen erweitert alle Dateien in der aktuellen Arbeit Verzeichnis mit Ausnahme der Dateien, deren Name mit einem Punkt beginnt (versteckte Dateien). Also rsync erhält niemals die versteckten Dateien als Argumente. Die Lösung besteht also darin, den gesamten Verzeichnisnamen (anstelle von Sternchen) als Argument für rsync zu verwenden Befehl.

rsync -avzlh --ignore-existing /sata1/home/ramya/ /tmp/home/ramya/ | tee /tmp/$(date+"%F_%R")-backup.log

Hinweis:Die abschließenden Schrägstriche am Ende beider Pfade. Jede andere Syntax kann zu unerwarteten Ergebnissen führen!

Voila! Es hat funktioniert.


Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. Kopieren Sie Dateien und Verzeichnisse unter Linux

  3. Wie verwende ich den Rsync-Befehl unter Linux?

  4. Wie kopiert man Dateien unter Linux und Unix? 10 cp Befehlsbeispiele

  5. Der Befehl du parst keine versteckten Verzeichnisse

So verschieben Sie Dateien und Verzeichnisse in Linux (mv-Befehl)

So verwenden Sie den cp-Befehl zum Kopieren von Dateien und Verzeichnissen

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

Linux-Dateien und -Verzeichnisse mit rsync synchron halten

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

4 Möglichkeiten zum Übertragen von Dateien und Verzeichnissen unter Linux