用python寫一個本地前端文件更新到服務器的工具
源碼
# -- coding: UTF-8 -
import paramiko
import os
# SSH服務器的IP地址、用戶名和密碼
hostname = '改成服務器的ip地址'
username = '改成用戶名'
password = '改成密碼'
#上傳文件路徑
remote_directory = '/data/public/front/'
def deploy_html(local_file_path, folder_name):
# 創建SSH客戶端對象
client = paramiko.SSHClient()
# 自動添加服務器的SSH密鑰
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連接到SSH服務器
client.connect(hostname=hostname, username=username, password=password)
# 服務器上文件地址
remote_file_path = remote_directory + '/' + os.path.basename(local_file_path)
# 先刪除服務器上的舊文件
command = 'rm -rf ' + remote_directory + '/' + folder_name
# 創建SFTP客戶端對象
sftp = client.open_sftp()
# 上傳文件到遠程服務器
print('上傳文件到遠程服務器: ' + remote_file_path)
sftp.put(local_file_path, remote_file_path)
# 關閉SFTP客戶端對象
sftp.close()
# 解壓縮文件
unzip_command = 'unzip ' + remote_file_path + ' -d ' + remote_directory
command = command + '; ' + unzip_command
print('exec_command: ' + command)
stdin, stdout, stderr = client.exec_command(command, get_pty=True)
# 打印命令輸出
print(stdout.read().decode('utf-8'))
# 關閉SSH客戶端對象
client.close()
print(local_file_path + "上傳成功")
pass
# 默認目錄為py文件所在文件目錄
current_dir = os.path.dirname(os.path.abspath(__file__))
files = os.listdir(current_dir)
for file_name in files:
if file_name.endswith('.zip'):
file_path = os.path.join(current_dir, file_name)
print(file_path)
print(file_name.split('.')[0])
deploy_html(file_path, file_name.split('.')[0])
運行方式
將前端文件包放到和python文件同一個目錄下,運行
python deploy-html.py
window下也可以創建一個啟動腳本
start.bat,不用每次敲命令行
python ./deploy-html.py
pause

浙公網安備 33010602011771號