技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统运维 --> rsync自动输入密码实现数据备份

rsync自动输入密码实现数据备份

浏览:4092次  出处信息

最近有点背,在64位suse上大家django环境出了一堆问题,最后服务器还不稳定不能用……
由于做不了webserver,所以只能用来做备份服务器了,需求比较简单,就是将源服务器的一个目录每天copy过来做备份。其实就是用rsync或者scp即可,最后的问题就变成了怎么让rsync自动输入服务器密码,结果在网上搜了一下方法,有rsyncserver,公秘钥,之类,杯具的是我配置了一下午也没搞定……

然后想起公司有同事之前做过一个自动登录服务器的脚本,是不是只要改一下执行的命令即可呢?修改后的代码如下:

#!/usr/bin/expect -f
#auto ssh login
proc wait {} {
  expect {
    "*asswor*" {
      send
not!@#rated\n
      expect {
        "*asswor*" {
          puts stderr "Unknown password."
          exit 1
        }
        "$*" { }
        ">*" { }
        "#*" { }
      }
    }
    "$*" { }
    ">*" { }
    "#*" { }
  }
}
if {[llength $argv] < 1} {
  puts "Usage: [exec basename $argv0] Host."
  exit 1
}
set timeout 30
set dir [lindex $argv 0]
set passwd "dantezhu"
#exp_internal 1
spawn mkdir -p /data/mman_backup/$dir
spawn [exec which rsync] dantezhu@10.6.207.84#36000:/home/dantezhu/release/dgwww/upload /data/mman_backup/$dir -ar --progress
expect {
  "*asswor*" {
    send "dantezhu\n"
    wait 
  }
  "*no)?*" {
    send "yes\n";
    expect {
      "*assword*" {
        send "$passwd\n"
        wait 
       }
    }
  }
  timeout {
    puts "Timeout!"
    exit 1
  }
}
interact

由于是在不知道怎么在这个脚本里面获取当前的年月日,所以又在外面写了一层python(表BS我……)

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import os
timeHere = time.strftime('%m/%d',time.localtime())
cmd = '/home/dantezhu/py_backup/backup_data '+ timeHere
os.system(cmd)

测了一下,一切正常,然后在crontab中加入定时脚本,让它每天0点半执行:

30 0 * * *                      python /home/dantezhu/py_backup/rsync_backup.py >> /data/mman_backup/backup.log 2>&1 &

附:代码下载

建议继续学习:

  1. rsync同步的艺术    (阅读:8303)
  2. Linux探索:一次删除一百万个文件的最快方法    (阅读:5834)
  3. 仅仅只备份是不够的    (阅读:4907)
  4. rsync 的核心算法    (阅读:4496)
  5. Dropbox差异同步算法rsync及其改进算法原理    (阅读:4332)
  6. 使用scp在windows和Linux之间互传文件    (阅读:4188)
  7. rman备份对各种数据块操作    (阅读:3691)
  8. 使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机    (阅读:3283)
  9. puppet使用rsync来同步文件教程    (阅读:3259)
  10. mydumper的使用和源代码分析    (阅读:3169)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1