Linux Script, biit um Hilfe!

Begonnen von Steffen, 15 Januar 2016, 05:58:53

Vorheriges Thema - Nächstes Thema

Steffen

Hallo!

Ich wollte nur eine einfaches script schreiben was Daten im einem Verzeichniss löscht was älter als 7 Tage ist, doch egal was ich schon versuchte habe kommt immer dieser Fehler:

[~]# bash /scripte/Cam_Auto_Delete.sh
BusyBox v1.01 (2015.11.17-17:32+0000) multi-call binary

Usage: find [PATH...] [EXPRESSION]

Search for files in a directory hierarchy.  The default PATH is
the current directory; default EXPRESSION is '-print'

EXPRESSION may consist of:
        -follow         Dereference symbolic links.
        -name PATTERN   File name (leading directories removed) matches PATTERN.
        -print          Print (default and assumed).

        -type X         Filetype matches X (where X is one of: f,d,l,b,c,...)
        -perm PERMS     Permissions match any of (+NNN); all of (-NNN);
                        or exactly (NNN)
        -mtime TIME     Modified time is greater than (+N); less than (-N);
                        or exactly (N) days


Inhalt des Script:

#!/bin/bash

find /share/CamVideo/ -type f \( -name "*.avi" \) -mtime +2 -exec rm {} \;
#find /scripte/ -type f -ctime +7 -exec rm -f {} \;
#find /share/CamVideo/* -mtime +2 -exec rm {} \;
#find /share/CamVideo/ -type f -mtime +1 -exec rm {} \;


ich hatte auch schon damit versucht find /share/CamVideo -type f \( -name "*.avi" \) -ctime +60 -exec rm {} \; aber genau das gleich!

Habe ich hier eine Denkfehler den ich nicht sehe???

Mfg Steffen

dev0

Ohne Klammern sollte es gehen.

find /share/CamVideo -type f -name "*.avi" -ctime +60 -exec rm {} \;

CoolTux


find /share/CamVideo -type f -name *.avi -ctime -60 -exec ls -all {} \;


Probier erstmal in der konsole ob es so geht

Danach kannst Du ja anpassen. Und beachte bitte das ctime das Erstellungsdatum ist, eventuell magst ja lieber schauen das es das letzte mal geändert wurde.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: dev0 am 15 Januar 2016, 06:39:59
Ohne Klammern sollte es gehen.

find /share/CamVideo -type f -name "*.avi" -ctime +60 -exec rm {} \;


Also bei mir klappt das so nicht, ich muß ein minus vor der 60 nehmen um ältere Dateien zu finden
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dev0

Stimmt. Ich vermute aber, dass das eigentlich Problem Busybox ist, dass nur -mtime und nicht -ctime kennt.

Steffen

Hallo!

Erstmal danke für eure Hilfe, aber leider immer noch der gleiche Fehler habe alle eure vorschläge ausprobiert,

woran könnte es denn bloß liegen?!? :(


find /share/CamVideo/ -type f -name *.avi -ctime -60 -exec ls -all {} \;
BusyBox v1.01 (2015.11.17-17:32+0000) multi-call binary

Usage: find [PATH...] [EXPRESSION]



Mfg

dev0


Steffen

Leider immer noch das gleiche..


[~] # find /share/CamVideo/ -type f -name *.avi -mtime -60 -exec ls -all {} \;
BusyBox v1.01 (2015.11.17-17:32+0000) multi-call binary

Usage: find [PATH...] [EXPRESSION]

dev0

Zeig mal die gesamte usage Meldung.

Steffen

Zitat von: dev0 am 15 Januar 2016, 07:08:27
Zeig mal die gesamte usage Meldung.

Ist immer die gleiche wie im meinem Ersten Post!

CoolTux

Dann fang an zu kürzen. Nimm als erstes -exec und alles dahinter weg und nimm nur den reinen find Befehl.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Steffen

Hallo!

Ich habe jetzt mal die Befehle auf einem Anderen Ubuntu System getestet und was soll ich sagen da klappen sie alle, es muss also an diesem liegen denn,
es ist ein Qnap Linux aber dachte das fast gleich wertig wäre in dieser grundfunktion!

Habt ihr vielleicht ne Ahnung was ich da nachinstallieren könnte oder Aktualisieren müsste damit es läuft???

Mfg Steffen

dev0

Dann kennt Dein find kein -ctime und kein -exec. Nimm -mtime und pipes in ein xargs
Mit Debian, Ubuntu oder Redhat würde es so gehen:

find /path -type f -name "*.conf" -mtime -1200 -print0 | xargs -0 ls -la

Vielleicht hast Du auch noch ein "anderes" find im Dateisystem liegen, dass mehr Optionen kennt.

Steffen

Da tut sich zwar was aber das ist auch nicht das Verzeichnis was er auslesen sollte:


[~] # find /share/CamVideo/ -type f -name "*.avi" -mtime -1200 -print0 | xargs -0 ls -la
BusyBox v1.01 (2015.11.17-17:32+0000) multi-call binary

Usage: find [PATH...] [EXPRESSION]

Search for files in a directory hierarchy.  The default PATH is
the current directory; default EXPRESSION is '-print'

EXPRESSION may consist of:
        -follow         Dereference symbolic links.
        -name PATTERN   File name (leading directories removed) matches PATTERN.
        -print          Print (default and assumed).

        -type X         Filetype matches X (where X is one of: f,d,l,b,c,...)
        -perm PERMS     Permissions match any of (+NNN); all of (-NNN);
                        or exactly (NNN)
        -mtime TIME     Modified time is greater than (+N); less than (-N);
                        or exactly (N) days

drwxr-xr-x    2 admin    administ      1024 Jan 11 07:09 .
drwxr-xr-x   18 admin    administ      1024 Jan 14 14:45 ..
lrwxrwxrwx    1 admin    administ         6 Nov 18 04:06 .BitTornado -> ../tmp
-rw-r--r--    1 admin    administ      7875 Jan 15 07:08 .bash_history
-rw-r--r--    1 admin    administ       175 Oct  9  2004 .bash_logout
-rw-r--r--    1 admin    administ       161 Oct  9  2004 .bash_profile
-rw-r--r--    1 admin    administ      1687 Jul 18  2007 .bashrc
-rw-r--r--    1 admin    administ        36 Jan 11 06:54 .buzzer_warnning.conf
lrwxrwxrwx    1 admin    administ        37 Jan 11 07:09 .plex -> /share/HDA_DATA/.qpkg/PlexMediaServer
-rw-r--r--    1 admin    administ        27 Jan 29  2007 .profile
lrwxrwxrwx    1 admin    administ        15 Jan 11 06:54 .ssh -> /etc/config/ssh
-rw-r--r--    1 admin    administ       923 Jan 11 07:51 .vimrc
lrwxrwxrwx    1 admin    administ        45 Jan 11 07:09 Library -> /share/HDA_DATA/.qpkg/PlexMediaServer/Library
-rw-r--r--    1 admin    administ      6526 Jul 11  2007 index_default.html

dev0

Letzter Versuch: -print statt -print0