PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FTP Skript will nicht funktionieren.



metalhen
05.01.03, 10:21
Hallo.
Ich versuche seit ner Weile ein FTP-Sktipt zum laufen zu bekommen, dass sich auf dem Server meiner Domain (Puretec) einloggt und eine Datei hochläd.
An sich sieht das ja recht einfach aus, doch ich bekomme nur Fehler und kann mir nicht erklären warum.
Mein Skript:

ftp -nv ftp.metalhen.de <<"EOF"
user meinuser mein passwd
put blah.txt blah.txt
cd home
put blah.txt blah.txt
bye
EOF

Also das macht folgende Fehler. Die komischerweise nicht auftreten wenn ich es ohne skript alles einzeln eingebe von Hand.
Die Authentifizierung geht. Das put in das Wurzelverzeichnis auch noch.
Doch das "cd home" ergibt "unknown dir" obwohl es vorhanden ist.
also geht das zweite put ins leere.
zu den Befehlen bye, quit, send und noch anderen sagt er "?invalid command"

SeeksTheMoon
05.01.03, 10:40
vielleicht musst Du statt einem relativen Pfad einen absoluten Pfad angeben

metalhen
05.01.03, 10:43
Hab ich versucht. Auf ein absoluter Pfand hilft nix :(

Bauchi
05.01.03, 11:29
mhh ich benutze für sowas immer die ~/.netrc


cat /home/bauchi/.netrc
machine 1.2.3.4
login bauchi
password 12345
macdef init
cd /schlagmichtot
lcd /tmp
bin
get file1
ascii
put file2
bye


und dann halt per cronjob ein
ftp 1.2.3.4

funzt wunderbar

metalhen
05.01.03, 11:57
hm
ne Lösung meiner Art nach wäre mir fast lieber.
Es geht im Endeffekt darum, dass ich bei Start meines Servers mein ADSL starte.
Habe nun ein script gemacht, dass meine bezogene IP in eine HTML-Datei schreibt.
Diese möchte ich nun auf meine Domain hochladen, damit ich mit einem bestmmten Link, dann nem quasi Direktlink, zu meinem Server zuhause hab.
das würd ich gern NUR in das eine Skript schreiben.
Es geht nur darum die eine Datei auf einen FTP zu laden in dem Skript.
aber warum funktioniert meine Lösung bloß net :(
Diese Fehlermeldungen sind mehr als komisch.

Bauchi
05.01.03, 12:07
schon mal was von dyndns gehört ?????

http://www.dyndns.org

metalhen
05.01.03, 12:15
ja,

a) is das nicht nun kostenpflichtig?
dachte da mal was gehört zu haben.

b) das geht doch nur mit deren kurz-URLs, oder?
will es es als Subdomain meiner eigenen Domain (Puretec) haben..

Bauchi
05.01.03, 12:19
kost nix ..

und dann nimmste halt tralalla.dyndns.org und auf deiner puretec domain verlinkste im html code einfach auf den dyndns host ... that's it :)

metalhen
05.01.03, 12:22
hehe

und wenn ich abgelöst von dem obigen Szenario mit nem FTP-Skript was machen will?

und meins is doch so, wie alle Beispiele hier im Forum

und warum geht per Hand einloggen und dann "cd home"
und wenn es im Script abläuft kennt er das Verzeichnis nicht?
:confused: :confused: :confused:

hjn
05.01.03, 12:25
hallo

ich benutze diese script

ftp -n << EOF
open www.xxxxx.de
user www.xxxxx.de password
cd privat
lcd /tmp
put index.html
bye
EOF

vieleicht hilft es
hjn

fs111
05.01.03, 12:54
man ncftpput und Deine Sorgen sind weg.

fs111

metalhen
05.01.03, 12:59
kann das vielleicht an der Script-Datei liegen.
Sehe gerade...
der put Befehl ging ja. die Datei die nun auf dem Server liegt in ./ heißt nicht wie erwartet index.html sondern index.html? (in der Linuxkonsole zeigt er ein ?, in windows-ftp-client ein undarstellbares zeichen!) sind da in der Skriptdatei unsichtbare zeichen? Hab eigentlich nur mir Return nen Umbruch gemacht. Und es sowohl mit emacs (auf exportiertem X in Cygwin auf Win-PC) als auch mal mit Windows Editor geschrieben..
dann wäre "?invalid commant" bei "bye","get" usw auch erklärt.
Doch da sind keine unsichtbaren zeichen, ich seh keine.
wie womit schreib/formatier ich das denn am besten..

Jinto
05.01.03, 15:23
Windows verwendet <CR>+ <LF> während unter Unix <CR> üblich ist. vi kann es konvertieren bzw. zeigt es dir an. Emacs kann das bestimmt auch, aber den verwende ich nicht.

HTH

SeeksTheMoon
05.01.03, 16:26
oder SciTE: www.scintilla.org

dauni
08.01.03, 18:50
Ist gerade bei Pro-Linux aufgetaucht:
http://www.pro-linux.de/news/2003/5079.html



#!/bin/bash
################################################## #######################
# #
# upip.sh - Externe IP ermitteln und auf einen FTP Server laden #
# Geschrieben von Sven Blumenstein #
# #
################################################## #######################
# #
# Ich habe dieses Script geschrieben um jederzeit per Internet auf #
# die IP meines Linux Servers und somit den Server selber zugreifen #
# zu koennen. Auf die Verwendung eines DynDns Dienstes wird absichtlich #
# verzichtet, da dadurch eine "statische" Adresse entsteht unter der #
# die dynamische IP angesprochen werden kann. Dadurch verschwindet #
# der (kleine) Sicherheitsvorteil einer dynamischen IP :) #
# #
# Kleiner Tip: Das Verzeichniss in welches die html Datei hochgeladen #
# wird sollte nach Moeglichkeit per .htaccess Datei geschuetzt werden. #
# #
# Aus Sicherheitsgruenden enthaelt diese Datei weder Benutzername #
# noch Passwort fuer den FTP Server. Zur authentifizierung sollte #
# man eine Datei namens ".netrc" im home Verzeichniss des Benutzers #
# anlegen der diese Script ausfuehrt und folgendes hineinschreiben: #
# #
# machine yourdomain.com login youruser password yourpass #
# #
# Nicht vergessen die Datei per "chmod 0400 .netrc" zu schuetzen! #
# Wenn man nun "ftp yourdomain.com" eingibt, werden die Logindaten #
# aus der .netrc gelesen. Siehe "man netrc" fuer weitere Infos. #
# #
################################################## #######################

DOMAIN=yourdomain.com
DIR=remotedirectory
IP_PATH=/home/ip/index.html
IP_FILE=`basename $IP_PATH`
MACHINE=`hostname`

# TIME=`date +%H:%M:%S`

if [ `uptime | awk -F, '{print NF}'` = 5 ]; then
TIME=`uptime | awk -F, '{print $1}'`
else
TIME=`uptime | awk -F, '{print $1, $2}'`
fi

IP=`wget -q -O - http://checkip.dyndns.org |
grep Address | awk '{print $4}'`

if [ -e $IP_PATH ]; then
rm -f $IP_PATH
else
touch $IP_PATH
fi

cat << EOF > $IP_PATH
IP: $IP
$TIME
EOF

(echo cd $DIR; echo del $IP_FILE; echo put $IP_PATH $IP_FILE;
echo bye) | ftp $DOMAIN 1>&2>/dev/null

# End of file