激情综合色五月六月婷婷,久久久久久综合网天天,国产精品久久久久精品综合紧无码

  • 2022-10-27
宇哥博客 后端開發 利用PythonFTP下載網站備份

利用PythonFTP下載網站備份

主要說用寶塔面板搭建的網站,在之前的文章中寫過了【怎樣備份網站到本地電腦】,備份的網站數據是在遠程的服務器上,如果一旦服務器出問題,備份的數據也有可能丟失,那么應該及時的將備份的數據下載到本地。

寶塔面板

首先寶塔中安裝Pure-Ftpd插件,在軟件商店安裝,這里就不再演示了。

寶塔上創建一個軟鏈接文件,指向備份文件的文件夾。

設置權限755,否則將無法讀取目錄文件。

本地

我用的Windows系統,安裝的python3.6。

下面安裝pyftpdlib模塊

命令 pip install pyftpdlib

下面直接上代碼

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
FTP常用操作
"""
from ftplib import FTP
import os
class FTP_OP(object):
    def __init__(self, host, username, password, port):
        """
        初始化ftp
        :param host: ftp主機ip
        :param username: ftp用戶名
        :param password: ftp密碼
        :param port:  ftp端口 (默認21)
        """
        self.host = host
        self.username = username
        self.password = password
        self.port = port
    def ftp_connect(self):
        """
        連接ftp
        :return:
        """
        ftp = FTP()
        ftp.set_debuglevel(2)  #開啟調試模式
        ftp.connect(host=self.host, port=self.port)  #連接ftp
        ftp.login(self.username, self.password)  #登錄ftp
        return ftp
    def download_file(self, ftp_file_path, dst_file_path):
        """
        從ftp下載文件到本地
        :param ftp_file_path: ftp下載文件路徑
        :param dst_file_path: 本地存放路徑
        :return:
        """
        buffer_size = 10240  #設置緩存區大小,默認是8192
        ftp = self.ftp_connect()
        print('登錄FTP歡迎信息',ftp.getwelcome() )  #顯示登錄ftp信息
        file_list = ftp.nlst(ftp_file_path)
        
        #print('XXXX', ftp.dir(ftp_file_path) )
        file_list.sort(reverse=True) #倒序,最新的在第一個
        print('全部文件', file_list )
        
        for file_name in file_list:
            ftp_file = os.path.join(ftp_file_path, file_name)
            write_file = os.path.join(dst_file_path, file_name)
            
            print('文件',file_name  )

            #and not os.path.exists(write_file)
            if file_name.find('www.callingbugs.com')>-1 and file_name.find('.tar.gz')>-1:
                print("file_name:"+file_name)

                if os.path.exists(write_file):
                    print('該文件已存在', file_name )
                    break
                
                #ftp_file = os.path.join(ftp_file_path, file_name)
                #write_file = os.path.join(dst_file_path, file_name)
                with open(write_file, "wb") as f:
                    ftp.retrbinary('RETR {0}'.format(ftp_file), f.write, buffer_size)
                    f.close()

                break
                
        ftp.quit()

if __name__ == '__main__':
    host = "服務器ip地址"
    username = "ftp用戶名"
    password = "ftp密碼"
    port = 21
    ftp_file_path = "" #ftp目錄
    dst_file_path = "c://downloads" #本地目錄
    ftp = FTP_OP(host=host, username=username, password=password, port=port)
    ftp.download_file(ftp_file_path=ftp_file_path, dst_file_path=dst_file_path)

運行結果:

可添加到Windows任務計劃,每天運行。

以上代碼部分轉自:https://www.cnblogs.com/ringwang/p/10195372.html

本文來自網絡,不代表本站立場,轉載請注明出處。http://www.callingbugs.com/1602.html

發表評論

您的電子郵箱地址不會被公開。

返回頂部
激情综合色五月六月婷婷,久久久久久综合网天天,国产精品久久久久精品综合紧无码