Ich möchte ein Shell-Skript erstellen, das Befehle auf einem Gerät ausführt, das ich mit oder in Programmen wie FTP oder OpenSSL telnete. Ich habe bereits eine Methode in FTP gefunden, die ungefähr so aussehen würde:
#!/bin/sh
HOST='0.0.0.0'
USER='User'
PASSWD='Pass'
FILE='~/Desktop/file.txt'
RFILE='file.txt'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
passive
put $FILE $RFILE
quit
END_SCRIPT
exit 0
Wie kann ich etwas Ähnliches mit Geräten tun, mit denen ich telnet oder in verschiedenen Programmen?
shell
shell-script
telnet
TheBro21
quelle
quelle
expect
oder schreiben Sie ein Perl-Skript, das verwendetExpect.pm
(oder eines der Perl-Net::*
Module wieNet::Telnet
oderNet:SSH
usw.), oder ein Python-Skript, das verwendetpexpect
.expect
und die anderen, die ich erwähnt habe, existieren - und das liegt daran, dass Shell-Skripte nicht in der Lage sind, die Arbeit zuverlässig zu erledigen.expect
etc-Skripte auf dieser Site (und zum Stapelüberlauf und Serverfehler). Beginnen Sie mit einigen Links unter der Überschrift rechts. Durchsuchen Sie auch die SE-Sites nach Expect und / oder den von mir erwähnten Perl- und Python-Bibliotheken.Antworten:
Vor einiger Zeit brauchte ich etwas Ähnliches. Sie können es mit so etwas versuchen:
PS1: Ich benutze "sleep 2", weil ich über Satellit zugreife. Wenn es LAN ist, brauchen Sie vielleicht überhaupt keinen "Schlaf".
PS2: Gib einfach das, was du brauchst, in die CMD-Variable ein
quelle
expect
diese Lösung nicht zur Verfügung steht, erspart sie mir so viele Kopfschmerzen. Ich brauchte nur die sofortige Ausgabe vontelnet localhost 25
, um zu überprüfen, was gedruckt wird, und das Pipingusleep 10000
funktioniert hervorragend (lassen Sie es taumeln und schließen Sie dann die Verbindung). Vielen Dank.