Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

probleme--> verzeichnisse löschen anhand vom Datum

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

probleme--> verzeichnisse löschen anhand vom Datum

Beitrag von snoopykilla »

Hallo alle miteinander.

Ich habe wirklich ein ersthaftes Problem.

Ich bin in Linux ein blutiger Anfänger!

kurz und bündig!

Wir haben einen Mailserver der jede Stunde updates fährt und dabei neue Verzeichnisse mit dem Namen
Beispielsweise AVPBase01.10.2004,99724
bis AVPBase25.11.2004,104860
ja und di platte ist nicht besonders groß daher manuell löschen!

Nun möchte ich nen script schreiben der alle AVPBase Verzeichnisse sucht und dann alle Verzeichnisse bis auf die die in den letzten 2 Tagen angelegt worden sind löschen!!

Bin hier echt am verzweifeln! :-(


MFG

Andre
Zuletzt geändert von snoopykilla am 20. Apr 2005, 10:02, insgesamt 2-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

1. Der Titel ist völlig irreführend :)

2. Du brauchst ein Programm, dass Ordner anhand ihres Datums ermittelt: --> find und als Stichworte -atime und -type d

3. diese Ergebnisse können dann mit einer for-Schleife gelöscht werden

--> man bash für die Schleife, man find für die Suche
--> wenn Du eine erste Löung hast, kannst Du Dich ja melden :)

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

Oh danke für die antwort!

Oh man aber tausend dank nochmal für deine antwort! Ich hoffe ich kriege das morgen in der arbeit hin sonst krieg ich eine auf den deckel! Zum kotzen als auszubildender in so nem kleinBetrieb! Egal tut nix zur sache.

Wollte mich auf jedenfall mal rechherzlich bis hierher danken!

MFG
Zuletzt geändert von snoopykilla am 20. Apr 2005, 10:04, insgesamt 1-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

man bash und man find beantworten alle Deine Fragen * Punkt *

wenn Du keine eigene Energie aufwendest, dann werde ich hier nicht weiter helfen, wenn Du eine fertige Lösung haben willst, dann frag Deinen Chef, ob er meine Tagessätze zahlt. -> Anfrage per pm

Wenn Du Probleme mit einem 'fertigen' Script hast, wird Dir hier weiter geholfen werden, aber das ist keine kostenlose 'mach-mal-support-hotline'. Schreib ein Script und bei Problemen frag wieder

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

Es hat ja keiner Verlangt das du es schreiben sollst! aber meine Frage war ja lediglich man was ich damit machen soll!

wie gesagt ich hab in Linux noch nie was gemacht und finde über man beim googlen nix wo mir sagen würde was es genau machen würde!

Ich sitz hier schon ne Woche davor und suche Befehle usw! Aber egal was und wie ich es ins script schreibe funktioniert es nicht!

Ich such jetzt einfach nochmal weiter und schau das ich irngedwas mal zusammenbekomme was funzt!

MFG

Und danke nochmals
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

Oh man jetzt hab ich es!!!

Sorry wie gesagt keinen plan!

der man im zusammenhang mit find listet mir alles auf was ich machen kann ölö

den brauch ich in meinem script weiter ja gar nicht

Oh man ist me blöd!

Danke
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

Code: Alles auswählen

#find /opt/AVP -name 'AVPBase*' -type d -atime +2 
oder
#find / -name 'AVPBase*' -type d -atime +2
ok soweit sogut wollte es mal testen, ok, aber sobald ich -atime +2 hinhänge funktioniert gar nix mehr (er bringt kein Ergebnis)! er bringt mir keine Suchergebnisse, aber es sind alle Verzeichnisse älter als 2 Tage bis auf ein Testverzeichnis das ich heute erstellt habe! Anhand des Befehls soweit ich ihn verstehe müsste er doch alle AVPBase Verzeichnisse auflisten bis auf das eine das ich heute erstellt habe oder nicht? Irre ich mich etwa?

und setzte ich -atime -2 hin dann müsste er alle Verzeichnisse bringen die ich die letzten 2 Tage nicht mehr geöffnet habe! Aber er bringt mir da trotzdem alle Verzeichnisse auch das ich heute neu erstellt habe!

