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