远程执行命令和文件分发shell脚本
2017-03-03 14:39
716 查看
deploy.conf
文件分发:deploy.sh
远程执行命令:runRemoteCmd.sh
使用示例
将~/.bashrc 分发到所有主机
在zookeeper主机上执行cp -rf /home/hadoop/zkdata/* /home/hadoop/zkdata_upgrade命令
node01,all,other,datanode,journalnode,zookeeper, node02,all,other,datanode,journalnode,zookeeper, node03,all,other,datanode,journalnode,zookeeper, node04,all,other,namenode, node05,all,other,namenode,
文件分发:deploy.sh
#!/bin/bash #set -x if [ $# -lt 3 ] then echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag" echo "Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile" exit fi src=$1 dest=$2 tag=$3 if [ 'a'$4'a' == 'aa' ] then confFile=~/bin/deploy.conf else confFile=$4 fi if [ -f $confFile ] then if [ -f $src ] then for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'` do scp $src $server":"${dest} done elif [ -d $src ] then for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'` do scp -r $src $server":"${dest} done else echo "Error: No source file exist" fi else echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory" fi
远程执行命令:runRemoteCmd.sh
#!/bin/bash #set -x if [ $# -lt 2 ] then echo "Usage: ./runRemoteCmd.sh Command MachineTag" echo "Usage: ./runRemoteCmd.sh Command MachineTag confFile" exit fi cmd=$1 tag=$2 if [ 'a'$3'a' == 'aa' ] then confFile=~/bin/deploy.conf else confFile=$3 fi if [ -f $confFile ] then for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'` do echo "*******************$server***************************" ssh $server "source ~/.bash_profile; $cmd" done else echo "Error: Please assign config file or run runRemoteCmd.sh command with deploy.conf in same directory" fi
使用示例
将~/.bashrc 分发到所有主机
deploy.sh ~/.bashrc ~/ all
runRemoteCmd.sh "source ~/.bashrc" all
在zookeeper主机上执行cp -rf /home/hadoop/zkdata/* /home/hadoop/zkdata_upgrade命令
runRemoteCmd.sh "cp –rf /home/hadoop/zkdata/* /home/hadoop/zkdata_upgrade" zookeeper
相关文章推荐
- expect脚本同步文件 expect脚本指定host和要同步的文件 构建文件分发系统 批量远程执行命令
- 十七周四次课 2018.03.05 expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行命令
- expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- 写了2个简单的工具脚本用来分发hdfs集群上的文件到所有节点,和远程执行命令
- expect脚本同步文件、指定host和要同步的文件、构建文件分发系统、批量远程执行命令
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- expect脚本同步文件,构建文件分发系统,批量远程执行命令
- 十七周四次课(11月30日) 20.31 expect脚本同步文件 20.32 expect脚本指定host和要同步的文件 20.33 构建文件分发系统 20.34 批量远程执行命令
- expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令
- 写了2个简单的工具脚本用来分发hdfs集群上的文件到所有节点,和远程执行命令
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- ssh远程到目标机器执行命令shell脚本
- expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 简易登录,批量执行命令,批量copy文件shell脚本【Linux运维之道之脚本案例】
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- java jsch远程执行shell脚本命令
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- 执行系统命令并且将输出写到指定日志文件的shell脚本(1)