Shell-Programmierung Unix/Linux

agentP

Forenlegende
Registriert
10. April 2002
Beiträge
10.115
Hallo ask1ler,
ich habe da so ein Problem mit einem shell-Skript und dachte mir: Kuckst du mal, ob sich hier vielleicht ein paar Cracks rumtreiben.
Mein Problem ist Folgendes:
Ich möchte auf einem Laufwerk täglich alle Dateien eines bestimmten Typs in einen Ordner verschieben, die während eines bestimmten Kalendertags (von 0:00Uhr bis 24:00Uhr erstellt bzw. geändert wurden. )
"find" mit der option "-mtime" bringt mich nicht wirklich weiter, weil mtime nicht den Kalendertag, sondern mit 24h rechnet.
Irgendjemand eine Idee?
Stehe ich tatsächlich auf der Leitung oder gestaltet sich da mit shell-Mitteln tatsächlich so schwer?
Falls jemand eine Idee hat wie man das einfach anders regeln kann z.B. mit perl, dann wäre das auch evtl. möglich. Leider spreche ich selbst (noch) kein perl.
 

agentP

Forenlegende
Registriert
10. April 2002
Beiträge
10.115
Habe nun eine Lösung, die allerdings wenig elegant ist. Wenn also jemand eine andere Idee hätte, wäre ich dankbar. Vor allem hätte ich den letzten Tag lieber automatisch berechnet. Ich lese ständig perl wäre für so was super, aber das kann nicht. Sonst vielleicht jemand?

Code:
for name in $(ls -ltra | grep "trc" | tr -s " " | grep "Nov 9" | cut -d " " -f9);
do
  mv $name ./trcsave061110
done
 

forcemagick

Forenlegende
Registriert
12. Mai 2002
Beiträge
6.038
also für dich interessant sein dürfte folgendes:
http://de.wikipedia.org/wiki/Cron
mithilfe der crontap kannst du die sache mit der zeit wohl am elegantesten lösen
willst du immer sämtliche dateien dieses typs verschieben? bzw. befinden sich diese dateien immer in einem bestimmten verzeichnis?
 

agentP

Forenlegende
Registriert
10. April 2002
Beiträge
10.115
Ja, über die crontab soll das mal laufen, aber das ist ja nicht das Problem. Mein Problem ist ja die Dateien zu identifizieren, die von einem bestimmten Datum stammen.
willst du immer sämtliche dateien dieses typs verschieben? bzw. befinden sich diese dateien immer in einem bestimmten verzeichnis?
Nein bzw. ja. Die Dateien sind immer vom gleichen Typ und im gleichen Verzeichnis, aber es sollen nicht alle verschoben werden, sodern eben nur die, die an einem bestimmten Datum angefasst wurden. Mein kleines Skript oben tut im Prinzip genau das, nur will ich ja nicht jeden Tag den Crontab-Eintrag ändern und ein anderes Datum eintragen. Deswegen würde ich gerne das Datum (oben im Beispiel: "Nov 9") dynamisch berechnen. Sprich: Der Job soll meinetwegen um 3:00Uhr nachts laufen und alle Dateien vom letzten Tag verschieben. Dazu muss ich aber das Datum vom letzten Tag ermitteln und in die Form "Mon dd" bekommen.
 

forcemagick

Forenlegende
Registriert
12. Mai 2002
Beiträge
6.038
hmmm na dann hab ich dich da wohl doch etwas falsch verstanden bzw... es mir zu einfach vorgestellt ;) ....

bin etwas in zeitdruck im moment.. vielleicht fällt mir heute am späteren abend noch was brauchbares ein....

wär doch gelacht wenn wir da keine lösung fänden
 

Ähnliche Beiträge

Oben