linux 脚本实现批量ssh远程kill进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 脚本实现批量ssh远程kill进程相关的知识,希望对你有一定的参考价值。

前言

  公司有150多台服务器,在每一台服务器上都部署了脚本,然后这个脚本一直在运行,出现了一些问题,现在要远程批量干掉这些进程,折腾了半天,如下脚本可以实现

脚本:  

#/bin/bash

for i in `cat /home/zhangdl/old/ip.txt | grep -i -v port | awk ‘{print $2}‘`

do

  ssh -p 888 $i "ps aux | grep -v grep | grep Amateurback.sh | awk ‘{print \$2}’| xargs kill"

if [ $? == 1 ];then

echo $i >> /home/zhangdl/old/error.txt

fi

done

解析

(1)ip.txt里边的格式如下,不方便的字眼使用XXX代替

XXX基地    61.190.XX.XX    XXXjidi   XXX,XXX,XXX,XXX,XXX

(2)为了安全,将ssh端口设置为其它端口,假设这里是888端口,如果是22端口,会是“XXX基地(PORT 22)”,剩余的是其它端口

(3)将ip筛选出来后进行遍历

ssh -p 888 "ps aux | grep -v grep | grep Amaterback.sh | awk ‘{print \$2}‘ xargs kill"

选出进程号之后交给xargs kill掉,ssh结合awk使用需将$符号转义,这里不管你那边起了几个进程,只要满足条件,都会kill掉。



本文出自 “庭中有奇树” 博客,请务必保留此出处http://zhangdl.blog.51cto.com/11050780/1792179

以上是关于linux 脚本实现批量ssh远程kill进程的主要内容,如果未能解决你的问题,请参考以下文章

linux-ssh远程后台执行脚本-放置后台执行问题(转)

shell脚本中ssh命令远程调用java启动脚本无法启动java进程

shell脚本实现ssh-copy-id批量自动发送公钥到远程主机

Linux shell (ssh批量配置免秘)读取配置文件,进行远程操作

如何在 ssh / 远程 bash 命令中转义单引号字符?

Linux-两种ssh远程执行命令方式加载环境变量区别