Newsgroup: it.comp.os.linux.development
Titolo: top remoto... Possibile che non si riesca a fare?

Ciao a tutto il NG...
Scusate se vi sembrerà banale.. ma ho già mandato questo post su
linux.iniziare... e non ho avuto risposte...
Se mi potete aiutare voi...
Vorrei automatizzare un'operazione...
In particolare devo fare il top su diversi computer, sui quali lancio un
processo che dovrebbe occupare per ore/giorni il (quasi) 100% della cpu...
Il mio scopo è sapere se il processo è ancora su... Quindi faccio:
1) ssh host
2) top
3) verifico se il mio programma sta girando, e quanta CPU sta occupando... e
quale utente l'ha lanciato ovviamente...
4) exit
5) ritorno all'1)... e lo devo fare per una ventina di computer...
E' possibile automatizzare tutto questo?
Ossia mi piacerebbe lanciare un batch che mi da un top (o qualcosa del
genere) di tutti i 20 host... magari me lo scrive a video... e poi io lo
giro su file...
Non pretendo lo script... se mi consigliate solo che comandi esistono... e
poi vado di man!
Grazie mille!
Gibo

non sarebbe più semplice mettere su ogni host in cron uno scriptino che 
ti fa il check del processo, piglia le info che ti servono e te le 
comunica in qualche modo? magari via mail?!
ciao
p


 Il mio scopo è sapere se il processo è ancora su... Quindi faccio:
...
Io direi che su ogni macchina metti un cronjob che esegue uno script di
controllo.
Con top -b|grep nomeprocesso prendi la riga del processo. Poi con sed, cut e
roba del genere ti tagli i campi che ti servono e fai i controlli. Alla fine
ti spedisci il risultato via mail, e/o prendi le decisioni del caso.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! *Real* programmers use cat > a.out! No way, /real/ ones
        use zcat > a.out 'cause you can type faster that way. !>-
                -- from a Slashdot discussion

 ha scritto nel messaggio
news:slrnav48c...@localhost.localdomain...

Grazie mille... ma temo di non poter far girare un cron su quelle
macchine... il motivo è semplicemente che non son mie... ma
dell'università... e se la prendono se vedono cose strane... Preferirei
chiamare ssh in modo non interattivo, ossia del tipo "esegui un comando" e
poi lanciare un top sempre non interattivo come mi hai suggerito...
E' possibile l'ssh che esegua il comando? UNa cosa del tipo:
   ssh -password=pippo -opzioni-varie "comando"
Grazie infinite!
Gibo

 ha scritto nel messaggio
news:3DF1DFBC...@softhome.net...

Grazie mille...
Ma, come ho risposto anche a Giuseppe Corbelli...
temo di non poter far girare un cron su quelle macchine... il motivo è
semplicemente che non son mie... ma dell'università... e se la prendono se
vedono cose strane... Preferirei chiamare ssh in modo non interattivo, ossia
del tipo "esegui un comando" e poi lanciare un top sempre non interattivo
come mi ha suggerito Giuseppe...


 mi hai suggerito... E' possibile l'ssh che esegua il comando?
Certo. Basta leggere la man page di ssh.
Alessandro.

se proprio ci tieni a farlo con ssh, questo č un simil comando che 
potresti utilizzare...
top -b -n 1 | grep sshd | awk '{print $2,$9}'
ovviamente $2 e $9 sono nel _mio_ output rispettivamente l'utente owner 
del processo e la %CPU utilizzata.
capirai che č alquanto facile customizzarti l'output a tuo piacimento.
ciap
p
P.S. resto dell'idea, che il crontab č molto piů funzionale

  2) top
ssh -t host top
funziona
o meglio ancora:
ps aux --sort -%cpu | head
(cluster? ;-)
-- 
Pa.Ped, Como
http://www.fastflow.it/~paolop
VOTE AGAINST SPAM! 
http://www.politik-digital.de/spam/it/
Contro i brevetti software: 
http://petition.eurolinux.org/index_html

|
| Vorrei automatizzare un'operazione...
| In particolare devo fare il top su diversi computer, sui quali lancio un
| processo che dovrebbe occupare per ore/giorni il (quasi) 100% della cpu...
| Il mio scopo è sapere se il processo è ancora su... Quindi faccio:
|
| 1) ssh host
| 2) top
| 3) verifico se il mio programma sta girando, e quanta CPU sta occupando...
e
| quale utente l'ha lanciato ovviamente...
| 4) exit
| 5) ritorno all'1)... e lo devo fare per una ventina di computer...
|
| E' possibile automatizzare tutto questo?
c'è un comando in particolare che potrebbe fare al caso tuo.
/usr/sbin/expect
cerca sugli appunti di linux su 
www.pluto.linux.it
che c'è un esempio su come funzia.
| Non pretendo lo script... se mi consigliate solo che comandi esistono... e
| poi vado di man!
|
meglio 
www.pluto.linux.it/ilpd/appuntilinux/a2468.html
| Grazie mille!
| Gibo
|
prego
|
|

