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

  • 相关阅读:
    vnode之update 还是没太懂
    vnodec创建之标签
    1054 求平均值
    1053 住房空置率
    1052 卖个萌
    1051 复数乘法
    1050 螺旋矩阵
    1049 数列的片段和
    1048 数字加密
    1047 编程团体赛
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/7007718.html
Copyright © 2011-2022 走看看