[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bei datei veränderung per ftp hoch laden



Am Donnerstag, 9. Juni 2005 20:59 schrieb Florian:
> Hallo
> Was oder wie kann ich einen automatischen Upload per FTP realisieren 
> wenn sich eine datei oder eine datei in einem unterordner ändert?
> cronjob/-tab und eine batch datei?
Ja.
Ich habe mal eben hier ein kleines bash Script gebaut, das das rudimentär 
kann:
------x-------x---------x---------x---------x--------x-------
#!/bin/bash
FLAG=/home/jojo/src/script/test-dir/.stempel
TESTFILE=/home/jojo/src/script/test-dir/testfile

# Schauen wir mal, ob die Flagdatei schon da ist,
# wenn nicht anlegen und mit dem Zeitstempel füllen
test -f $FLAG || date >$FLAG

if [ $TESTFILE -nt $FLAG ] ; then
    echo Upload $TESTFILE
    # ncftpput -u user -p passwort remote-host remote-dir $TESTFILE
    # Ich ziehe hier allerdings rsync vor
    # rsync -e ssh -au $TESTFILE user@remote-host:/remote-dir/
   # Zeitstempel aktualisieren
    date >$FLAG
fi
------x-------x---------x---------x---------x--------x-------
Das Script benutzt den Unix-Epoch Zeitstempel Vergleich 
zwischen zwei Dateien ($FLAG gegen $TESTDATEI)
zu Entscheidung, ob ein Upload nötig ist, wenn die $TESTDATEI
neuer als die $FLAG Datei ist, "if [ $TESTFILE -nt $FLAG ] ; then",
dann tritt man den Upload an. Nicht vergessen nachdem Uppen die
Flagdatei zu aktualisieren.

Achja, falls Du noch eine Fehlermeldung in eine Logdatei schreibst, wenn der
FTP Server ausgefallen ist, dann würdest Du ein Europäoisches
Software Patent verletzen...
z.B.:
# ncftpput -u user -p passwort remote-host remote-dir $TESTFILE || echo >>"/var/log/serverüberwachung.log"

> Ich bin leider nicht so gut/anfänger mit der syntax für batch dateien.
Macht nichts, eine solche Aufgabe hilft verstehen.

> Hat die sprache eigentlich einen Namen? shell script = sprache shell?
Ich kenne das nur als shell-script. Gibt ganze Bücher darüber.
Allerdings gibt es soviele Varianten, wie Shells. (sh, bash, csh, ksh, zsh, ...)

Ein guter Start ist "man bash" zum Lesen.
Die meisten Sachen sind recht einfach ...

Ein Hinweis für Anfänger an dieser Stelle:
Das Script nicht mit einem Windows Mailreader speichern, sonst muß
man das mit "recode ibmpc..lat1" erstmal von Windows-ASCII auf Linux
fähiges ASCII übersetzen. 
Im Windows ASCII stände in der ersten Zeile, der MAgic Zeile, die den Interpreter
definiert:
#!/bin/bash\r\n
\r -> Carriage Return, \n Linefeed, damit würde das Script nach einem chmod +x uploader-script.sh
nicht ausgeführt werden können: "./uploader-script.sh: No such File or Directory".
Es wird nach "/bin/bash\r" gesucht, was nicht existiert.

Eine Ausführbare Datei wird in der ersten Zeile nach "#!" geprüft, was hinter dem "#!" wird als
interpreter für dieses Script/Ausführbare Datei verwendet.

mfG
 Jojo

-- 
Jürgen Sauer - AutomatiX GmbH, +49-4209-4699, jojo@automatix.de **
** Das Linux Systemhaus - Service - Support - Server - Lösungen **
** http://www.automatix.de                    ICQ: #344389676   **
OpenOffice erhalten Sie hier kostenfrei http://de.openoffice.org/

Attachment: pgpG2QThww90i.pgp
Description: PGP signature


Reply to: