zoukankan      html  css  js  c++  java
  • 指定服务器文件同步

    此脚本用于同业务服务器新增节点,同步文件使用
    主要使用到的技巧为:
    Shell 脚本传递带有空格的参数(正常遇到空格自动断开)
    可以通过@命令来处理
    即将参数7换成echo${@:7},这样将自动识别到的第7个开始,全部获取到作为最后第7个参数
    以下为同步脚本:

    #!/bin/bash
    
    RSYNC_FILE(){
        if [ $# -ge 3  ];then
            SOURCE_USER="root"
            SOURCE_IP="$1"
            SOURCE_PASSWD="$2"
            SOURCE="$3"
            DESTINATION="$3"
            Option=`echo ${@:4}`
            mkdir -p $3
            /usr/bin/expect << EOF
    spawn rsync -azvcP -e "ssh -p 22" ${Option} ${SOURCE_USER}@${SOURCE_IP}:$SOURCE $DESTINATION
    set timeout -1
             expect {
                    -timeout 60
                    "yes/no"    {send "yes
    ";exp_continue}
                    "*password" {send "${SOURCE_PASSWD}
    "}
                   }
             expect eof
    EOF
            #rm -rf $0
        else
            echo Usage:
            echo sh $0 '"SOURCE_IP"' '"SOURCE_PASSWD"' '"/data/"' 
            echo sh $0 '"SOURCE_IP"' '"SOURCE_PASSWD"' '"/data/www/"' '"--exclude log/* --exclude logs/*"'
        fi
    }
    
    RSYNC_FILE $1 $2 $3 $4
    scp_file.sh

    根据需要修改脚本中root账号及ssh端口,也可加入rm -rf $0,执行完删除自身

    脚本使用方法,直接执行即可查看Usage

  • 相关阅读:
    Java自定义异常
    Java异常处理教程
    Java异常抛出
    Java泛型方法和构造函数
    Java泛型类
    Java继承方法隐藏(覆盖)
    Java继承和构造函数
    Java方法覆盖教程
    PHP设置时区
    PHPCMS v9的表单向导实现问答咨询功能的方法
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/7007718.html
Copyright © 2011-2022 走看看