/* // $VER: SSH-init for Dopus5 0.4 (04.08.98) Controle remote UNIX-machines' inits from dopus requesters // // By Kolbjørn Barmen , // Thanx to Leo 'Nudel' Davidson for the startup code I stole from his Commander.dopus :) // // Call as: // --------------------------------------------- // ARexx DOpus5:ARexx/SSH-Init.dopus5 {Qp} // --------------------------------------------- */ options results trace results options failat 99 signal on syntax;signal on ioerr /* Error trapping */ parse arg DOpusPort def_cmd DOpusPort = Strip(DOpusPort,"B",'" ') nl="0A"X If DOpusPort="" THEN Do Say "Not correctly called from Directory Opus 5!" Say "Load this ARexx script into an editor for more info." Exit End If ~Show("P",DOpusPort) Then Do Say DOpusPort "is not a valid port." Exit End Address value DOpusPort dopus version If ( result='RESULT' | translate(result,'.',' ') < 5.1218 ) then do dopus request '"This script requires DOpus v5.5 or greater." OK' EXIT end address command 'run >NIL: C:makedir env:nvgadm' hostEnv = "Env:nvgadm/FailHost" daemonEnv = "Env:nvgadm/FailDaemon" host = '' If Exists(hostEnv) Then Do If Open(EnvDef,hostEnv,"R") Then Do host = ReadLn(EnvDef) Close(EnvDef) End End daemon = '' If Exists(daemonEnv) Then Do If Open(EnvDef,daemonEnv,"R") Then Do daemon = ReadLn(EnvDef) Close(EnvDef) End End Call GetitAll DoShit: sshline = '"/etc/rc.d/init.d/' || daemon || ' stop ; /etc/rc.d/init.d/' || daemon || ' start"' address command 'echo "Resultat" > t:blbl' address command 'echo "--------" >> t:blbl' address command 'ssh -l root 'host' 'sshline' >> T:blbl > t:blbl' file = "T:blbl" If Open(Foo,file,"R") Then Do text = ReadCh(Foo,10000) Close(Foo) End address command 'run >NIL: makedir envarc:nvgadm' address command 'copy env:nvgadm/Fail(Daemon|Host) envarc:nvgadm all quiet' address command 'delete >nil: t:blbl' dopus request '"'text'" OK|Prøv igjen' If DOPUSRC= 0 Then Call GetitAll EXIT GetMaskin: dopus getstring "'Maskin :'" || host || "' '"nl""nl"'Tast inn maskin.' '' OK|Cancel" If DOPUSRC = 0 Then Call GetitAll host = RESULT If Open(EnvDef,hostEnv,"W") Then Do WriteLn(EnvDef,host) Close(EnvDef) End Call GetitAll GetDaemon: dopus getstring "'Daemon :'" || daemon || "' '"nl""nl"'Tast inn daemon.' '' OK|Cancel" If DOPUSRC = 0 Then Call GetitAll daemon = RESULT If Open(EnvDef,daemonEnv,"W") Then Do WriteLn(EnvDef,daemon) Close(EnvDef) End Call GetitAll GetitAll: dopus request "'SSH-basert init-kontroller'"nl""nl"'Maskin : '" || host || ""nl"'Daemon : '" || daemon || "'' OK|Maskin|Daemon|Cancel" If DOPUSRC = 0 Then Exit If DOPUSRC = 2 Then Call GetMaskin If DOPUSRC = 3 Then Call GetDaemon If DOPUSRC = 1 Then Call GetPasswd Call DoShit GetPasswd: dopus getstring "'" || daemon || "''-restart på '" || host || "''"nl""nl"'Dette krever root-tilgang'"nl"'Tast inn passordet' secure 9 '' OK|Cancel" If DOPUSRC = 0 Then Exit passwd = RESULT passtmp = "pipe:gaga" If Open(Foo,passtmp,"W") Then Do WriteLn(Foo,passwd) Close(Foo) End return /* // In case of error, jump here */ syntax:;ioerr: EXIT