Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

älter als im Shellskript ?

Empfohlene Antworten

Veröffentlicht

Hi,

ich bräuchte nur ein kleines Shellskript zum Backup eines Ordners.

Bis jetzt sieht das ganze so aus :


#!/bin/bash


rsync -avz root@xxx.xxx.xxx.xxx:/var/hier_liegt_mein_original/* /var/hier_liegt_mein_backup/


for i in `/var/hier_liegt_mein_backup/` ; do 

    if [ $i älter als x Monate ]

        rm `/var/hier_liegt_mein_backup/`+$i  ;

    fi


done 

Das Skript sollte eigendlich nichts anderes machen, als den RSYNC ausführen und danach zu alte Dateien löschen.

1. Weiß ich nicht wie ich die "älter als"-Abfrage durchführen kann.

2. Bin ich mir nicht sicher ob die Zeile "rm `/var/hier_liegt_mein_backup/`+$i ;" so erlaubt ist.

Hi,

rsync kann auch deleten. Guck dir mal die Optionen an. Ansonsten würde ich dir find +mtime empfehlen, das ist meiner Meinung nach das Einfachste:

Suche nach der Zeit mit find und mtime

Mit Exec kannst du dann auf die gefundenen Dateien ein Kommando ausführen, in deinem Fall eben rm. Vorher evtl. mal mit ls anzeigen lassen, ob das auch die gewünschten Dateien sind, sonst kann es schonmal Ärger geben. ;)

Hi,

doch, man kann sich da was zusammenstricken. Aber wieso willst du selber was basteln, wenn es doch Standardwerkzeuge gibt, die das Problem eleganter, schneller und richtiger lösen?

Exec ist eine Option im Find.

Von PHP lese ich jetzt hier das erste Mal etwas.

Weil mit -exec bei sehr vielen tausend Dateien die Performance in die Knie geht! Die xargs-Variante ist Faktor 15x schneller.

Genauer: Wenn du -exec verwendest, wird fuer jedes Loeschen einer Datei ein neuer Prozess erzeugt. Das ist ziemlich unperformant und wirkt sich bei vielen Dateien recht negativ aus. Das Programm xargs bastelt dir dynamisch den Parameter (die Dateien die geloescht werden sollen) zusammen und uebergibt ihn an rm. So das du mit einem einzigen rm-Prozess alle Dateien geloescht bekommst.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.