Was habe ich falsch gemacht? Ich brauche doch das Suchkriterum -Name AVPBase weil sonst bringt er mir auch die Verzeichnisse Base usw mit! und type d auch da ich ja nur auf Verzeichnisse los will!

Hoffe jemand kann mir helfen
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

Du kannst alte Posts auch editieren, musst nicht mit Dir selber reden :)

also 1. man ist dein bester Freund :) Du kennst ein Programm und suchst Optionen -> man befehl, hier also man find

jetzt ist nur noch die Frage, ob Dein -atime-Fenster richtig gewählt ist ... oder ob es Mode-Change-Daten sind, die Dich interessieren

Du kannst ja die Dateien mal genauer auseinander nehmen, stat <FILENAME> sagt Dir alles was Du wissen willst und dannn kannst Du entscheiden, ob atime, ctime oder mtime das relevante Datum hat.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

@TeXpert vielen rechtherzlichen dank!
schuldigung das ich mich so lang nicht mehr gemeldet hatte aber hier gings drunter und drüber und musste daher die arbeit abbrechen!

aber wie du schon sagtest es war nicht -atime sondern -ctime +2

funktioniert soweit alles wunder bar

Code: Alles auswählen

#find /opt/AVP -name 'AVPBase*' -type d -ctime +2
so nun habe ich das ganze versucht in eine Schleife einzubauen! da kamen bei mir schon wieder die nächsten fehler!

Code: Alles auswählen

#for löschvorgang in find /opt/AVP -name 'AVPBase*' -type d -ctime +2 do echo %löschvorgang gelöscht
ich hoffe das das blos ne kleinigkeit ist und ich nicht wieder alles falsch habe!:cry:

MFG

Andre
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

snoopykilla hat geschrieben:

Code: Alles auswählen

#for löschvorgang in find /opt/AVP -name 'AVPBase*' -type d -ctime +2 do echo %löschvorgang gelöscht
ich hoffe das das blos ne kleinigkeit ist und ich nicht wieder alles falsch habe!:cry:
der befehl "find" hat auch einen "-exec". Mit hilfe dieses Parameters kann man für jeden Treffer einen bestimmten Befehl ausführen. Beispiel:

Code: Alles auswählen

find /opt/AVP -name 'AVPBase*' -type d -ctime +2 -exec ls -ld {} \;
Wenn du dir dann sicher bist, dass du das wirklich alles löschen willst, kannst du ja dann den "ls -ld" im Beispiel durch "rm -rf" ersetzen...

Außerdem empfehle ich:

Code: Alles auswählen

man find
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

boah danke

jetzt funktioniert alles!

in der man war ich die ganze zeit und habe gesucht aber irgendwie kam ich da nicht ganz zurecht!

Vielen dank

jetzt hab ich nur noch ein problem! jetzt will mein cheff auch noch das alles in ein logfile geschrieben wird! soweit so gut logfile alles funktioniert!

aber er würde gern vor jedem gelöschten file im logfile noch das heutige Datum stehen haben! ich habe dann stehen

Code: Alles auswählen

do
echo $date `%D' - $loeschverzeichnis 'wird geloescht...!' >> /var/log/killoptavp.log
rm -r $loeschverzeichnis
echo $date `%D' - $loeschverzeichnis 'ist geloescht!' >> /var/log/killoptavp.log
done
muss ich das Datum vorher in ne Variable schreiben oder wie sollte ich es am besten hier machen?

MFG

Andre
Zuletzt geändert von snoopykilla am 20. Apr 2005, 14:54, insgesamt 1-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

snoopykilla hat geschrieben:

Code: Alles auswählen

#for löschvorgang in find /opt/AVP -name 'AVPBase*' -type d -ctime +2 do echo %löschvorgang gelöscht
OK, das exec hast Du schon gehört, aber das Hauptproblem bei Deiner Schleife ist die falsche Syntax der for-Schleife.
notoxp hat geschrieben: Außerdem empfehle ich:

Code: Alles auswählen

man find
das hab ich Ihm ja auch schon nahegelegt, und wenn der Hundetöter auch noch in

Code: Alles auswählen