correggo il link , cerca expect qui
 
http://www.pluto.linux.it/ildp/LDR/ldr5.html


Ciao
Gibo

 funziona
Si... ma ti chiede la password! Io vorrei un ssh in modalita' batch... ho
provato anche l'opzione di ssh per il batch... ma c'è sempre quel problema
della password...
Non è possibile un ssh dove io gli passo password e comando da eseguire?
Cosicchè lui:
1) fa la connessione,
2) esegue il comando
3) mi da l'output a video del risultato
4) esce dalla connessione


 Scherzi a parte... grazie comunque... ci riguardo...
Il meccanismo di autenticazione via passwd non e' l'unico possibile, anzi.
...
The public key method is similar to RSA authentication described in the
previous section and allows the RSA or DSA algorithm to be used: The
client uses his private key, $HOME/.ssh/id_dsa or $HOME/.ssh/id_rsa, to
sign the session identifier and sends the result to the server.  The
server checks whether the matching public key is listed in
$HOME/.ssh/authorized_keys and grants access if both the key is found
and the signature is correct.  The session identifier is derived from a
shared Diffie-Hellman value and is only known to the client and the
server.
...
E' passato recentemente qualcosa su freshmeat che si occupa di generare le
chiavi e modificare authorized_keys.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Take It All, Our Gold, Our Homes, Our Life, But We Didn't Kill 
	    Your Christ! !>- Blind Guardian - The Script For My Requiem

  della password...
semplice, fai in modo che non te la chieda :-)
man ssh
/ssh-keygen
con ssh-keygen ti genere li chiavi in locale, poi le copi sul server
remoto sotto  $HOME/.ssh/authorized_keys (controlla i permessi), dopo di
che ti puoi anche dimenticare le password.
Lascia stare di tentare di mettere password sulla linea di comando, sono
visibili con ps aux, e non e' bello...
ciao


 con ssh-keygen ti genere li chiavi in locale, poi le copi sul server
Solo la chiave pubblica.
-- 
HappyCactus - Linux User #209744 - LFS User #6046 - >>> SMSPM1050 <<<
              YAGF Member Group >>> 
www.google.com
 <<<
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.

>>:/OuZ\:<<<
per rispondermi in mail rimuovere TOGLIQUESTO

 che ti puoi anche dimenticare le password.
a me continua a chiedere la passphrase anche dopo aver fatto quello
che dici :(
sshd sul server ha solo queste opzioni:
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
RSAAuthentication no
PubkeyAuthentication yes
HostbasedAuthentication no
PasswordAuthentication no


  che dici :(
prova a fare un 
ssh -v nomehost
e vedi cosa ti dice
controlla i permessi dei file in .ssh:
paolop$ ls -l .ssh/
totale 48
-rw-------    1 paolop   paolop        662 2001-06-06 11:22 authorized_keys
-rw-------    1 paolop   paolop        103 2002-04-09 10:18 config
-rw-------    1 paolop   paolop        668 2001-06-06 09:49 id_dsa
-rw-r--r--    1 paolop   paolop        603 2002-12-10 16:21 id_dsa.pub
-rw-------    1 paolop   paolop        528 2001-11-13 11:06 identity
-rw-r--r--    1 paolop   paolop        332 2001-11-13 11:06 identity.pub
-rw-------    1 paolop   paolop        887 2001-06-06 09:49 id_rsa
-rw-r--r--    1 paolop   paolop        223 2002-12-10 16:22 id_rsa.pub
-rw-r--r--    1 paolop   paolop       5440 2002-12-10 17:13 known_hosts
io poi ho fatto questo script per automattizzare l'installazione delle
chiavi pubbliche sul server remoto:
#!/bin/sh
cat ~/.ssh/id_rsa.pub ~/.ssh/id_dsa.pub > ssh.tmp
cat ssh.tmp | ssh hostname 'cat -  >> ~/.ssh/authorized_keys'
ssh hostname /bin/chmod 600 ~/.ssh/authorized_keys
prova


 chiavi pubbliche sul server remoto:
[cut]
Questo l'ho fatto a mano ma e' la stessa cosa.
Grazie comunque.


  come te non cambia di una virgola
si, ho verificato, l'importante e' che non sia in scrittura per tutti.
Le versioni di ssh sono uguali da entrambe le parti?
Alla peggio, seguendo le leggi dell'informatica.... rifai le chiavi
pubbliche e riprova, oppure crea un utente "test" e fai le prove da li'.
ciao


 Le versioni di ssh sono uguali da entrambe le parti?
si' e' OpenSSH_3.2.3p1 ... un po' vecchiotta lo so ...
potrebbe essere questo il problema?


 debug1: ssh-userauth2 successful: method publickey
[...]
ti dice qualcosa tutto questo ?
