upload.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import paramiko
  2. import os
  3. import sys
  4. import time
  5. import zipfile
  6. hostname="local2.luojigou.vip"
  7. username="root"
  8. password='Au9VfcHjkq'
  9. port=22
  10. ##############################
  11. ##############################
  12. ##############################
  13. transport = paramiko.Transport((hostname, port))
  14. transport.connect(username=username, password=password)
  15. ##############################
  16. ##############################
  17. ##############################
  18. sftp = paramiko.SFTPClient.from_transport(transport)
  19. # transport.close(),
  20. ##############################
  21. ##############################
  22. ##############################
  23. # 创建SSH对象
  24. ssh = paramiko.SSHClient()
  25. # 允许连接不在know_hosts文件中的主机
  26. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  27. # 连接服务器
  28. ssh.connect(hostname=hostname, port=port, username=username, password=password,allow_agent=False,look_for_keys=False)
  29. ##############################
  30. ##############################
  31. ##############################
  32. local_path = os.getcwd() + "\dist.zip"
  33. target_file_name = sys.argv[2]
  34. remote_path = sys.argv[1]
  35. remote_file_name = remote_path + target_file_name
  36. print("本地文件地址: " + local_path )
  37. print("远程目录地址: " + remote_file_name)
  38. srmdir_all_folder = os.getcwd() + '/dist' # 文件夹路径
  39. zip_file_path = srmdir_all_folder + ".zip" # 压缩文件路径
  40. print("打包中.....🍗")
  41. def make_zip(source_dir, output_filename):
  42. zipf = zipfile.ZipFile(output_filename, 'w')
  43. pre_len = len(os.path.dirname(source_dir))
  44. for parent, _, filenames in os.walk(source_dir):
  45. for filename in filenames:
  46. pathfile = os.path.join(parent, filename)
  47. arcname = pathfile[pre_len:].strip(os.path.sep) #相对路径
  48. zipf.write(pathfile, arcname.replace('/dist', ''), zipfile.ZIP_DEFLATED)
  49. zipf.close()
  50. make_zip(srmdir_all_folder, zip_file_path)
  51. time.sleep(1)
  52. print("打包完成.....😎")
  53. print("上传中.....💪")
  54. sftp.put(local_path, remote_file_name + "/dist.zip")
  55. time.sleep(1)
  56. cmd1 = "unzip -o -d " + remote_file_name + " " + remote_file_name + "/dist.zip"
  57. stdin, stdout, stderr= ssh.exec_command(cmd1)
  58. result = stdout.read()
  59. print("上传成功🎉🎉🎉🎉")
  60. transport.close()
  61. ssh.close()