CentOS 使用 scp + expect 实现远程备份

一、安装expect

yum install -y expect

二、python编写定时任务脚本

def remote_put(local_path, remote_path, pwd, port = None, limit = None, timeout = -1):
    """
        port:远程ssh端口,默认ssh端口 22
        limit:限速(kb), 默认不限速
        pwd:远程机器密码,
        timeout:超时时间(s),默认 -1 永不超时
    """
    scp_put = 'set timeout %d\nspawn scp ' % timeout
    if port is not None: scp_put += '-P %d ' % port
    if limit is not None: scp_put += '-l %d ' % (limit * 8)
    scp_put += local_path + ' ' + remote_path + '\n'
    scp_put += 'expect "(yes/no)?" {\n' \
               'send "yes\r"\n' \
               'expect "password:"\n' \
               'send "%s\r"\n' \
               '} "password:" {send "%s\r"}\n' \
               'expect eof\n' \
               'exit'
    os.system("echo '%s' > scp_put.cmd" % (scp_put % (pwd, pwd)))
    os.system('expect scp_put.cmd')
    os.system('rm scp_put.cmd')

三、使用celery编写定时任务实现自动备份

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值