Buch zum Thema Scriping unter Linux

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
maggot-ats
Beiträge: 69
Registriert: 15.07.2003 14:16:16

Buch zum Thema Scriping unter Linux

Beitrag von maggot-ats » 17.10.2003 16:52:46

.....habt ihr sowas schon gesehen/getestet ? Hat jemand eine Empfehlung ?
Oder gibt es Sites, die sich ausschliesslich mit dem Thema befassen ????
Ich bin es nämlich leid immer nach allem wie ein irrer suchen zu müssen,
z.b. nach einem Script, das dateien eines bestimmten alters (und älter) löscht......

Ideen ?

Benutzeravatar
Night.Hawk
Beiträge: 655
Registriert: 24.05.2003 11:00:39
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Night.Hawk » 17.10.2003 17:07:40

________________________________________________
Leben und leben lassen ...

maggot-ats
Beiträge: 69
Registriert: 15.07.2003 14:16:16

Beitrag von maggot-ats » 17.10.2003 17:47:33

ja, das schaut schon sehr gut aus, danke
für das automatische löschen hast du nicht zufällig was oder :wink:
Ich habe da bisher nur echt schlechte Lösungen finden können...., dabei sollen einfach nur dateien, welche ein bestimmtes alter haben gelöscht werden... ich weiss, wie mann dateien mit find so ausgeben kann und ich weiss auch, wie man diese dann löscht, nur bekomme ich das nicht zusammen in ein Script, welches man dann einfach mit Scriptname aufruft und dann die vordefinierte Aktion (Löschen) durchführt....
kann doch eigendlich nicht so schwer sein...oder ?

Code: Alles auswählen


#!/bin/bash
for ALTEDATEI in "$@";
do
      rm -R "$ALTEDATEI"
done


dabei muss man das halt mit:

Code: Alles auswählen

/pfad/zum/script/loeschen `find /pfad/zum/bestimmenverzeichnis -mtime 30`

aufrufen, das will ich aber nicht.....sondern einfach scriptname und gut ist...

Benutzeravatar
Night.Hawk
Beiträge: 655
Registriert: 24.05.2003 11:00:39
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Night.Hawk » 17.10.2003 18:01:58

Sorry,

ich habe mir die Seiten rausgesucht, damit ich mir selber mal scripting beibringen kann, hatte aber bisher noch keine Zeit = NULL Ahnung :(

Aber hier kann bestimmt jemand anders helfen!
________________________________________________
Leben und leben lassen ...

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 17.10.2003 18:22:29

Wie wär's damit?

Code: Alles auswählen

for ALTEDATEI in `find /pfad/zum/bestimmenverzeichnis -mtime 30`; do
      rm -R "$ALTEDATEI"
done
Das tut allerdings nicht in jedem Fall, da for die Elemente wohl nach Leerzeichen trennt und demzufolge kein Space im Dateinamen sein darf.
Wie man das nun in der bash löst weiß ich nicht. Ich würde dafür wohl einfach Perl nehmen..

Man könnte es auch mit

Code: Alles auswählen

find pfad -mtime 30 -print | xargs rm -R
machen.
Mit dem -exec Schalter von find würde das auch gehen.
Möglichkeiten gibt es da genug..

Gruß,
Florian

maggot-ats
Beiträge: 69
Registriert: 15.07.2003 14:16:16

Beitrag von maggot-ats » 17.10.2003 18:30:27

hmm wohl doch nicht so leicht, wie ich dachte........
wie würde das denn in perl aussehen ? Das mit den Leerzeichen gefällt mir nich....

Bis hier schon einmal vielen Dank !!!

Benutzeravatar
riankrimsteel
Beiträge: 131
Registriert: 23.03.2003 19:06:06
Wohnort: Göttingen
Kontaktdaten:

Beitrag von riankrimsteel » 17.10.2003 19:00:01

Hi,

nur mit find sieht das in etwa so aus:

Code: Alles auswählen

find /dein/pfad -mtime 30 -exec rm -R {} \;
Dabei müssten auch Leerzeichen beachtet werden.
Als Scipt wär's dann vielleicht schön wenn man das Alter und/oder noch den Pfad mit einbaut.

Gruss
Dennis
For every problem, there is a solution that's simple, easy, and wrong.

maggot-ats
Beiträge: 69
Registriert: 15.07.2003 14:16:16

Beitrag von maggot-ats » 19.10.2003 16:18:48

hmm... ok, nur bei mir spuckt z.b. find /root/test1 -mtime 1 gar nichts aus..... kann es sein, das dieser Parameter ungeeignet ist ? Bei mir ist der angegebene Wert jedenfalls egal..... der findet eh nix..... obwohl sich neue (heute erstellte) und alte (älter als 20 Tage) Dateien dort befinden.... ????

Somit funktioniert auch keine Lösung die mit find /pfad -mtime xy ausgestattet ist.....
Hat jemand ne Ahnung warum das so ist ?
Meine Uhr jedenfalls ist völlig richtig eingestellt....

So schaut das nun bei mir aus:

Code: Alles auswählen

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
find /root/test1/ -mtime 10 -exec rm -iRv {} \;
habe das Script auch direkt ausgeführt d.h. die Befehlsfolge direkt auf der shell ausgetestet..... für den Fall, das z.b. find nicht gefunden werden kann....

HEUL 8O

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 19.10.2003 16:59:40

Code: Alles auswählen

find /root/test1 -mtime 1
spuckt Dateien aus, die vor genau einem Tag modifiziert worden sind.
(genauer gesagt: jetzt-48h < mtime <= jetzt -24h)

Wenn Du alle Dateien haben willst, die vor mehr als einem Tag modifiziert worden sind:

Code: Alles auswählen

find /root/test1 -mtime +1
Vor weniger als einem Tag:

Code: Alles auswählen

find /root/test1 -mtime -1
Siehe auch

Code: Alles auswählen

man find
TESTS
Numeric arguments can be specified as

+n for greater than n,

-n for less than n,

n for exactly n.

maggot-ats
Beiträge: 69
Registriert: 15.07.2003 14:16:16

Beitrag von maggot-ats » 19.10.2003 17:04:38

argghhh.... bin ich blind......

Danke.....probier das gleich mal aus...

Antworten