ubuntuusers.de

Skript funktioniert nur bedingt

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

clemschn

Anmeldungsdatum:
15. April 2016

Beiträge: Zähle...

Guten Tag,

auf meinem Qnap NAS werden regelmäßig Bilder von zwei Kameras, welche über Bewegungsmelder auslösen, aufgezeichnet. Diese Bilder sollen automatisch gelöscht werden wenn sie älter als drei Tage sind.

Hier für habe ich folgendes Script:

#!/bin/bash
# last edit CS 2016-03-25_12:53h
# delete old images from security cameras

MTIME=3

DESTA="/share/Recordings/ueberwachung"
DESTB="/share/Recordings/ueberwachung2"

CMD_FIND="/Apps/opt/bin/find"

$CMD_FIND $DESTA/* -mtime +$MTIME  -exec rm {} \;
$CMD_FIND $DESTB/* -mtime +$MTIME  -exec rm {} \;

Der Cronjob dazu ist der folgende:

3 2 * * * sh -c "/share/admin/script/del-ueberwachung-imgs.sh"

Wenn ich in DESTA und DESTB Testbilder, wie zum Beispiel „Bild_1.jpg" lege funktioniert das Scripting einwandfrei. Mit den Originalnamen der Kameras kommt das Script aber nicht zurecht. Diese sind in DESTA 00606EE1D094(Schillertempel1)_0_20160329074840_66901.jpg und in DESTB 006E0787CAE6_20160329100044.jpg. Es könne in beiden Verzeichnissen durchaus mal zwischen 8.000 und 15.000 Dateien liegen.

Ich vermute, dass das Problem erst einmal die Klammern bzw. die langen Dateinamen sind, sicher bin ich mir da aber nicht.

Es wäre sehr schön, wenn mir jemand bei der Lösung des Problems helfen könnte.

Auf dem NAS läuft die folgende Ubuntu_Version „Linux version 3.4.6 (root@BuildServer36) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 SMP Fri Mar 11 02:19:06 CST 2016". Zusätzlich ist noch optware installiert, weshalb auch die Zeile in dem Script zu finden ist.

Ich hoffe auf regen Unterstützung und grüße recht herzlich aus dem Taunus

Clemens

PS.: ich habe von Linus, Unix und Shell keine Ahnung. Das Scrept habe ich mir im Netz zusammen gesucht. Ich bitte das bei den Lösungsansätzen zu berücksichtigen.

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21851

Wohnort: Lorchhausen im schönen Rheingau

Servus,

warum nutzt du -exec, um rm aufzurufen? find hat doch einen -delete-schalter

clemschn

(Themenstarter)

Anmeldungsdatum:
15. April 2016

Beiträge: 4

Das habe ich so im Netz gefunden.

Ich habe jetzt in der shell mal das folgende eingegeben:

find /share/Recordings/ueberwachung -mtime +2 rm {} \;

Da bekomme ich folgende Meldung:

find: paths must precede expression: rm
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
[~] # 

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21851

Wohnort: Lorchhausen im schönen Rheingau

Servus,

bitte lies mal den Wikiartikel zu find und bau dir das selbst auf. in deiner Zeile fehlt mindestes ein -exec. Das du aber nicht brauchst, wenn Du die find-interne Funktion nutzt.

clemschn

(Themenstarter)

Anmeldungsdatum:
15. April 2016

Beiträge: 4

Ich habe jetzt in der Shell mit dem folgenden Code Erfolg gehabt:

find /share/Recordings/ueberwachung -type f -mtime +5 -delete
find /share/Recordings/ueberwachung2 -type f -mtime +5 -delete

Ich werde das jetzt wieder abspeichern und dann schauen, ob das als Cronjob auch ausgeführt wird.

Oder gibt es an dem Code noch etwas zu verbessern oder zu verändern?

Viele Grüße

Clemens

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13209

clemschn schrieb:

Oder gibt es an dem Code noch etwas zu verbessern oder zu verändern?

Ja.

1
find /share/Recordings/ueberwachung /share/Recordings/ueberwachung2 -type f -mtime +5 -delete

Wenn Du es aus einer bash heraus aufrufst, dann geht es noch kürzer:

1
find /share/Recordings/ueberwachung{,2} -type f -mtime +5 -delete

Wenn Du es auf alle Ordner anwenden willst, deren Name mit "ueberwachung" anfängt, dann geht es in jeder Shell so:

1
find /share/Recordings/ueberwachung*/ -type f -mtime +5 -delete

PS: Bitte nutze das passende Syntaxhighlighting für die Shell.

clemschn

(Themenstarter)

Anmeldungsdatum:
15. April 2016

Beiträge: 4

Kannst Du mir noch sagen, was Du mit Syntaxhighlighting meinst? Wie gesagt, ich habe von dem Ganzen eigentlich null Ahnung.

Viele Grüße aus dem Taunus

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13209

clemschn schrieb:

Kannst Du mir noch sagen, was Du mit Syntaxhighlighting meinst? Wie gesagt, ich habe von dem Ganzen eigentlich null Ahnung.

Den dritten Knopf von rechts oberhalb des Eingabefensters beim Posten.

Antworten |