philosoph
Goto Top

In Putty Befehle eingeben - keine Auswirkung

Hallo alle zusammen,

ich möchte mit putty folgendes erreichen:

1. Datei von einem remote FTP Server auf den lokalen Server herunterladen.
2. Datei von ANSI in UTF-8 ohne BOM konvertieren.
3. "php6 magmi.cli.php -profile=artikel_status -mode=update" ausführen, um die heruntergeladene Datei mit magmi zu nutzen.

Und genau dabei scheitere ich:
Wenn ich in mein putty den unteren Code einfüge, wird alles bis Schritt zwei ausgeführt. Also Datei heruntergeladen und in UTF-8 umgewandelt funktioniert.
Die letzte Zeile wird nicht ausgeführt:
php6 magmi.cli.php -profile=csv_auto -mode=update
Wenn ich diese letzte Zeile manuell nochmal eingebe und mit Enter bestätige, wird diese Zeile jedoch ausgeführt.

Wisst ihr was ich falsch mache?

Das ist mein Script
#!/bin/bash
HOST='website'   # change the ipaddress accordingly  
USER='username'   		# username also change  
PASSWD='passw'         	# password also change  
ftp -inv $HOST<<EOF
quote USER $USER
quote PASS $PASSWD
bin
cd /       
lcd "dev-projekt-top/var/import/"   
mget ItemAvailibility.csv*
cd dev-projekt-top/var/import
lcd "/dev-projekt-top/var/import/"  
mget ItemAvailibility.csv*     
bye
EOF
cd dev-projekt-top/var/import
ex ItemAvailibility.csv "+set ff=unix fileencoding=utf-8" "+x"  
sleep 10
cd ..
cd ..
cd ..
cd dev-projekt-top/magmi/cli
php6 magmi.cli.php -profile=csv_auto -mode=update

Content-Key: 299045

Url: https://administrator.de/contentid/299045

Printed on: April 26, 2024 at 18:04 o'clock

Member: Philosoph
Philosoph Mar 13, 2016 at 14:14:11 (UTC)
Goto Top
Hallo lks,
vielen Dank für deine schnelle Antwort.

Wenn ich den gesamten Code einfüge, arbeitet er ja alles ohne Fehler ab.
Aber: Er arbeitet die restlichen Zeilen nach diesem Befehl nicht ab:
ex ItemAvailibility.csv "+set ff=unix fileencoding=utf-8" "+x"   

Wenn ich aber den ersten Teil bis zu dieser Zeile einfüge und ENTER drücke und danach den zweiten Block einfüge und ENTER drücke, dann werden auch die letzten Zeilen problemlos abgearbeitet.

Der Weg in zwei Teilen geht:
#!/bin/bash
HOST='website'   # change the ipaddress accordingly  
USER='username'   		# username also change  
PASSWD='passw'         	# password also change  
ftp -inv $HOST<<EOF
quote USER $USER
quote PASS $PASSWD
bin
cd /       
lcd "dev-projekt-top/var/import/"   
mget ItemAvailibility.csv*
cd dev-projekt-top/var/import
lcd "/dev-projekt-top/var/import/"  
mget ItemAvailibility.csv*     
bye
EOF
cd dev-projekt-top/var/import
ex ItemAvailibility.csv "+set ff=unix fileencoding=utf-8" "+x"  
ENTER Taste drücken
sleep 10
cd ..
cd ..
cd ..
cd dev-projekt-top/magmi/cli
php6 magmi.cli.php -profile=csv_auto -mode=update

Beide Teile in einem Block einzufügen und mit ENTER zu bestätigen hat zur Folge, dass er nachdem er "ex ItemAvailibility.csv "+set" ausgeführt hat aufhört die Befehle abzuarbeiten.
Member: SamvanRatt
SamvanRatt Mar 13, 2016 at 17:49:25 (UTC)
Goto Top
Hi Philosoph
das klassische CRLF zu LF hast du in deinem Skript beachtet oder?
Gruß
Sam
Member: Philosoph
Philosoph Mar 13, 2016 at 18:19:06 (UTC)
Goto Top
Hallo Sam,

das ist mein erster Schritt mit putty und ssh. CRLF und LF sagt mir leider nichts.
Kannst du mir sagen, was ich an dem Code verändern muss?

Beide Teile einzeln eingefügt funktionieren ja ordentlich. Aber alles in einem einfügen und ENTER drücken, das scheint nicht zu funktionieren.


LG
Tommy
Member: SamvanRatt
SamvanRatt Mar 13, 2016 at 18:27:30 (UTC)
Goto Top
Hi
wenn du ein Unixoides System auf der anderen Seite hast (putty suggeriert ja Windows auf der einen) kommt ein alter Unterschied des Zeilenumbruchs zum tragen: Unix reicht ein LineFeed um eine neue Zeile zu starten (=Abschluß eines Befehls) und DOS/Windows brauchten den und den CarriageReturn um das zu tun. Ein zusätzliches CR stört ein nicht Unixoides System. Gute Editoren wie pspad, notepad++, ultraedit, ... bieten dir solche Konvertierungen an. Ein Copy/Paste sollte dann das Ergebnis bringen.
Gruß
Sam
Member: Philosoph
Philosoph Mar 13, 2016 at 18:44:42 (UTC)
Goto Top
Aus notepad++ habe ich das Skript kopiert und in putty eingefügt.
In notepad++ steht die Kodierung auf UTF8 ohne BOM.

Wenn ich den Inhalt nicht in putty direkt einfüge sondern als crontab laufen lasse, habe ich das gleiche Problem.
Member: SamvanRatt
SamvanRatt Mar 13, 2016 at 19:41:19 (UTC)
Goto Top
Hi
das klingt genau nach dem Thema CRLF. Du mußt im NP++ unter "Bearbeiten-Format Zeilenende" "Konvertiere zu Unix" machen, damit es nicht Windows sondern Unixkompatibel ist (sofern auf der Gegenstelle ein typisches Linux steht).

Gruß
Sam
Member: emeriks
emeriks Mar 13, 2016 at 20:20:49 (UTC)
Goto Top
Hi,
ich hatte sowas auch schon. Ich tippe aber auf das "-". Hier gibt es auch verschiedene, optisch gleich oder ähnlich aussehende Zeichen. Ähnliches kenne ich auch vom "" und ' ' .

E.
Member: SamvanRatt
SamvanRatt Mar 13, 2016 at 20:31:54 (UTC)
Goto Top
Die berühmten Whitespaces sind auch so ein Punkt.

Muß man halt erst einmal haben/wissen um dann es richtig zu machen.