彻底解决paramiko无法上传整个目录的问题
彻底解决paramiko无法上传整个目录的问题
公司有10多台服务器,上边部署的JAVAwep服务,每周都会有更新包,更新包的形式是静态问价加jar-,每次部署都需要每台服务器去替换,替换完成重启服务,由于刚到公司没多长时间一直领导怎么安排就怎么做,但长时间的这么部署很容易出错,更关键的是每次更新都要加班,属实让人讨厌!
开始考虑自动化更新的需求
由于自己会写python,和java两种语言先考虑做的话,自动化运维的话就可以闭着眼选python了,当然语法简便也是一点嘿嘿。首先要考虑的是-jar的更新包,
单体文件上传
单个文件单体上传到指定目录paramiko完全可以解决,上代码。
单文件上传,并自动保留3次历史的更新包,防止更新包出现问题手忙脚乱。
def sftp_upload_file(server_path,local_path):
try:
t=paramiko.Transport((host,22))
t.connect(username=user,password=password)
sftp=paramiko.SFTPClient.from_transport(t)
#print(sftp.listdir())
sftp.chdir('/home/visionread/visionread/webroot/court')
date=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
sftp.po