cshell script met rlogin

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 11-09 12:47
Ik heb een cshell script geschreven die de display environment variabele ophaald, een rlogin doet en dat hier deze display variabele insteld.

Echter kan ik nadat ik rlogin heb gedaan geen commando's naar deze shell sturen.

code:
1
2
3
set currentdisplay = $DISPLAY
rlogin pc2
setenv DISPLAY $currentdisplay


Op zich logisch; dus dat ik doe ik is een rsh en dan een rlogin:
code:
1
2
3
set currentdisplay = $DISPLAY
rsh pc2 setenv DISPLAY $currentdisplay
rlogin pc2


Maar dat werkt ook niet.

Hoe kan ik dit wel voor elkaar krijgen?

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Nu online

Kees

Serveradmin / BOFH / DoC
naar welke shell wil je commando's sturen? (en waarom gebruik je geen ssh? en waarom gebruik je cshell en geen bash?)

Als je naar je lokale shell commando's zou je het op de background kunnen laten draaien met &, maar ik neem aan dat je op de remote shell verder wil? Waarom niet gewoon inloggen op die remote shell, en dan mbh de 'on login' files die variable goed zetten?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 11-09 12:47
Het is in tcshell omdat daarmee op mijn werk gewerkt wordt, dus dat wil ik ook zo houden.

Ik weet niet waarom ik geen SSH gebruik, heeft dit voordelen (of nadelen).

Ik wil in de nieuwe, via rlogin vekregen, shell de commando's sturen.
Dit is echter een deel vh script, hierma wil ik een zooi commando's gaan uitvoeren, daarom staat deze niet in de login.

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • JohnR
  • Registratie: April 2003
  • Niet online

JohnR

Koffie is lekker!

[b][message=33740833,noline](en waarom gebruik je geen ssh? en waarom gebruik je cshell en geen bash?)
Zo'n reactie is typerend voor de gemiddelde linux-fan |:( . Er wordt advies gevraagd voor een probleem met cshell en rlogin en in plaats van een oplossing komt er "waarom geen bash met ssh"

/(bb|[^b]{2})/


Acties:
  • 0 Henk 'm!

  • swbr
  • Registratie: Maart 2009
  • Laatst online: 09:46
JohnR schreef op donderdag 01 april 2010 @ 09:10:
[...]

Zo'n reactie is typerend voor de gemiddelde linux-fan |:( . Er wordt advies gevraagd voor een probleem met cshell en rlogin en in plaats van een oplossing komt er "waarom geen bash met ssh"
Heeft niks met linux-fans te maken, rsh is simpelweg een oud en onveilig stuk software. De eerste vraag die je bij het horen van 'rsh' hoort te stellen is 'waarom geen ssh?'.

Om de vraag te beantwoorden, zolang je geen interactieve shell wilt, kun je meerdere commando's meegeven door er quotes omheen en punt-komma's ertussen te zetten:

# rsh hostname "command1; command2; command3"

If you try and take a cat apart to see how it works, the first thing you have on your hands is a non-working cat. -DNA


Acties:
  • 0 Henk 'm!

Verwijderd

Iets wat je met een simpele Google query had kunnen opzoeken.

Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 11-09 12:47
Antaresje schreef op donderdag 01 april 2010 @ 09:23:
[...]


Heeft niks met linux-fans te maken, rsh is simpelweg een oud en onveilig stuk software. De eerste vraag die je bij het horen van 'rsh' hoort te stellen is 'waarom geen ssh?'.

Om de vraag te beantwoorden, zolang je geen interactieve shell wilt, kun je meerdere commando's meegeven door er quotes omheen en punt-komma's ertussen te zetten:

# rsh hostname "command1; command2; command3"
Nou zoiets wil ik wel; eerst remote inloggen, dan display instellen dan wat commando's draaien en dan een shell van het remote workstation. Zoiets als het login script, maar dan niet altijd of hetzelfde.

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 07:52

BoAC

Memento mori

Antaresje schreef op donderdag 01 april 2010 @ 09:23:
[...]


Heeft niks met linux-fans te maken, rsh is simpelweg een oud en onveilig stuk software. De eerste vraag die je bij het horen van 'rsh' hoort te stellen is 'waarom geen ssh?'.

Om de vraag te beantwoorden, zolang je geen interactieve shell wilt, kun je meerdere commando's meegeven door er quotes omheen en punt-komma's ertussen te zetten:

# rsh hostname "command1; command2; command3"
Wat ook prima kan met ssh:
# ssh username@hostname "command1; command2; command3"
Zie ook: Configuring Remote Loginand Execution :)

Acties:
  • 0 Henk 'm!

  • JohnR
  • Registratie: April 2003
  • Niet online

JohnR

Koffie is lekker!

