Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Linux find + löschen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2013
    Beiträge
    6

    Linux find + löschen

    Hi leute,

    bin grad eine datei am schreiben was ein Backup macht von einem Ordner.
    dies wird per Cron tägl ausgeführt.

    die datei macht das backup: tar cfvz backup-xxx-$(date +%d.%m.%y).tar.gz /home/xxx/xxx/xxx
    verschiebt es in den richtigen ordner: mv backup-xxx-$(date +%d.%m.%y).tar.gz /home/xxx
    aber dann soll es mit find eine datei löschen die älter als 7 tage ist... und das klappt nicht ;/

    Befehl: find /home/xxx -name 'backup-xxx-$(date +%d.%m.%y).tar.gz*' -mtime +7 -exec rm {} \;
    find /home/xxx-name 'backup-xxx-$(date +%d.%m.%y).tar.gz*' -mtime +7 -delete

    habe diese 2 Varianten probiert die ich im netz gefunden habe...

    Um es für uns schneller übersichtlicher zu machen, habe wir dem backup ein datum hinzugefügt. was auch super klappt nur beim Find befehl will das nicht so.

    wenn ich die befehle ausprobiere, geht er in die nächste zeile und macht nichts. habe auch schon die "mtime +X" abgeändert aber ohne erfolgt.

    vielleicht könnt ihr mir helfen, weil bin langsam ratlos wieso es nicht geht und vorallem ohne fehler :/

    MFG

  2. #2
    Registrierter Benutzer
    Registriert seit
    May 2018
    Beiträge
    145
    Du musst die % escapen. Also \%; steht auch so in crontab(5). Alternativ dazu schreib die Kommandos in ein Shellscript und füge das als Crontab hinzu.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Dec 2013
    Beiträge
    6
    also um es einfacher zu machen, ich arbeite nicht alleine an dem server deswegen habe ich die datei geschrieben mit ein bisschen erklärung, also nicht wundern

    clear
    echo ""
    echo "xxx"
    echo "xxx"
    echo ""
    echo "xxx"
    echo ""
    echo "xxx"
    sleep 15.0
    tar cfvz backup-xxx-$(date +%d.%m.%y).tar.gz /home/xxx/xxx/xxx
    echo "xxx"
    sleep 8.0
    echo "xxx"
    sleep 6.0
    mv backup-xxx-$(date +%d.%m.%y).tar.gz /home/xxx
    echo "xxx"
    sleep 10.0
    find /home/Backupsmc -name 'backup-xxx-$(date +%d.%m.%y).tar.gz*' -mtime +7 -exec rm {} \;
    echo "xxx"
    echo "xxx"
    sleep 10.0

    so steht es in der datei "backup.sh".

    den befehl "find /home/Backupsmc -name 'backup-xxx-$(date +%d.%m.%y).tar.gz*' -mtime +7 -exec rm {} \%;"
    habe ich getestet und dann kommt " find: Fehlendes Argument für »-exec«. Try 'find --help' for more information."

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.062
    Du bist Dir sicher, daß Du eine Datei suchst, die den aktuellen Timestamp im Dateinamen hat, aber schon älter als sieben Tage sein soll?

    -> entweder Du suchst mit find nach Dateien mit "Datum von vor 7 Tagen" im Dateinamen oder nach Dateien, die älter sind als 7 Tage - beides gleichzeitig dürfte bei Deiner Art, Backups zu erstellen nicht auftauchen.
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jul 2009
    Ort
    Meißen
    Beiträge
    323
    Für den 'find'-Befehl bietet sich eine Suche mit Wildcards an ...

    Aber auch sonst gibt es noch einige Ungereimtheiten:
    - Wieso wird das tar-Archiv nicht gleich an Ort und Stelle erstellt, wenn es denn später sowieso nur verschoben wird? (tar-Parameter 'f')
    - Was passiert, wenn das Script (versehentlich?) mehrmals pro Tag gestartet wird; ist ungefragtes Überschreiben in dem Falle erwünscht?
    - Was passiert, wenn das Script (evtl. auch versehentlich) um 23:59:40 Uhr gestartet wird, dann wird mit mit Sicherheit etwas anderes versucht, zu verschieben, als erzeugt wurde, weil mittlerweile ein neuer Tag ist?

    Darum fände ich es sinnvoll zumindest $(date +%d.%m.%y) in eine Variable zu packen, die zu Beginn definiert wird. Evtl. auch Stunde, Minute, Sekunden mit in den Dateinamen nehmen, dann gibt es mit großer Wahrscheinlichkeit auch das Problem eine Zeile drüber nicht mehr.

    Gruß, FM_81
    Ein Mann, der wollte fangen einen Barsch, das Wasser stand ihm bis zum Knie!
    (Du musst bis Frühjahr warten, da kommt Hochwasser, dann reimt es sich von selbst!)

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2013
    Beiträge
    6
    Also bin nicht so der Linux pro, und deswegen erstellt er die Datei in xy und verschiebt sie dann. Weil da wo er sie erstellt möchten wir sie logischerweise nicht haben.

    Das Backup wird jeden Tag um 03:00 Uhr gestartet also ist es eher nicht so schlimm ob es eine Stunde früher oder später ist salopp gesagt. Und daher haben wir es nur mit dem Datum versehen.

    Nun ist die Frage wie könnte ich den Befehl schreiben das er es durch selektiert und dann löscht ? :/

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2009
    Ort
    Meißen
    Beiträge
    323
    Code:
    find /home/Backupsmc/ -name "backup-xxx-*.tar.gz" -mtime +7 -exec rm {} \;
    Löscht alles, im angegebenen Verz. was mit backup-xxx- beginnt, dann irgendwas oder auch nichts hat, und mit .tar.gz endet, wenn es denn eine "modification time" älter als 7 Tage hat.

    Gruß, FM_81
    Ein Mann, der wollte fangen einen Barsch, das Wasser stand ihm bis zum Knie!
    (Du musst bis Frühjahr warten, da kommt Hochwasser, dann reimt es sich von selbst!)

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2013
    Beiträge
    6
    Super ich danke dir.

    Es funktioniert

    MFG

Ähnliche Themen

  1. Asus UX32A Ultrabook/ Linux boot Unable to find a medium...
    Von benaep im Forum System installieren und konfigurieren
    Antworten: 9
    Letzter Beitrag: 06.06.13, 23:58
  2. Can't find /usr/src/linux
    Von slaYer977 im Forum Kompilieren von Kernel und Sourcen
    Antworten: 4
    Letzter Beitrag: 17.02.06, 09:03
  3. Linux löschen
    Von Nighthawk666 im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 13.02.04, 16:32
  4. Linux löschen !!!
    Von Bauminho im Forum System installieren und konfigurieren
    Antworten: 6
    Letzter Beitrag: 17.07.03, 10:03
  5. could not find the SuSE Linux Installation Cd
    Von toxic_wolf im Forum System installieren und konfigurieren
    Antworten: 5
    Letzter Beitrag: 24.02.03, 08:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •