shell-script

tremolo2k

Well-Known Member
Hallo Forum,

wer von euch hat Lust für mich ein kleines sh-script zu schreiben? Ich habe absolut keine ahnung davon, und hoffe, einen freiwilligen zu finden.

Also:

Das Script soll im Verzeichnis /pfad/zur/quelle/ nachsehen, ob darin Files liegen, und prüfen (falls möglich) ob die in Benutzung sind, und wenn sie Frei sind, die in das Verzeichnis /pfad/zum/Ziel/ VERSCHIEBEN. Andere möglichkeit wäre, das erstelldatum/Uhrzeit zu ermitteln, und dann, wenn die Dateien länger als z.B. 10 Minuten da liegen, zu verschieben. Das Script sollte alle 5 Minuten prüfen.


Wäre sowas möglich? Gibt es eine andere (einfachere) Lösung? Verlinken is nicht, sie müssen verschoben werden.
 
Hab sowas vor ewigen Zeiten mal für nen Freund geschrieben. Ist sowohl für Verzeichnis->Verzeichnis als auch Verzeichnis->Mtools-Device gedacht. Benutzt wahlweise dialog (interaktiv) oder text (d.h. z.B. in .profile einzubinden), hat ein einstellbares Delay und kopiert/verschiebt die Daten, wenn sich deren Grösse innerhalb dieses Delays nicht mehr ändert von der Quelle ans Ziel. Ist nicht gut getestet und kaum dokumentiert, aber ich habs grad nochmal ausprobiert und es läuft noch :D

Also wenn Interesse oder Bastelspass (Lizenz gibts nicht) besteht, versuchs mal damit. Ansonsten tuts wahrscheinlich auch nen 10-Zeiler, aber dazu isses grad zu schon zu spät ;)

baba,
kaz
 
Hab sowas vor ewigen Zeiten mal für nen Freund geschrieben. Ist sowohl für Verzeichnis->Verzeichnis als auch Verzeichnis->Mtools-Device gedacht. Benutzt wahlweise dialog (interaktiv) oder text (d.h. z.B. in .profile einzubinden), hat ein einstellbares Delay und kopiert/verschiebt die Daten, wenn sich deren Grösse innerhalb dieses Delays nicht mehr ändert von der Quelle ans Ziel. Ist nicht gut getestet und kaum dokumentiert, aber ich habs grad nochmal ausprobiert und es läuft noch :D

Also wenn Interesse oder Bastelspass (Lizenz gibts nicht) besteht, versuchs mal damit. Ansonsten tuts wahrscheinlich auch nen 10-Zeiler, aber dazu isses grad zu schon zu spät ;)

baba,
kaz

wenn ich jetzt

$ icp -stop
$ icp -copy mv
$ icp -start

eintipp, verschiebt er mir dann die dateien? und in welchem intervall? 60 Sekunden? läuft das programm als Daemon ?

und wie ist das mit der Lizenz? darf ich das programm nun nutzen oder nicht?!
 
Aehm, ja, wie gesagt das Programm ist etwas älter und dazu auch recht schlecht programmiert :p
Code:
$ icp -help
zeigt an, wie die aktuellen Einstellungen sind
Code:
$ icp -time 60
setzt das Intervall auf 60 Sekunden
Code:
$ icp -copy mv
setzt den Kopierbefehl auf "mv"
Code:
$ icp -start
startet das Skript mit den aktuellen Einstellungen im Hintergrund bis
Code:
$ icp -stop
eingegeben wird. Die Einstellungen musst Du logischerweise nur einmal machen, da sie gleich von der Kommandozeile in die Konfigurationsdatei übernommen werden. Mehrere Optionen auf der Kommandozeile sind nicht erlaubt, also
Code:
$ icp -time 60 -copy mv -start
führt zu irgendwas unschönem ;)

Wie gesagt, vielleicht fährst Du mit nem kleinen 10-Zeiler und nem Crontab Eintrag besser.
Code:
#!/bin/sh
SRCDIR=/source/
DSTDIR=/target/
find $SRCDIR -type f -mmin 1 | while read FILE
        do
                echo mv $FILE $DSTDIR
        done
und in die crontab sowas wie
Code:
* * * * * <pfad zum script>
Das checkt dann alle Minute und verschiebt Dateien, die in der letzten Minute verändert wurden. Ist eher nicht optimal, falls da grad ne Datei im SRC landet, die eigentlich nocht gar nicht vollständig da ist und dann trotzdem ins DST verschoben wird - vielleicht hat ja noch jemand ne Idee. Ansonsten war das jetzt aus der holen Hand so abgetippt, also vorher testen ...
 
Zurück
Oben