需要到几百台机器上去删除一些目录,每台机器上的目录名固定,共有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
分享到:
相关推荐
3. **Linux下的远程执行**:在Linux环境中,可以使用`ssh`命令来远程执行命令或脚本。此外,`sudo`命令可以用于提升权限执行程序,而`systemd`服务可以用于后台执行程序。 4. **安全性考虑**:跨进程执行可能会带来...
在使用Python进行远程服务器操作时,我们经常遇到需要在服务器后台执行持续运行的命令,比如`nohup`。`nohup`命令允许我们在退出终端后仍然保持进程的运行状态,不受SIGHUP信号的影响。然而,在使用Python的paramiko...
Linux 基本服务是指运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务。服务通常是不中断运行的,随时准备接受请求,从而提供某项服务。例如我们日常使用的网页服务,其就是由一个...
只需输入`localhost:1`(如果在本地机器上)或`<your_server_ip>:1`(如果在远程机器上),然后提供你之前设置的密码。 注意,出于安全考虑,你应该考虑使用SSH隧道来加密VNC通信,防止数据在传输过程中被截取。这...
PuTTY for Linux不仅可以在传统的X Window System下运行,也可以在轻量级的桌面环境如XFCE、LXDE和Wayland下工作,甚至在没有图形界面的纯命令行环境中也能通过SSH连接远程服务器。 总的来说,PuTTY for Linux是一...
在使用rz和sz命令时,通常需要在本地和远程终端之间建立连接,如通过SSH。例如,要在本地上传一个文件到远程服务器,可以运行`rz`命令,这会在本地打开一个文件选择对话框,选择文件后,rz会使用ZMODEM协议将文件...
- `Ctrl + C`:这个快捷键用来中断当前正在执行的命令,非常实用,特别是在执行长时间运行的程序时,可以立即停止。 - `Ctrl + D`:退出当前终端窗口或者结束当前的shell会话,尤其是在远程SSH登录的场景下。 - `...
此外,如果需要在后台传输文件,可以使用`-e`选项运行lftp脚本,并在脚本中使用`bye`命令结束会话。例如: ```bash lftp -e "mirror -R /local/directory /remote/directory; bye" -u 用户名,密码 sftp://服务器...
`ssh [ip or hostname]`命令用于连接到远程主机,`vagrant ssh`则可以在与Vagrantfile相同的目录中进入虚拟机。 2. **基本文件和目录管理**: - `pwd`:显示当前工作目录的完整路径。 - `whoami`:显示当前登录的...
6. **网络和远程连接**:了解如何设置网络,使用`ifconfig`或`ip`命令查看网络状态,使用`ping`测试网络连通性,以及通过SSH进行远程登录。 7. **Shell脚本编程**:学习编写Bash脚本,了解变量、条件语句、循环、...
`nohup`命令用于在后台运行程序,即使用户退出终端也能继续运行。 【网络和远程访问】 Linux实验也可能涉及到网络配置和远程访问。`ifconfig`和`ip`命令用于查看和配置网络接口,`ping`和`traceroute`用于网络诊断...
在阿里云ECS服务器上安装Anaconda并进行数据分析是一个常见的操作,特别是在需要远程运行Python环境和Jupyter Notebook的情况下。以下是一份详细的步骤指南,涵盖了从安装Python和Anaconda到配置Jupyter Notebook...
- 如果同步的目标是远程服务器,确保在目标端也有`rsync`服务运行,并正确配置了SSH密钥免密登录,以避免频繁输入密码。 5. **监控与维护**: 使用`ps`命令检查`watcher.sh`进程是否正常运行,定期查看日志以确认...
Linux系统基于Unix哲学,强调小型、高效和模块化设计,可以运行在各种硬件平台上,包括个人电脑、移动设备以及大型服务器。 2. **Ubuntu Linux**: Ubuntu是基于Debian的Linux发行版,以其用户友好性和易用性而...
- **进程管理**:`ps`显示当前进程,`kill`和`pkill`发送信号终止进程,`nohup`使命令在后台运行。 - **定时任务**:`cron`是Linux的定时任务系统,通过编辑`crontab`文件设置定时任务。 ### 7. 网络与远程连接 -...
例如,用户可以编写bash脚本来定期执行这些任务,并通过cron定时器设置为后台自动运行。 此外,Extratohost也可能包含了一些与远程主机交互的特性,比如SSH(Secure Shell)协议,允许用户安全地在不同主机间传输...
Linux提供了`ps`查看进程,`kill`发送信号结束进程,`top`实时监控系统资源使用情况,`nohup`让命令在后台运行不受控制台影响。 九、系统管理和维护 定期更新系统以获取安全补丁和新功能非常重要。使用`apt-get ...
15. **远程访问与SSH**:介绍SSH服务,学习如何通过SSH进行远程登录和文件传输。 这个教程对于初学者来说是一份宝贵的资源,它将帮助你构建扎实的Linux基础知识,为进一步学习系统管理、网络编程、云计算等领域打下...
`ps`查看当前进程,`top`或`htop`实时监控系统资源和进程,`kill`和`pkill`终止进程,`nohup`让程序在后台持续运行。 八、脚本编程 bash是Linux默认的shell,通过编写shell脚本,可以自动化执行一系列命令。了解...