`
superlxw1234
  • 浏览: 541875 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:43133
社区版块
存档分类
最新评论

通过ssh在远程机器后台sudo执行脚本

阅读更多

需要到几百台机器上去删除一些目录,每台机器上的目录名固定,共有12个,

有一台机器(A)可以免密码ssh到这几百台机器上,

刚开始使用如下命令:

 

ssh remoteHost -t 'nohup sudo rm -rf /opt/data01/mapred/local/toBeDeleted/ &'

 

发现远程机器上的命令执行不起来,ssh 到远程机器上,使用nohup + & 不可行。

 

后来的解决办法:

 

编写脚本,del.sh

 

#!/bin/bash

arr="/opt/data01/mapred/local/ /opt/data02/mapred/local/ /opt/data03/mapred/local/ /opt/data04/mapred/local/ /opt/data05/mapred/local/ /opt/data06/mapred/local/ /opt/data07/mapred/local/ /opt/data08/mapred/local/ /opt/data09/mapred/local/ /opt/data10/mapred/local/ /opt/data11/mapred/local/ /opt/data12/mapred/local/"

for dir in $arr;do
{
rm -rf $dir
} &
sleep 3
done  

 

这个脚本会并发的执行对12个目录的删除操作,将这个脚本分发到几百台机器上,

 

for i in `cat /home/hdfs/lxw/delete_to_be_deleted/mapred.hosts.all `; do scp -P58422 /home/hdfs/lxw/del.sh $i:/tmp/del.sh ; done

 其中mapred.hosts.all中保存了几百台机器的ip,del.sh复制到目标机器的/tmp目录

 

机器A上调用命令

 

 

ssh $host -p 58422 -t 'sudo nohup sh /tmp/del.sh'
 

 

在机器A上写了个多线程的perl脚本,delete_tobedeleted.pl

并发的去调远程机器上的del.sh,调完之后,机器A上的线程会退出,而远程机器上会有12个进程,分别在后台执行每个目录的rm操作。

 

[hdfs@hd0411-sw39 ~]$ ps -ef | grep rm
root      2899  2898  9 09:12 pts/1    00:00:02 rm -rf /opt/data05/mapred/local/toBeDeleted/
root      3096  3095  8 09:12 pts/1    00:00:01 rm -rf /opt/data06/mapred/local/toBeDeleted/
root      3205  3204 13 09:12 pts/1    00:00:02 rm -rf /opt/data07/mapred/local/toBeDeleted/
root      3330  3329  8 09:12 pts/1    00:00:01 rm -rf /opt/data08/mapred/local/toBeDeleted/
root      3656  3655  9 09:12 pts/1    00:00:01 rm -rf /opt/data09/mapred/local/toBeDeleted/
root      3990  3989  6 09:12 pts/1    00:00:00 rm -rf /opt/data10/mapred/local/toBeDeleted/
root      4101  4100  9 09:12 pts/1    00:00:00 rm -rf /opt/data11/mapred/local/toBeDeleted/
root      4255  4254  5 09:12 pts/1    00:00:00 rm -rf /opt/data12/mapred/local/toBeDeleted/
 

delete_tobedeleted.pl脚本内容,见:

 

http://superlxw1234.iteye.com/blog/1753496

0
0
分享到:
评论
3 楼 superlxw1234 2013-01-09  
shigangxing 写道
如果不用sudo,&是可以用的,标题再加个sudo,这样更精准些,呵呵

ok,已加。
2 楼 shigangxing 2013-01-08  
如果不用sudo,&是可以用的,标题再加个sudo,这样更精准些,呵呵
1 楼 shigangxing 2013-01-08  
刚碰到一个类似情景,受帮助了,谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics