Finden Sie Dateien mit Leerzeichen, die in den letzten 60 Tagen geändert wurden, und tar.gz in Dateien, die nicht größer als 4 GB mit Datum sind

1

Ich habe einen Dateiserver. Ich muss Dateien sichern, die sich in einem bestimmten Zeitraum geändert haben.

Zuerst habe ich alles auf 4GB Dateien komprimiert und auf DVD gesichert. Aber 7z, die ich benutzt habe

7z a -t7z /home/user/myfiles051413_proj.7z /home/share/projects -v4000m -m0=bzip2 -mmt=4

scheint keine Möglichkeit zu haben, geänderte Dateien in den letzten 60 Tagen zu komprimieren, und ich bin nicht sicher, wie ich das an einen Befehl wie diesen weitergeben soll. Ich möchte nicht den gesamten Ordner komprimieren und sichern müssen, was bereits gesichert ist! (Platzverschwendung)

teer scheint damit gut zu funktionieren

find /home/share/projects -mtime -60

und das Einfügen in einen Befehl funktioniert auch, aber Leerzeichen geben mir Probleme. Hier ist der Befehl, den ich versuche, um Arbeit zu bekommen. Suche nach allen Dateien, die in den letzten 60 Tagen geändert wurden. Komprimieren Sie sie dann in 4 GB-Dateien.

find /home/share/projects/ -mtime -60 | xargs tar -cvML 4194304 -f /home/user/myfiles`date '+%d%m%Y'_proj.tar`

im moment läuft es noch eine weile und hat dann nur eine kleine datei drin. es druckt zahlreiche dateien auf dem bildschirm aus!


Ich habe mit -print0 gespielt

find /home/samba/shares/projects -mtime -60 -type f -print0| xargs tar -cvML 4194304 -f /home/samba/shares/bkup/`date '+%d%m%Y'_proj.tar` -T - --null

Ich bekomme eine ganze Menge tar: de: Kann nicht angeben: Keine solche Datei oder kein solches Verzeichnis

user2630659
quelle
Um Probleme mit Leerzeichen zu umgehen, verwenden Sie die -print0 Option in find. (und ordne xargs -0 zu).
Hennes
Sie vermissen die -0 Option zu xargs. Wenn Sie Informationen hinzufügen möchten, bearbeiten Ihre Frage. Dies ist kein Diskussionsforum. Wenn Sie eine Antwort hinzufügen, erwarten wir eine Lösung.
Daniel Beck

Antworten:

0

Sie haben einen Fehler im letzten Skript mit -print0.

  1. Sie verwenden Xargs. Keine gute Idee, da xargs für viele Dateien mindestens zweimal tar ausführen.
  2. Sie verwenden für Teer -T - Option. Rechte, aber was für in dieser Situation ist xargs?

einfach xargs entfernen, da es nicht benötigt wird. Dies holt alle Dateien von stdin und setzt sie am Ende als Argumente an tar. dann bekommt tar-Option nichts auf sein stdin.

Znik
quelle