黑帽联盟

 找回密码
 会员注册
查看: 1413|回复: 0
打印 上一主题 下一主题

[基础服务] expect+rsync实现双向同步

[复制链接]

895

主题

38

听众

3323

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 1644 天

    [LV.Master]伴坛终老

    一直在找rsync的双向同步的方法,今天居然找到个用shell脚本就可以搞定的方法,这里就共享给大家看看吧,免得跟我有一样需求的人还到处去找.

    要求:
    1.将192.168.1.103:/data/www/wwwroot/bbs.cnblackhat.com/attachment 同步到本机
    的/data/www/wwwroot/bbs.cnblackhat.com/attachment 目录。
    2.并且如果发现本机有文件更新,
    也将其推送到192.168.1.103:/data/www/wwwroot/bbs.cnblackhat.com/attachment目录,实现双向同步.
    3.SSH的22端口被修改成了3231.用户名root,密码:52netseek
    4.现求用expect+rsync实现同步.
    1. #!/bin/bash
    2. ROOT="/data/www/wwwroot/bbs.cnblackhat.com/"
    3. SITE="192.168.1.103"
    4. USER="root"
    5. PASSWORD="52netseek"
    6. RSYNC_OPTS="-e \\\"ssh -p3231 -o StrictHostKeyChecking=no\\\" -azuv"

    7. auto_rsync() {
    8.    expect -c "eval spawn -noecho rsync --exclude .*.swp $RSYNC_OPTS $1 $2
    9.       match_max 10000k
    10.       expect \"*?assword:*\"
    11.       send -- \"$PASSWORD\r\"
    12.       expect eof"
    13. }

    14. sync() {
    15.    FILE=$(basename $1)
    16.    DEST=$(dirname $1)
    17.    # download remote site file to current location
    18.    auto_rsync $USER@$SITE:$ROOT$FILE $DEST
    19.    # update remote site file if newer than backup
    20.    auto_rsync $1 $USER@$SITE:$ROOT
    21. }

    22. # Remote file Directory
    23. sync "/data/www/wwwroot/bbs.cnblackhat.com/attachment"
    复制代码
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部