ftp via shellscript - problem

Permalänk
Hedersmedlem

ftp via shellscript - problem

Jag hjälper en kompis att sätta upp en liten oscommerce-affär på nätet (han är elektriker och ska sälja elprylar) och behöver sätta upp ett litet system där jag ftp'ar över alla beställningar vid dagens slut till en ftp hos hans leverantör. Varje beställning är en liten xml-fil som läggs över hos dem och sedan tas hand om.

Jag tänkte sätta upp ett litet shellskript som körs via crontab dagligen och som helt enkelt kopplar upp sig via ftp till den externa servern och flyttar över filerna dit.

Efter lite sökande på nätet så tycktes det inte vara så krångligt och jag skapade ett shellskript som såg ut så här:

Citat:

#!/bin/sh
ftp -n -i ftp.myftp.com <<EOF
user myusername mypassword
cd /
lcd /home/storefolder/public_html/orders/
mput *
quit
EOF

(naturligtvis med rätt ftp-adress och rätt inloggningsuppgifter)

Loggar jag in på min server via putty/SSH (servern kör Red Hat med Cpanel) och kör dessa rader vid kommandopromten så är det inga problem. Jag kan logga in till den externa servern (som också är en Linux Red Hat server - min andra server) och kopiera över filer till den.

Lägger jag däremot in texten ovan i ett shellskript och kör sh myfile.sh så körs filen men jag får följande felmeddelande:

Citat:

This security scheme is not implemented
This security scheme is not implemented
KERBEROS_V4 rejected as an authentication type
Login authentication failed
Login failed.

Jag erkänner utan problem att Linux är inte min starka sida och därför så är jag just nu lite osäker på dels vad felet kan vara men även var jag ska börja nysta någonstans för att lista ut vilket problemet är och vilken lösning som finns. Jag har försökt Googla runt men som alltid så är det svårt att använda rätt sökord.

Någon som kan ge mig en liten putt i rätt riktning eller hjälp hur man enklast kan lösa detta (ftp'a över filer till en extern ftp)?

Tack på förhand.

B

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Björn Endre

[Massor med text]

Kan detta vara något?
http://nixcraft.com/getting-started-tutorials/13566-bash-shel...

Permalänk
Hedersmedlem

Tack för tipset. I grunden är det samma skipt som jag har bara att de använder Bash i första raden.

Men jag inser just nu att jag är en idiot. Skriptet fungerar - ungefär. Efter att ha testat skriptet på sidan du tipsade om fick jag ett nytt felmeddelande som gnällde över ftp-porten. Det visar sig att om jag kör ftp-kommandot vid kommandopromten så funkar det direkt men om jag kör det i shellskriptet måste jag specificera porten (21) för att den ska ansluta.

Konstigt nog har jag fått ett annat problem ... nu när jag kör shellskriptet så loggar den in på servern som den ska men däremot skickar den inte vidare några kommandon vilket innebär att jag får fram ftp>-promten.

Citat:

#!/bin/sh
ftp -inv ftp.myftp.com 21<<EOF
user myusername mypassword
cd /
lcd /home/storefolder/public_html/orders/
mput *
quit
EOF

D v s den kör inte automatiskt alla kommandon som finns mellan EOF utan stannar upp efter att den anslutit ....

Nån som har någon ide?

Permalänk
Hedersmedlem

Ett space mellan portnummret och <<EOF kanske?

Permalänk
Medlem

ncftpput ?
Låter lättare.

Permalänk
Hedersmedlem

Aphex - tack! Tänk att ett enkelt missat mellanslag kan påverka så mkt. Nu kommer jag iallafall ett steg vidare.

Nu kommer jag fram till

user myusername mypassword

och den visar att den plockar användarnamnet men stoppar och efter ett litet tag säger att lösenordet är fel trots att samma kommando funkar från promten ... jaja - jag ska leta vidare. Förvirrat att man ska få strul med en sån på pappret enkel sak. Men, man lär sig så lägne man lever.

basn - ska gräva lite om ncftpput. Verkar inte ha den på min server så får isåfall installera den.

Permalänk
Medlem

Solklart fall för curl

Du hittar ett par exempel för FTP upload en bit ner på denna sida.