Fórum Root.cz
Hlavní témata => Server => Téma založeno: PAvel2 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?
-
Skutečně je to potřeba řešit takhle? Není lepší použít Parallel SSH (http://www.root.cz/clanky/parallel-ssh-jeden-prikaz-vladne-vsem/)?
-
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
-
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.
-
Co třeba dát před ten for echo? Hned by ti docvaklo, co je tam špatně…