Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: hoe script/bestand meteen in terminal uitvoeren  (gelezen 1531 keer)

totalchaos

  • Gast
hoe script/bestand meteen in terminal uitvoeren
« Gepost op: 2007/09/17, 22:34:45 »
Hoi allemaal

Ik heb hier thuis een homemade nas staan
deze draait onder Naslite 2.04
nu kan je via een telnet sessie inloggen op deze "server" en hem dus ook uitschakelen
hiervoor heb ik een scriptje geschreven met expect (beetje knoeien en zoeken, maar het is gelukt)

voorlopig is dit script nog opgeslagen als een gewoon tekstbestand
als ik het wil uitvoeren, vraagt ubuntu of ik
1 het wil uitvoeren in een terminal venster
2 weergeven
3 annuleren
4 uitvoeren

ik wil het  meteen uitvoeren in terminalvenster
ik heb al een starter proberen aan te maken met de volgende eigenschappen
type: terminaltoepassing
naam: Nas Shutdown
opdrachtregel: gnome-terminal /home/tim/shutdown scripts/1

deze starter opent heel even een terminalvenster en sluit het zonder verder iets te doen
dus het openen van de terminal is goed, enkel de verwijzing naar de file dat'ie moet gebruiken loopt fout
de file opgeslagen met .sh extensie opent een terminal venster maar het deze prompt:
root@A8N-SLi:/home/tim#
de file opegslagen met .exp extensie doet noppes
iemand tips voor mij?


het script zelf ziet er zo uit
heeft waarschijnlijk niemand iets aan, maar misschien zijn er nog tips om het wat netter te doen

#!/usr/bin/expect -f

set timeout 15

#------------------------------------------------
#-setting parameters------------------------
#------------------------------------------------
set Server "xxx.xxx.xxx.xxx"
set Login "xxxxx"
set Passw "xxxxx"
set Xit "E"
set Shut "8"
set yes "y"

#------------------------------------------------
#-start telnet----------------------------------
#------------------------------------------------
spawn telnet $Server

#------------------------------------------------
# sending username & password---------
#------------------------------------------------
expect "server login:"
sleep .5
send -- "$Login\r"
expect "Password:"
sleep .5
send -- "$Passw\r"

#------------------------------------------------
# shutdown or exit---------------------------
# put # for the appropiate line---------------
#------------------------------------------------
expect "Select:"
sleep .5
send -- "$Xit\r"
#send -- "$Shut\r"
expect "Continue: "
sleep .5
send -- "$yes\r"
expect eof
#-----------------------------------------------

Offline Tukcedo

  • Lid
    • http://www.tukcedo.nl
hoe script/bestand meteen in terminal uitvoeren
« Reactie #1 Gepost op: 2007/09/18, 06:55:11 »
Allereerst gefeliciteerd met je Expect resultaat: da's geen eenvoudige handel nee. Je kunt eigenlijk veel makkelijker SSH in combinatie met public key authenticatie gebruiken. Die NAS doet vrijwel zeker ook SSH. Maar dit even terzijde.

Ik zie een paar kleine probleempjes: allereerst gebruik je een spatie in de directory naam "shutdown scripts". Dat kan op zich wel maar is zeker niet aan te raden. Als het echt MOET, dan moet je die spatie "escapen" omdat je script anders de 2e helft van de dir naam opvat als een argument, dus wordt het in elk geval "shutdown\ scripts". Maar als gezegd, hernoem het shutdown_scripts en je bespaart jezelf een hoop gedoe.

Ten tweede is het 't best om de boel te debuggen in een terminalvenster (als je dat al niet hebt gedaan). Dus open zo'n ding, type de naam van je script in (met het HELE pad) en kijk wat er gebeurt.

Nou ben ik miet zo thuis in die startertjes en zo, maar er is onder KDE in elk geval een methode om je starter te laten "wachten" met het sluiten van het venster zodat je beter kunt zien wat er gebeurt.

Succes!
Tukcedo Services - Unix en Linux Consultants
http://www.tukcedo.nl

totalchaos

  • Gast
hoe script/bestand meteen in terminal uitvoeren
« Reactie #2 Gepost op: 2007/09/18, 19:20:19 »
Ik ben deruit

Mijn opdrachtregel was fout
ik opende de starter als een terminal toepassing: dus als opdrachtregel
moest ik enkel het path naar de file aangeven.
mijn regel was: gnome-terminal /home/tim/shutdown scripts/1
dit moest zijn: /home/tim/shutdown scripts/1

ik heb meteen ook de naam van de directory aangepast, ik vond het al moeilijk
om in een terminal venster er vlot te geraken
Thanks for the tip