`

传送文件到多个远程机器的脚本

 
阅读更多

写一个传送文件到远程机器的脚本

因为在进行升级操作的时候,一些应用的文件都需要替换,如果一个一个替换会很麻烦也很慢,所以有必要写个脚本进行传送。

因为这些应用在各个远程机器上的部署路径都是一样的,脚本就相对简单很多了。

ps:中式英文都是经过谷歌认证的

#!/bin/bash
remote_ip="192.168.161.5 192.168.161.5"
jar_dir="/opt/jar"
if [ $# -eq "0" ]
then
echo "must have one file to send"
exit 0
elif [ $# -gt "1" ]
then
echo "only send one file per times"
exit 0
fi
file_type=`echo $1|awk -F. '{print $2}'`
for ip in $remote_ip
do
if [ -n "$file_type" ]
then
if [ "$file_type" = "jar" ]
then
echo "scp $jar_dir/$1 $ip:$jar_dir"
scp $jar_dir/$1 $ip:$jar_dir
fi
else
echo "this file $1 is invalid"
exit 0
fi
done

经过测试,通过

-bash-3.00# ./send_file.sh test.jar
scp /opt/jar/test.jar 192.168.161.5:/opt/jar
test.jar             100% |*********************************************************************************|     0       00:00   
scp /opt/jar/test.jar 192.168.161.5:/opt/jar
test.jar             100% |*********************************************************************************|     0       00:00

 

可以根据要传送的文件加路径变量即可。

后面想了想,优化优化了上面那个脚本,底下这样也行

用case语句代替if更灵活些

 

-bash-3.00# more send_file2.sh
#!/bin/bash
remote_ip="192.168.161.5 192.168.161.5"
jar_dir="/opt/jar"
if [ $# -eq "0" ]
then
echo "must hava one file to send"
exit 0
elif [ $# -gt "1" ]
then
echo "only send one file per times"
exit 0
fi
file_type=`echo $1|awk -F. '{print $2}'`
for ip in $remote_ip
do
case "$file_type" in
jar)
echo "scp $jar_dir/$1 $ip:$jar_dir"
scp $jar_dir/$1 $ip:$jar_dir
;;
*)
echo "this file $1 is invalid"
break
;;
esac
done

 

测试

-bash-3.00# ./send_file2.sh test.jar
scp /opt/jar/test.jar 192.168.161.5:/opt/jar
test.jar             100% |*********************************************************************************|     0       00:00   
scp /opt/jar/test.jar 192.168.161.5:/opt/jar
test.jar             100% |*********************************************************************************|     0       00:00

 

也无问题。

 

分享到:
评论

相关推荐

    Linux Shell脚本经典案例合集

    18个Linux Shell脚本经典案例合集,内含: Dos攻击防范(自动屏蔽攻击IP...批量主机远程执行命令脚本.sh 一键部署LNMP网站平台脚本.sh 一键查看服务器资源利用率.sh 自动发布Java项目(Tomcat).sh 自动发布PHP项目脚本.sh

    python脚本

    1. ssh_thread.py 是一个批量执行命令的脚本,支持直接执行ssh命令及文件传输,支持多线程 使用说明如下: -h,-H,--help 帮助页面 -C, --cmd 执行命令模式 -M, --command 执行命令模式 -S, --sendfile ...

    如何编写批处理文件批处理文件批处理文件

    这个带引号的字符串包括一个或多个 指定不同解析选项的关键字。这些关键字为: eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始时忽略的行数。 delims=xxx - 指分隔符集。这个替换了空格和跳格键的...

    python常用脚本demo

    ssh_thread.py 是一个批量执行命令的脚本,支持直接执行ssh命令及文件传输,支持多线程 使用说明如下: -h,-H,--help 帮助页面 -C, --cmd 执行命令模式 -M, --command 执行命令模式 -S, --sendfile 传输...

    Termius(Shell)of Mac

    用户可以轻松地在几个标签页中切换,并同时管理多个远程连接。这样一来,用户不需要打开多个窗口,就可以快速切换不同的会话,提高效率。 Termius还具有文件传输功能,支持使用SCP或SFTP协议在本地和远程主机之间...

    cmd操作命令和linux命令大全收集

    tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送...

    CuteFTP9简易汉化版

    队列Transfers-Select文件和文件夹跨越多个远程站点和队列他们未来的转移。一种上传软件的健壮的队列管理系统允许您管理队列的顺序(重点)项目,追踪队列状态转移的项目,安排队列项,修改队列项的属性。你也可以保存的...

    数据同步风车 v2.4

    多台服务器或PC机数据/文件远程备份到远程另一台服务器上或互相备份的软件。监视指定文件夹下文件的变化并将增加或修改文件同步备份到另一台服务器上的文件远程备份软件,数据异地同步软件,数据异地备份软件,文件异地...

    xshell7.0安装程序压缩包资源

    同时,它还支持多个会话窗口的同时操作,用户可以方便地切换和管理不同的连接。 Xshell提供了强大的脚本功能,用户可以使用VBScript、Python等多种脚本语言编写和执行自己的脚本程序。这样,用户就可以通过脚本实现...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    数据同步风车 v2.4.rar

    文件远程备份到另一台服务器上或互相备份的软件。 监视指定文件夹下文件的变化并将增加或修改文件同步备份到另一台服务器上。数据异地同步软件,数据异地备份软件,文件异地同步软件,文件异地备份软件。  1.同步...

    linux大作业报告

    5、为了便于文件的管理和传输,某些时候需要将特别大的文件切割为多个指定长度小的文件。现有一个文件管理程序需要实现大文件切割功能,要求用户编写一个函数实现该功能。 6、编写程序,根据输入的参数创建一个目录...

    DWR.xml配置文件说明书(含源码)

    从java中传递null值到javascript是没有任何危险性的,所以DWR将这个作为默认的converter,所以你自己不用再把这个converter添加到配置文件的部分中去. 基本类型的converter转换int,boolean,double等.当然还包括对应的...

    cloudfiles-sync:用于将一组文件目录与Rackspace Cloudfiles(或任何Openstack存储提供程序)同步的脚本

    当前,它允许用户通过管道将要上传到云文件的文件列表传送到其中。特征轻量级-当前唯一需要的非标准python库是python-cloudfiles。 目的是不需要其他任何东西,从而确保最大的可移植性支持英国和美国的Cloudfiles...

    WinSCP4.2.9 绿色多语版,内附使用图解。

    类似于Flashget操作,可以非常方便的实现windows向linux计算机上实现文件互传。主要是Linux端不要复杂的设置。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。 特性: 图形用户界面 多语言...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包2

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    Linux指令一周通 (技术图书大系).azw3

    1.82 uuto指令:文件传送到远端主机 1.83 whereis指令:查找文件 1.84 which指令:查找文件 1.85 zip指令:压缩文件 1.86 zipinfo指令:显示压缩文件的信息 第2天 文本编辑指令 2.1 col指令:过滤控制字符 2.2 colrm...

Global site tag (gtag.js) - Google Analytics