python指令碼實現向伺服器上傳 zip並解壓
由於公司沒有運維,前端程式經常需要後端程式設計師部署,為解決部署繁瑣問題,使用python實現上傳zip包並解壓
import os
import sys
import paramiko
from scp import SCPClient
class zip_file_deploy:
def __init__(self):
"""
"""
# 建立一個ssh的客戶端,用來連線伺服器
ssh_client = paramiko.SSHClient()
# 建立一個ssh的白名單
know_host = paramiko.AutoAddPolicy()
# 載入建立的白名單
ssh_client.set_missing_host_key_policy(know_host)
# 連線伺服器
ssh_client.connect(
hostname=hostname,
port=port,
username=username,
password=password
)
self.ssh_client = ssh_client
def upload_file(self):
"""
指定檔案傳送伺服器
:return:
"""
print("【拖拽檔案到此處】")
local_path = input()
# 如果沒有資料則退出
if not local_path:
sys.exit()
remote_path = '/data/workdir/ftp/'
print("\r", '正在上傳 · · · ', end='', flush=True)
client = SCPClient(self.ssh_client.get_transport(),buff_size=1024 * 64, socket_timeout=15.0)
try:
client.put(local_path, remote_path)
print("\r", "檔案 [%s] 上傳完成" % local_path.split(os.sep)[-1], end='', flush=True)
print()
remote_path += local_path.split(os.sep)[-1]
self.unzip_file(remote_path)
except FileNotFoundError as e:
print(e)
print("系統找不到指定檔案" + local_path)
def unzip_file(self, remote_path):
"""
-d extract files into exdir
:param remote_path:
:return:
"""
extract_files_into = '/data/workdir/nginx-data/'
print("\r", '正在解壓 · · · ', end='', flush=True)
# 執行命令
print("\r", '清理檔案 · · · ', end='', flush=True)
self.ssh_client.exec_command("rm -rf %s*" % extract_files_into)
stdin, stdout, stderr = self.ssh_client.exec_command("unzip -d %s %s" % (extract_files_into, remote_path))
# stdin 標準格式的輸入,是一個寫許可權的檔案物件
# stdout 標準格式的輸出,是一個讀許可權的檔案物件
# stderr 標準格式的錯誤,是一個寫許可權的檔案物件
print(stdout.read().decode())
print("解壓完成")
def __del__(self):
"""
當物件釋放時,關閉連結
:return:
"""
self.ssh_client.close()
if __name__ == '__main__':
zfd = zip_file_deploy()
while True:
zfd.upload_file()
相關文章
- 用PHP實現上傳的ZIP檔案的解壓PHP
- 利用Java實現zip壓縮/解壓縮 (轉)Java
- 使用org.apache.tools.zip實現zip壓縮和解壓Apache
- vue 實現剪裁圖片並上傳伺服器Vue伺服器
- Java實現檔案壓縮與解壓[zip格式,gzip格式]Java
- JAVA基礎:利用Java實現zip壓縮解壓縮(轉)Java
- python 壓縮檔案並進行郵件傳送(附件格式為zip)Python
- java解壓rar,解壓zipJava
- Golang 學習筆記(五)- archive/zip 實現壓縮及解壓Golang筆記Hive
- zip解壓縮
- Java zip解壓,並遍歷zip中的配置檔案 .cfg或.propertiesJava
- 【python】用python指令碼實現ansible的推送、下載、上傳檔案功能Python指令碼
- nodejs解壓zip/rar檔案到本地,並獲取到解壓進度NodeJS
- 壓縮解壓命令(tar, zip)
- Android 下載Zip檔案,並解壓到本地Android
- Mac 解密 zip 解壓Mac解密
- 用 Huffman 樹實現檔案壓縮並解壓
- Java實現圖片上傳到伺服器,並把上傳的圖片讀取出來Java伺服器
- 雲伺服器:解決linux下zip檔案解壓亂碼問題伺服器Linux
- layui中實現上傳圖片壓縮UI
- H5實現拍照並上傳H5
- FTP自動下載並解壓縮檔案指令碼FTP指令碼
- 「Python實用祕技01」複雜zip檔案的解壓Python
- Python 中最快解壓 zip 檔案的方法Python
- # 向伺服器上傳圖片伺服器
- PHP 指令碼實現 Markdown 文章上傳到七牛圖床PHP指令碼圖床
- 如何實現上萬大檔案上傳到伺服器並穩定供種?伺服器
- Mac系統下的zip壓縮包解壓到Windows下出現亂碼的解決方法MacWindows
- 批次解壓shell指令碼指令碼
- 快速解壓 Mac上zip 檔案的兩種方法Mac
- linux 解壓rar,zipLinux
- php 建立壓縮包zip,並將指定檔案放入zip中PHP
- AWS S3 Lambda Python指令碼函式實現圖片自動轉換為webp並上傳至s3S3Python指令碼函式Web
- 備份表空間並上傳磁帶庫的指令碼指令碼
- java實現zip壓縮檔案/資料夾Java
- 批次非同步上傳aws圖片指令碼(python)非同步指令碼Python
- aix上使用jar命令解壓字尾為zip的包AIJAR
- ZIP壓縮演算法原理分析及解壓例項程式碼演算法