Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » Telnet in einem Skript verwenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.07.2006, 22:52 Uhr
~Dirk8000
Gast


Hi,

ich möchte ein Skript schreiben das folgendes macht:

- Per Telnet auf einen fremden Rechner einloggen (Dbox2)
- dort eine Datei ändern, speichern, schliessen
- telnet Verbindung wieder aufheben

Woran ich schon scheitere ist der erste Schritt.
Wie kann ich in einem Skript telnet mit Benutzername und Passwort aufrufen?

Und schreibt mir bitte nicht, dass ich besser SSH oder etwas anderes verwenden sollte. Das gibt es da leider nicht. Ich kann wirklich nur telnet benutzen.

Vielen Dank schonmal

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2006, 08:30 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Entweder unter C/C++ mit Sockets, oder Perl mit Net::Telnet, oder wenns von einem Bash-Skript ausgeht:
expect
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 09.07.2006 um 13:41 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2006, 22:52 Uhr
~Dirk8000
Gast


Hallo Bruder Leif,

vielen Dank für deinen Tipp. Ich habe "expect" gerade ausprobiert und es funktioniert wunderbar.
Ich hatte vorher noch nie von "expect" gehört.
Schon wieder etwas dazu gelernt.

Gruß

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.07.2006, 13:17 Uhr
~Dirk8000
Gast


Hi,

das mit dem Telnet und expect hat gut geklappt. Dazu konnte ich glücklicherweise gute Ansätze im Netz finden. Aber jetzt habe ich schon das nächste Problem. Wie kann ich den cat Befehl mit expect verwenden?

Ich möchte eine Zeile an eine Datei anhängen:
Die Datei heisst "tuxcal.list".
Das was ich an diese Datei anhängen möchte ist bereits in einer Variablen namens $entry in dem expect Skript gespeichert.

Wie kann ich diesen Teil mit expect automatisieren?
cat >> tuxcal.list
&entry
Strg+D

Vielen Dank schonmal

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.07.2006, 13:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi


Bash:

echo $entry >> tuxcal.list


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.07.2006, 16:52 Uhr
~Dirk8000
Gast


Hi,

danke. Deine Lösung ist sehr einfach, aber funktioniert genauso. Vielen dank. Ist einfacher als ich dachte.
Die Lösung mit expect und cat wäre dennoch sehr interessant.

Gruß

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.07.2006, 17:39 Uhr
~Dirk8000
Gast


Hallo,

danke für eure Hilfe. Jetzt möchte ich euch mal das kleine Skript zeigen, dass jetzt entstanden ist. Man kann es benutzen um einen Eintrag in den Kalender einer Dbox2 hinzuzufügen.

Ihr könnt ja noch schreiben, was man hier verbessern könnte. Funktionieren tut es auf jeden Fall mal.


Code:
#!/usr/bin/expect

# Wait this time for an "expect".
set timeout 1

# Set the calendar entry according to the first argument.
set calendar_entry [lindex $argv 0]

# Open a telnet session to a remote server.
spawn telnet 192.168.178.3  

# Wait for the username prompt and then send the username.
expect "username:"
send "root\r"  

# Wait for the prompt and then execute the ls command.
expect "%"
send "cd /var/tuxbox/config/tuxcal/\r"

# Wait for the prompt and add an entry to the tux calendar file.
expect "%"
send "echo '$calendar_entry' >> tuxcal.list\r"

# Wait for the prompt and show the tux calendar file
expect "%"
send "more tuxcal.list\r"

# Exit the telnet session, and wait for a special end-of-file character.
expect "%"
send "exit\r"
expect eof



Hier noch eine Frage:

Die Kalenderdatei ist wie folgt aufgebaut:
<t oder g>;<Datum>;<Terminbezeichnung>;

z.B.

t;08.07.2006;Deutschland - Portugal;
t;09.07.2006;Italien - Frankreich;

Nach diesem Schema gibt es viele Einträge in dieser Datei. Toll wäre es, wenn man den Eintrag, welchen man hinzufügen will gleich an der richtigen Stelle (Einsortierung nach Datum). einfügt.
Oder eine andere Möglichkeit wäre es, wenn man die Liste nach der Eintragung einfach neu nach Datum sortiert.

Leider weiß ich nicht, wie ich das lösen könnte. Die dbox2 bietet leider nur wenige Shell-Befehle an. Der Befehl "sort" existiert dort nicht.

Vielleicht habt ihr eine Idee, wie man das machen könnte.

Vielen Dank schonmal

Dirk

P.S.:
Das Forum ist toll. Ich werde mich nacher gleich fest anmelden und nicht mehr als Gast schreiben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: