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

最近有点背,在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 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值