elgringo schreef op donderdag 01 april 2010 @ 09:47:
Nou zoiets wil ik wel; eerst remote inloggen, dan display instellen dan wat commando's draaien en dan een shell van het remote workstation. Zoiets als het login script, maar dan niet altijd of hetzelfde.
Dus
rsh <hostname> "setenv DISPLAY <IP-address>:0.0;commando1;commando2;..." ?
Mochten de commando's veranderen (maar je hebt ze wel in een bestandje staan) dan kun je ook
rcp <scriptje.sh> <hostname>:<dir> en daarna
rsh <hostname> "chmod +x /<dir>/<scriptje.sh>;/<dir>/<scriptje.sh>

Verder kan het ook over scp, het kan ook met bash, het kan ook met de console, het kan ook via ksh, het kan ook via mail, het kan ook via .... maar volgens mij was de vraag van de TS niet "wat zijn alternatieven"

/(bb|[^b]{2})/


Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Voordeel van ssh is dat je X-display direct goed gezet wordt, en eventueel te tunnelen voor de veiligheid.
En natuurlijk sowieso veiliger t.o.v. rlogin / rsh

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Nu online

Kees

Serveradmin / BOFH / DoC
JohnR schreef op donderdag 01 april 2010 @ 09:10:
[...]

Zo'n reactie is typerend voor de gemiddelde linux-fan |:( . Er wordt advies gevraagd voor een probleem met cshell en rlogin en in plaats van een oplossing komt er "waarom geen bash met ssh"
De reden dat het tussen haakjes staat is omdat er vaak wel een goede reden voor is, maar dat ik toch nieuwsgierig was naar die reden. Ik vind het namelijk beide wel beter dan rsh/csh.

Anyway, wat je doet is een shell openen (rsh) en daar een commando in uitvoeren (de set). Dat de volgende commando's niet in die shell uitgevoert worden is omdat je na dat commando niet meer in die shell zit, je zel ze dus achter elkaar moeten zetten mbv een ';' of '&&' gescheiden om meerdere commando's uit te voeren.

Als je je eerste scriptje uitvoert, dan doe je eigenlijk:
csh (terminal)
\_ csh (script)
  | set currentdisplay
  \_ rlogin pc2 (nieuwe csh remote) niet wordt gedaan dus hij wacht op input, na een tijdje doe je waarschijnlijk ctrl-c
  | setenv DISPLAY (in de 'script csh' dus)

En dan ben je weer terug op je terminal csh. Om commando's uit te blijven voeren op de remote machine moet je ze inderdaad op de tweede manier doen, maar dan gescheiden met een ';'
set currentdisplay = $DISPLAY
rsh pc2 setenv DISLAY $currentdisplay; ander_commando; nog_een_commando; final commando
[en de commando's die nu komen worden weer in je script csh uitgevoert]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 11-09 12:47
Kees schreef op donderdag 01 april 2010 @ 12:46:
[...]

De reden dat het tussen haakjes staat is omdat er vaak wel een goede reden voor is, maar dat ik toch nieuwsgierig was naar die reden. Ik vind het namelijk beide wel beter dan rsh/csh.

Anyway, wat je doet is een shell openen (rsh) en daar een commando in uitvoeren (de set). Dat de volgende commando's niet in die shell uitgevoert worden is omdat je na dat commando niet meer in die shell zit, je zel ze dus achter elkaar moeten zetten mbv een ';' of '&&' gescheiden om meerdere commando's uit te voeren.

Als je je eerste scriptje uitvoert, dan doe je eigenlijk:
csh (terminal)
\_ csh (script)
  | set currentdisplay
  \_ rlogin pc2 (nieuwe csh remote) niet wordt gedaan dus hij wacht op input, na een tijdje doe je waarschijnlijk ctrl-c
  | setenv DISPLAY (in de 'script csh' dus)

En dan ben je weer terug op je terminal csh. Om commando's uit te blijven voeren op de remote machine moet je ze inderdaad op de tweede manier doen, maar dan gescheiden met een ';'
set currentdisplay = $DISPLAY
rsh pc2 setenv DISLAY $currentdisplay; ander_commando; nog_een_commando; final commando
[en de commando's die nu komen worden weer in je script csh uitgevoert]
Dit komt een aardig eind in de buurt, alleen wil ik na het final commando in de remote host blijven (met de display environment variabele set)

ow, SSH werkt overigens

EDIT2: HIER staat ook veel info.
Echter heb ik geen rechten (wil mijn werkgevers niet...) om xrsh oid te installeren en .xsession heb ik ook niet...

[ Voor 12% gewijzigd door elgringo op 02-04-2010 15:03 ]

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

Verwijderd

Even mijn mening ;)

De voornaamste reden om rlogin niet te gebruiken is dat alles unencrypted over het lijntje gaat, dit in tegenstelling tot Ssh. Verder biedt Ssh tal van andere mogelijkheden.

Dan nog even over Csh. Csh is een shell die om tal van redenen niet echt aangeraden wordt om te gebruiken zie bijv. http://www.grymoire.com/Unix/CshTop10.txt Bash is de meest gebruikte shell in de Linux/Unix wereld maar veel powerusers (ken er een paar op mijn werk) gebruiken zoiets als Zsh of Ksh.
Pagina: 1