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

通过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  
刚碰到一个类似情景,受帮助了,谢谢

相关推荐

    远程执行(跨进程执行指定程序)

    3. **Linux下的远程执行**:在Linux环境中,可以使用`ssh`命令来远程执行命令或脚本。此外,`sudo`命令可以用于提升权限执行程序,而`systemd`服务可以用于后台执行程序。 4. **安全性考虑**:跨进程执行可能会带来...

    通过python 执行 nohup 不生效的解决

    在使用Python进行远程服务器操作时,我们经常遇到需要在服务器后台执行持续运行的命令,比如`nohup`。`nohup`命令允许我们在退出终端后仍然保持进程的运行状态,不受SIGHUP信号的影响。然而,在使用Python的paramiko...

    linux基本服务.pdf

    Linux 基本服务是指运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务。服务通常是不中断运行的,随时准备接受请求,从而提供某项服务。例如我们日常使用的网页服务,其就是由一个...

    VNC for linux config

    只需输入`localhost:1`(如果在本地机器上)或`<your_server_ip>:1`(如果在远程机器上),然后提供你之前设置的密码。 注意,出于安全考虑,你应该考虑使用SSH隧道来加密VNC通信,防止数据在传输过程中被截取。这...

    putty for linux

    PuTTY for Linux不仅可以在传统的X Window System下运行,也可以在轻量级的桌面环境如XFCE、LXDE和Wayland下工作,甚至在没有图形界面的纯命令行环境中也能通过SSH连接远程服务器。 总的来说,PuTTY for Linux是一...

    lrzsz-0.12.20.tar.gz

    在使用rz和sz命令时,通常需要在本地和远程终端之间建立连接,如通过SSH。例如,要在本地上传一个文件到远程服务器,可以运行`rz`命令,这会在本地打开一个文件选择对话框,选择文件后,rz会使用ZMODEM协议将文件...

    Linux操作技巧 (基础版本)

    - `Ctrl + C`:这个快捷键用来中断当前正在执行的命令,非常实用,特别是在执行长时间运行的程序时,可以立即停止。 - `Ctrl + D`:退出当前终端窗口或者结束当前的shell会话,尤其是在远程SSH登录的场景下。 - `...

    lftp结合sftp文件传输.zip

    此外,如果需要在后台传输文件,可以使用`-e`选项运行lftp脚本,并在脚本中使用`bye`命令结束会话。例如: ```bash lftp -e "mirror -R /local/directory /remote/directory; bye" -u 用户名,密码 sftp://服务器...

    linux初级命令备忘录中文版.pdf

    `ssh [ip or hostname]`命令用于连接到远程主机,`vagrant ssh`则可以在与Vagrantfile相同的目录中进入虚拟机。 2. **基本文件和目录管理**: - `pwd`:显示当前工作目录的完整路径。 - `whoami`:显示当前登录的...

    Linux 入门手把手教程

    6. **网络和远程连接**:了解如何设置网络,使用`ifconfig`或`ip`命令查看网络状态,使用`ping`测试网络连通性,以及通过SSH进行远程登录。 7. **Shell脚本编程**:学习编写Bash脚本,了解变量、条件语句、循环、...

    2021吉林大学linux实验部分代码

    `nohup`命令用于在后台运行程序,即使用户退出终端也能继续运行。 【网络和远程访问】 Linux实验也可能涉及到网络配置和远程访问。`ifconfig`和`ip`命令用于查看和配置网络接口,`ping`和`traceroute`用于网络诊断...

    Aliyun安装anaconda.docx

    在阿里云ECS服务器上安装Anaconda并进行数据分析是一个常见的操作,特别是在需要远程运行Python环境和Jupyter Notebook的情况下。以下是一份详细的步骤指南,涵盖了从安装Python和Anaconda到配置Jupyter Notebook...

    inotify-tools+rsync同步使用方法介绍

    - 如果同步的目标是远程服务器,确保在目标端也有`rsync`服务运行,并正确配置了SSH密钥免密登录,以避免频繁输入密码。 5. **监控与维护**: 使用`ps`命令检查`watcher.sh`进程是否正常运行,定期查看日志以确认...

    linux初级入门教程(chm版)

    Linux系统基于Unix哲学,强调小型、高效和模块化设计,可以运行在各种硬件平台上,包括个人电脑、移动设备以及大型服务器。 2. **Ubuntu Linux**: Ubuntu是基于Debian的Linux发行版,以其用户友好性和易用性而...

    Linux初级应用指南 chm格式

    - **进程管理**:`ps`显示当前进程,`kill`和`pkill`发送信号终止进程,`nohup`使命令在后台运行。 - **定时任务**:`cron`是Linux的定时任务系统,通过编辑`crontab`文件设置定时任务。 ### 7. 网络与远程连接 -...

    Extratohost

    例如,用户可以编写bash脚本来定期执行这些任务,并通过cron定时器设置为后台自动运行。 此外,Extratohost也可能包含了一些与远程主机交互的特性,比如SSH(Secure Shell)协议,允许用户安全地在不同主机间传输...

    Linux 入门经典教程

    Linux提供了`ps`查看进程,`kill`发送信号结束进程,`top`实时监控系统资源使用情况,`nohup`让命令在后台运行不受控制台影响。 九、系统管理和维护 定期更新系统以获取安全补丁和新功能非常重要。使用`apt-get ...

    linux基础教程(清华课件).rar

    15. **远程访问与SSH**:介绍SSH服务,学习如何通过SSH进行远程登录和文件传输。 这个教程对于初学者来说是一份宝贵的资源,它将帮助你构建扎实的Linux基础知识,为进一步学习系统管理、网络编程、云计算等领域打下...

    Lniux快速入门

    `ps`查看当前进程,`top`或`htop`实时监控系统资源和进程,`kill`和`pkill`终止进程,`nohup`让程序在后台持续运行。 八、脚本编程 bash是Linux默认的shell,通过编写shell脚本,可以自动化执行一系列命令。了解...

Global site tag (gtag.js) - Google Analytics