man bash
geschaut hätte, wäre Ihm auch die Syntax von for-loops bekannt...
snoopykilla hat geschrieben: ich hoffe das das blos ne kleinigkeit ist und ich nicht wieder alles falsch habe!:cry:
solange Du nicht lernst die manpages zu lesen und zu verstehen, wirst Du immer wieder vor diese Wände laufen.
Zuletzt geändert von TeXpert am 20. Apr 2005, 14:51, insgesamt 1-mal geändert.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

boah danke

jetzt funktioniert alles!

in der man war ich die ganze zeit und habe gesucht aber irgendwie kam ich da nicht ganz zurecht!

Vielen dank

jetzt hab ich nur noch ein problem! jetzt will mein cheff auch noch das alles in ein logfile geschrieben wird! soweit so gut logfile alles funktioniert!

aber er würde gern vor jedem gelöschten file im logfile noch das heutige Datum stehen haben! ich habe dann stehen

Code: Alles auswählen

do
echo $date `%D' - $loeschverzeichnis 'wird geloescht...!' >> /var/log/killoptavp.log
rm -r $loeschverzeichnis
echo $date `%D' - $loeschverzeichnis 'ist geloescht!' >> /var/log/killoptavp.log
done

muss ich das Datum vorher in ne Variable schreiben oder wie sollte ich es am besten hier machen?
Zuletzt geändert von snoopykilla am 20. Apr 2005, 14:53, insgesamt 1-mal geändert.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

muss ich das Datum vorher in ne Variable schreiben oder wie sollte ich es am besten hier machen?
Du hast das Datum doch schon in einer Variablen...
(Hint: $date ist ein Variable mit dem Namen date)

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
snoopykilla
Newbie
Newbie
Beiträge: 9
Registriert: 12. Apr 2005, 09:49
Wohnort: Nürnberg

Beitrag von snoopykilla »

ja aber er spuckt mir im logile nichts aus mit dem $date!

und wo habe ich das datum schon in ner Variable?
ja mit $date


MFG

Andre
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

dann lies die bash-manpage oder kauf Dir ein Buch.

Code: Alles auswählen

$date
ist eine Variable mit dem Namen date, wenn da noch nichts drinsteht, dann solltest Du vorher einmal:

Code: Alles auswählen

date=FOOBAR
machen, dass da was richtiges drinsteht. dann solltest Du wirklich in

Code: Alles auswählen

man bash
oder hier im Forum nachlesen :) wie Du ein Programm aufrufst und die Ausgabe in einer Variablen speicherst.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
pingoman
Newbie
Newbie
Beiträge: 23
Registriert: 19. Jun 2004, 16:37

Beitrag von pingoman »

@snoopykilla,

es reicht wenn Du folgende Seiten von Anfang bis Ende liest, danach wird Dir so einiges klar sein.

http://www.tldp.org/LDP/abs/html/index.html

anderen Menschen hier im Board, wünsche ich auch viel Spaß beim lesen. Dies ist meine private Fibel die ich immer aufsuche wenn ich mal nicht so recht weiterkomme.

Grüße

Pingoman
carsten
Guru
Guru
Beiträge: 1632
Registriert: 27. Jan 2004, 13:27
Wohnort: Mittelhessen

Beitrag von carsten »

Will der Chef vor dem Löschen eigendlich noch ne Sicherungskopie der zu löschenden Datei? ;)

Oder das Löschprotokoll als Mail an seinen privaten Account?

Mal schaun, was für Unfug mir noch so einfällt *G*

Aber was hilfts mir, eine gelöschte Datei zu protokollieren, denn die bekomm ich eh nicht mehr lebendig...

...

Ha. noch ne Idee: Das ganze mit nem Webbrowser darstellen und per https abrufbar machen, mit Nutzerverwaltung usw.
Intel DB65ALB3, Chipsatz B65, Celeron G540, 4GB, 1x1TB System, 2x 2TB SATA RAID1, SuSE 13.2 (noch)
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

carsten hat geschrieben:Will der Chef vor dem Löschen eigendlich noch ne Sicherungskopie der zu löschenden Datei? ;)
Ja, bitte! Und zwar in /dev/null!
Aber was hilfts mir, eine gelöschte Datei zu protokollieren, denn die bekomm ich eh nicht mehr lebendig...
Aber ich weiß dann, welche dateien ich besser nicht geschreddert hätte. Das ist übrigens die Idee:
nimm shred statt rm!
Antworten