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

  • 相关阅读:
    Kafka中的数据清理(logdeletion)
    genymotion虚拟器笔记
    layui hover显示图片
    vue 导出到excel
    el-tree知识积累
    js 含有对象的数组去重
    苏宁易购价格爬取(golang)
    vue+elementui+beego笔记
    vue笔记
    beego笔记
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/7007718.html
Copyright © 2011-2022 走看看