1.说明

此脚本可分发两类文件,1.固定内容文件,2.(每台被分发主机)内容不同的文件

ppp.sh为拨号脚本,每台被分发主机内容不同

根据分发文件名字不同(ppp.sh和其他文件)自动选择分发方式

2.脚本

  1. #!/bin/sh
  2.  
  3. files=$
  4. ip=$
  5. port=$
  6.  
  7. [ -z "$files" ]&&{
  8. echo ''
  9. exit
  10. }
  11.  
  12. [ -z "$ip" ]&&{
  13. echo ''
  14. exit
  15. }
  16.  
  17. [ -z "$port" ]&&{
  18. echo ''
  19. exit
  20. }
  21.  
  22. path=
  23.  
  24. if [ "$files" = "ppp.sh" ];then
  25. dir=`cat /proc/sys/kernel/random/uuid`
  26. rm -rf /tmp/.$dir
  27. mkdir /tmp/.$dir
  28.  
  29. cp ppp0.txt /tmp/.$dir/ppp.sh
  30. echo "ip2='"$ip"'" >> /tmp/.$dir/ppp.sh
  31. echo "sshport='"$port"'" >> /tmp/.$dir/ppp.sh
  32. cat ppp1.txt >> /tmp/.$dir/ppp.sh
  33.  
  34. ssh -o ConnectTimeout= -p $port root@${ip} date > /dev/null
  35. if [ $? -eq ];then
  36. scp -P $port /tmp/.$dir/ppp.sh root@${ip}:/root
  37. if [ $? -ne ];then
  38. echo ''
  39. rm -rf /tmp/.$dir
  40. exit
  41. fi
  42.  
  43. ssh -o ConnectTimeout= -p $port root@${ip} 'chmod 700 ppp.sh'
  44. if [ $? -eq ];then
  45. echo ''
  46. rm -rf /tmp/.$dir
  47. exit
  48. else
  49. echo ''
  50. rm -rf /tmp/.$dir
  51. exit
  52. fi
  53. else
  54. echo ''
  55. rm -rf /tmp/.$dir
  56. exit
  57. fi
  58. else
  59.  
  60. [ -f "$files" ]||{
  61. echo ''
  62. exit
  63. }
  64.  
  65. ssh -o ConnectTimeout= -p $port root@${ip} date > /dev/null
  66. if [ $? -eq ];then
  67. scp -P $port $files root@${ip}:/root
  68. if [ $? -ne ];then
  69. echo ''
  70. exit
  71. fi
  72.  
  73. temp=`ssh -o ConnectTimeout= -p $port root@${ip} "sh $files"`
  74. if [ $? -eq ];then
  75. echo ''
  76. exit
  77. else
  78. echo ''
  79. exit
  80. fi
  81.  
  82. else
  83. echo ''
  84. exit
  85. fi
  86.  
  87. fi
  1. [root@zxserver05 sync_script]# ./sync_script.sh ppp.sh wzdx1.leyuyun.com
  2. ppp.sh % .8KB/s :
  1. --执行成功
  2. --文件未指定
  3. --ip未指定
  4. --port未指定
  5. --ssh连接失败
  6. --文件远程至讯失败
  7. --指定文件不存在
  8. --文件上传失败

注:分发"其他"类型的文件,最好指定决定路径。

linux文件分发脚本的更多相关文章

  1. 【转】嵌入式Linux文件系统启动脚本及分析

    原文网址:http://www.linuxidc.com/Linux/2011-03/33728.htm 在内核初始化完成后,嵌入式linux 文件系统的启动过程主要包含以下几个步骤: 1. 执行/s ...

  2. Linux文件拷贝脚本

    在工作中,我们经常遇到要从Linux服务器拷贝日志至本地或者定期清理日志的需求,在服务器上,大型系统的日志是按模块存储的,这就导致日志的文件目录较多且层级不统一.我们从众多的目录手工筛选要下载或者删除 ...

  3. linux文件归档脚本

    #!/bin/bash range= dir="/app/xx/logs" bak_dir="/app/xx/logs_archive" cd $dir $ra ...

  4. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  5. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

  6. linux下shell脚本执行jar文件

    最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...

  7. JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法

    前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...

  8. linux执行sh脚本文件命令

    linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...

  9. linux文件系统启动流程、启动脚本

    linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...

随机推荐

  1. 后缀名为properties,config和xml的文件内容读取

    1.先建立文件(后缀名为properties和config) 2.读取类建立 public class Read{ public static Properties  properties = new ...

  2. Android 手机卫士2--home页面

    1,自定义获取焦点的TextView FocusTextView.java package com.itheima.mobilesafe74.view; import android.content. ...

  3. easyui datagrid 点击表头的事件

    在用datagrid的时候我们可能要用到点击表头来触发一个function,这里有个简单的例子. 首先你得有个能用的datagrid. <div>    <table id=&quo ...

  4. 经典网页设计:20个华丽的 iPhone 应用程序演示网站

    一个物品销售很好,重要的原因之一是它的包装,因为这是最重要的细节,可以把一个人转变成购买者.一个好的包装设计和良好的表现比产品本身更重要,因此被分配了大量的金钱和资源,以创造伟大的东西. 因此,为了销 ...

  5. js异步方式

    node.js的例子 1.回调 创建 main.js 文件 var fs = require("fs"); fs.readFile('input.txt','utf8', func ...

  6. angular源码分析:angular源代码的获取与编译环境安装

    一.安装git客户端 1.windows环境推荐使用TortoiseGit. 官网地址:http://tortoisegit.org 下载地址:http://tortoisegit.org/downl ...

  7. css3选择器(上)

    1.给导航加分割线,左右 .nav li::before,.nav li::after{ content:""; position:absolute; top:14px; heig ...

  8. SharePoint 2013 VSS 编写器

    Windows Server 包含的 VSS 是提供内置卷影复制功能的基础结构.VSS 创建的卷影副本扩展了存储管理员的磁带备份存档解决方案,提供可轻松.有效创建和还原的高保真时间点副本,从而帮助简化 ...

  9. RxJava 和 RxAndroid 四(RxBinding的使用)

    对Rxjava不熟悉的同学可以先看我之前写的几篇文章 RxJava 和 RxAndroid 一 (基础) RxJava 和 RxAndroid 二(操作符的使用) RxJava 和 RxAndroid ...

  10. Android 创建一个新的Activity

    本文转载自:http://www.cnblogs.com/wuyudong/p/5658020.html 新建一个项目,创建一个java类,继承自Activity 新建一个Android.xml文件: ...