upload.py 2.4 KB

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