Kill na více serverech pomocí SSH

PAvel2

Kill na více serverech pomocí SSH
« kdy: 07. 10. 2015, 19:55:51 »
Zdravim,
ve while se snazim zabit proces na vzdalenych serverech pomoci

ssh root@$server for i in `ps -ef | grep apn | grep agent | awk '{print $2" "$3}' `; do kill -9 $i; done

bohuzel nejak spatne escapuju cast kolem awk a uplne se to .... zkousel  sem uz i  \ a moc sem si nepomohl ... muze nekdo pomoct?
« Poslední změna: 07. 10. 2015, 20:12:24 od Petr Krčmář »


Re:Kill na více serverech pomocí SSH
« Odpověď #1 kdy: 07. 10. 2015, 20:13:06 »
Skutečně je to potřeba řešit takhle? Není lepší použít Parallel SSH?

Homo Buzerantus

Re:Kill na více serverech pomocí SSH
« Odpověď #2 kdy: 07. 10. 2015, 21:19:18 »
ssh root@server "bash -c 'for i in \`ps -ef | grep apn | grep agent |awk \\{print\\ \\\\\$2,\\\\\$3\\}\`; do echo \$i; done'"

Ale radši si napiš na serveru skript, kterej to zabije a kterej pustíš přes ssh, pak to nebudeš muset tak escapovat. Pokud má ten proces fixní název, tak použij killall -9 název

Re:Kill na více serverech pomocí SSH
« Odpověď #3 kdy: 07. 10. 2015, 21:20:30 »
Zdravim,
ve while se snazim zabit proces na vzdalenych serverech pomoci

ssh root@$server for i in `ps -ef | grep apn | grep agent | awk '{print $2" "$3}' `; do kill -9 $i; done

bohuzel nejak spatne escapuju cast kolem awk a uplne se to .... zkousel  sem uz i  \ a moc sem si nepomohl ... muze nekdo pomoct?

Problem je v $1 - pri spusteni pres ssh ho musis escapovat dvakrat - poprve se totiz odescapuje ve tvem shellu a podruhe na serveru.

Jenda

Re:Kill na více serverech pomocí SSH
« Odpověď #4 kdy: 07. 10. 2015, 23:56:01 »
Co třeba dát před ten for echo? Hned by ti docvaklo, co je tam špatně…