python 密码库_python之paramiko密钥库+密码登录

#!/usr/local/anaconda3/bin/python#coding:utf-8

#Create your views here.#====================================================#Author: chang - EMail:changbo@hmg100.com#Last modified: 2017-07-11#Filename: downloadrem.py#Description: file upload ,base paramiko, sys, time#blog:http://www.cnblogs.com/changbo#====================================================

"""1, 每日晚1:30分执行webserver控制台和项目日志的备份,脚本Path:/home/yunwei/jb/mvlogs.sh

2,每日凌晨2:30分执行移动tar以外的已打包日志到回收站/tmp/trash(回收站定期)

3,将保存的日志回传到本地各相关站点目录下

4,每天22:30清空回收站

5,初始化用户环境alias rm='mv --verbose -f --backup=numbered --target-directory /tmp/trash'

6,find -not -name '*.tar.gz' |xargs mv -f --backup=numbered -t /tmp/trash/ 2>/dev/null"""

importparamikoimporttimeimportsysimportthreading

ipList= ['xx.x.x.x']#accPwd = {ipList[0]: 'xxxxxxxxxx'}

bakTime= time.strftime('%Y%m%d')

filename= 'remdown' + bakTime + '.tar.gz'logPath= '/data'locHome= logPath + '/hkdaex/home/' +filename

locTrade= logPath + '/hkdaex/trade/' +filename

remHome= logPath + '/homelogs/' +filename

remTrade= logPath + 'tradelogs/' +filename

private_key= "F:\\testcode\\id_rsa"

classSSHSession:def __init__(self, host, username='xxxxx', port=22):

self.host=host

self.port=port

self.username=username#self.pwd =

defconnect(self):

transport=paramiko.Transport((self.host, self.port))

key= paramiko.RSAKey.from_private_key_file(private_key, 'xxxxxxxxxx')

transport.connect(username=self.username, pkey=key)

self.__transport =transportdefclose(self):

self.__transport.close()def progressbar(self, transferred, toBeTransferred, suffix=''):

bar_len= 60filled_len= int(round(bar_len * transferred /float(toBeTransferred)))

percents= round(100.0 * transferred / float(toBeTransferred), 1)

bar= '=' * filled_len + '-' * (bar_len -filled_len)

sys.stdout.write('Download [%s] %s%s ...%s\n' % (bar, percents, '%', suffix))

sys.stdout.flush()#def getloadfile(self, target_path, local_path):u*TB4oCjdUZb2%m6

defgetloadfile(self):

ssh=paramiko.SSHClient()

ssh._transport= self.__transportstdin, stdout, stderr= ssh.exec_command('ls')print(stdout.read().decode())#sftp = paramiko.SFTPClient.from_transport(self.__transport)

#print('Download remote log file :')

#sftp.get(target_path, local_path, callback=self.progressbar)

return 'success'

defexecDown():#try:

ssh =SSHSession(ipList[0])

ssh.connect()#status = ssh.getloadfile(remHome, locHome)

#print(status)

#status2 = ssh.getloadfile(remTrade, locTrade)

status =ssh.getloadfile()print(status)

ssh.close()#except Exception as e:

#print(e)

if __name__ == '__main__':

t1= threading.Thread(target=execDown)

t1.start()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值