shell远程执行命令
ssh主要参数说明
-l 指定登入用户
-p 设置端口号
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-N 不执行远程命令,只做端口转发
-q 安静模式,忽略一切对话和错误提示
-T 禁用伪终端配置
#!/bin/sh HOST_LIST="host1 host2 host3 host4"
SSH_PORT=2202 for loop in $HOST_LIST
do
echo "executing in $loop:"
ssh -p $SSH_PORT $loop "$1"
#ssh -f -p $SSH_PORT $loop "$1" &
echo
done
调用 tar zxvf /root/pat.tar.gz -C /home
在本地调用远程脚本
$ ssh -l oracle r7 '/tmp/b.sh &'
注意以下几点:
&表示后台执行,也可以不加;
脚本要拥有执行权限;
如果远程脚本 b.sh 中使用了文件,文件必须要写全路径,不然的话,默认为指定用户的home目录,而非当前目录。
使用管道模拟并发
#!/usr/bin/ksh
# SCRIPT: ptest.sh
# AUTHOR: Ray001
# DATE: 2008/10/03
# REV: 2.0
# For STUDY
#
# PURPOSE:
# 实现进程并发,提高执行效率,同时能记录每个执行失败的子进程信息 #定义并发进程数量
PARALLEL=3
#定义临时管道文件名
TMPFILE=$.fifo
#定义导出配置文件全路径名
CMD_CFG=$HOME/cfg/ptest.cfg
#定义失败标识文件
FAILURE_FLAG=failure.log ####################### 函数定义 ########################
# 中断时kill子进程
function trap_exit
{
kill -9 0
} # 通用执行函数
exec_cmd()
{
# 此处为实际需要执行的命令,本例中用sleep做示例
sleep ${1}
if [ $? -ne 0 ]
then
echo "命令执行失败"
return 1
fi
} trap 'trap_exit; exit 2' 1 2 3 15 #清理失败标识文件
rm -f ${FAILURE_FLAG} #为并发进程创建相应个数的占位
mkfifo $TMPFILE
exec 4<>$TMPFILE
rm -f $TMPFILE
{
count=$PARALLEL
while [ $count -gt 0 ]
do
echo
let count=$count-1
done
} >&4 #从任务列表 seq 中按次序获取每一个任务
while read SEC
do
read <&4
( exec_cmd ${SEC} || echo ${SEC}>>${FAILURE_FLAG} ; echo >&4 ) &
done<$CMD_CFG
wait
exec 4>&- #并发进程结束后判断是否全部成功
if [ -f ${FAILURE_FLAG} ]
then
exit 1
else
exit 0
fi
shell远程执行命令的更多相关文章
- Linux Shell远程执行命令(命令行与脚本方式)
需求:经常需要在一台服务器远程到其他节点的服务器上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.介绍两种shell命令远程执行的方法. 方式一: s ...
- Linux Shell远程执行命令
1.问题描述 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,下边介绍shell命令远程执行的方法. 前提: 远程电脑之间已经配置ssh免密码登陆 2.脚本方 ...
- linux shell 远程执行命令
经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...
- 远程执行命令和文件分发shell脚本
deploy.conf node01,all,other,datanode,journalnode,zookeeper, node02,all,other,datanode,journalnode,z ...
- python之实现批量远程执行命令(堡垒机)
python远程批量执行 我并不是一个专业的开发,我一直在学习linux运维,对于python也是接触不久,所以代码写的并不是很规范简洁. 前段时间一个同学找我一起做一个自动化运维平台,我对pytho ...
- 19 Zabbix 利用Scripts栏目对Hosts远程执行命令
点击返回:自学Zabbix之路 19 Zabbix 利用Scripts栏目对Hosts远程执行命令 在Monitoring板块中,有Host出现的地方,单击Host按钮后,都可以执行对Host远程执行 ...
- zabbix自定义监控项、添加图形、设置触发器、远程执行命令
监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...
- 解决SSH远程执行命令找不到环境变量的问题
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...
- Python_编写UDP通信编解码类、文件的上传、远程执行命令、黏包
1.UDP通信编解码类 (1) 类 # ------------------UDP通信解码编码类------------------------ from socket import * class ...
随机推荐
- 磕磕碰碰的Chrome之plugin开发
前言 在Firefox下可用的npapi插件,在chrome下调用时遇到问题,于是尝试研究chrome下的ppapi插件,一路上真是磕磕碰碰,波折不断啊. 阶段一.复用npapi 尝试将npapi直接 ...
- 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏
排序练习--找出前m大的数字 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定n个数字,找出前m大的数字. 输入 多组输 ...
- boost库学习之regex
一.背景 项目中许多地方需要对字符串进行匹配,比如根据指定的过滤字符串来过滤文件名.刚开始是排斥使用boost库的,第一,我不熟悉boost库:第二,如果引入第三方库,就会增加库的依赖,这样的后果是, ...
- 驱动之module_init/module_exit
在前面helloworld的编写里面,我们使用了两个宏分别是module_init和module_exit,这里分析下为什么使用这两个宏. 在写模块的时候有两个特殊的函数,分别是init_module ...
- 光耦PC817
光耦一共4个引脚,两个输入,两个输出. 输入接5v和gnd,5v接时加100欧姆电阻.输出不大于35v电压,这时输出端通路(只是通路,不是短路)
- java初始化笔记
构造器初始化static块与非static块区别:对象创建时都做块的初始化,非static块仅在实例创建时初始化,static块在类被第一次加载时初始化数组初始化注意点:1.数组定义时最好在定义的同时 ...
- iOS中3种正则表达式的使用与比较
正则表达式在用户注册和登录中应用很广,通过正则表达式可以判断用户输入的数据正确与否. 在iOS4.0以前开发者一般是通过谓词(NSPredicate)和加入正则表达式的第三方库(如:RegexKitL ...
- Bootstrap_排版
标题: Bootstrap和普通的HTML页面一样,定义标题都是使用标签<h1>到<h6>,只不过Bootstrap覆盖了其默认的样式,使用其在所有浏览器下显示的效果一样,具体 ...
- js计时器的问题
不说话直接上代码了 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...
- window server开发
代码部分: public partial class tv : ServiceBase { public tv() { InitializeComponent(); ServiceName = &qu ...