日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

用Python實現定時備份Mongodb數據并上傳到FTP服務器

瀏覽:116日期:2022-06-29 08:22:55

實現的功能:在win7下,每天晚上1點,自動將 F:/data中所有文件進行壓縮,以[mongodb+日期]命名,將壓縮好的文件存儲在本地目錄 F:MongoDbData,然后將這個壓縮好的文件上傳到ftp://192.168.0.101/MongoDBup/目錄下

分三步:

第一步:搭建FTP服務器,配置好FTP環境。 第二步:用python編寫壓縮文件并實現FTP上傳的腳本第三步:使用win7自帶的任務計劃程序定時執行python腳本

1. 環境

Python:3.6.1Python IDE:pycharm系統:win7

2. 搭建FTP服務器,配置好FTP環境2.1. 啟用FTP和IIS服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

注意:要全部展開,勾選上。

2.2. 添加FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

2.3. 設置參數

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

2.4. 設置成功,訪問

用Python實現定時備份Mongodb數據并上傳到FTP服務器

3. 用python編寫壓縮文件并實現FTP上傳的腳本3.1. Import包:

# python3.6.1import zipfileimport osimport datetimefrom ftplib import FTP3.2. 定義配置信息:

# 定義配置信息srcFolder = r'F:Data' # 被壓縮的源數據,文件夾形式desFolder = r’F:MongoDbData’ # 壓縮好的數據臨時存放的位置ftp_url = '192.168.0.101' # FTP服務器地址ftp_port = 21 # FTP服務端口號ftpUploadFolder = 'MongoDBup' # 壓縮數據在FTP服務器上存放的位置3.3. 壓縮數據源(文件夾):

# 壓縮文件夾def zipFolder(srcFolder, desFolder, date): ’’’ :param srcFolder: 被壓縮的源數據位置 :param desFolder: 壓縮之后文件的存放路徑 :param date: 執行壓縮的當前時間,datetime產生(ext:2017-08-16 14:56:40.872613) :return: 壓縮文件的路徑 ’’’ startTime = datetime.datetime.now() print(f'Enter func zipFolder, time:{startTime}') desName = f'{desFolder}mongodb{date.year}{date.month}{date.day}.zip' # 檢查是否已經壓縮過了 if os.path.exists(desName): endTime = datetime.datetime.now() print(f'Already exsist, leave func zipFolder, time:{endTime}, usedTime:{endTime-startTime}') return desName z = zipfile.ZipFile(desName, ’w’, zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(srcFolder): print(f'dirpath:{dirpath}, dirnames:{dirnames}, filenames:{filenames}') for filename in filenames: try:# Mongodb在運行時,有幾個關于lock的文件無法壓縮,為了避免程序終止,忽略這幾個文件z.write(os.path.join(dirpath, filename)) except Exception as e:print(f'except: {e}, cannot zip file: {dirpath}{filename}') z.close() endTime = datetime.datetime.now() print(f'zip done, leave func zipFolder, time:{endTime}, usedTime:{endTime-startTime}') return desName3.4. 文件上傳到FTP服務器上:

# 上傳文件至FTP服務器def ftpUpload(filename, folder, ftp_url, ftp_port): ’’’ :param filename: 待上傳文件路徑 :param folder: 文件上傳至FTP服務器上的存儲目錄 :param ftp_url: FTP服務器IP :param ftp_port: 端口號,默認為21 :return: status code ’’’ startTime = datetime.datetime.now() print(f'Enter func ftpUpload, time:{startTime}') ftp = FTP() ftp.set_debuglevel(2) # set debug level, detail info:2, close:0 ftp.connect(ftp_url, ftp_port) ftp.login(’’, ’’) # 登錄,如果匿名登錄則用空串代替 print(ftp.getwelcome()) # ext: *welcome* ’220 Microsoft FTP Service’ ftp.cwd(folder) # Change to a directory on FTP server bufsize = 1024 # 設置緩沖塊大小 file_handler = open(filename, ’rb’) # 讀模式在本地打開文件 res = -1 try: # 為了避免程序終止,忽略可能出現的錯誤 res = ftp.storbinary(f'STOR {os.path.basename(filename)}', file_handler, bufsize) # upload file except Exception as e: print(f'except: {e}, cannot upload file: {ftp_url}:{ftp_port} {filename}') finally: ftp.set_debuglevel(0) # 關閉debug信息 file_handler.close() ftp.quit() endTime = datetime.datetime.now() print(f'Upload done, leave func ftpUpload, time:{endTime}, usedTime:{endTime-startTime}') return res3.5. 主程序:

# mainbackupTime = datetime.datetime.now()zip_des_name = zipFolder(srcFolder, desFolder, backupTime)print(zip_des_name)ftp_res = ftpUpload(zip_des_name, ftpUploadFolder, ftp_url, ftp_port)print(f'ftp_res: {ftp_res}')4. 使用win7自帶的任務計劃程序定時執行python腳本

位置:開始 ——> 附件 ——> 系統工具 ——> 任務計劃程序

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

用Python實現定時備份Mongodb數據并上傳到FTP服務器

不需要時,右鍵——>刪除任務 即可

5. 效果5.1. 本地生成的壓縮文件

用Python實現定時備份Mongodb數據并上傳到FTP服務器

5.2. 上傳至FTP服務器的壓縮文件

用Python實現定時備份Mongodb數據并上傳到FTP服務器

5.3. 詳細信息-性能-時間

日志信息:

源文件data總共8.7G,壓縮后5.3G,壓縮時間20m,局域網內上傳時間18m。

E:Minicondapython.exe E:/PyCharmCode/Justtest/bak.pyEnter func zipFolder, time:2017-08-16 19:48:39.331200dirpath:F:Data, dirnames:[’diagnostic.data’, ’journal’], filenames:[’collection-0--394122179086539486.wt’, ’collection-102--394122179086539486.wt’, ’collection-104--394122179086539486.wt’, ’collection-106--394122179086539486.wt’, ’collection-108--394122179086539486.wt’], ’_mdb_catalog.wt’]except: [Errno 13] Permission denied: ’F:Datamongod.lock’, cannot zip file: F:Datamongod.lockexcept: [Errno 13] Permission denied, cannot zip file: F:DataWiredTiger.lockdirpath:F:Datadiagnostic.data, dirnames:[], filenames:[’metrics.2017-08-04T07-04-29Z-00000’, ’metrics.2017-08-05T10-47-22Z-00000’, ’metrics.2017-08-06T14-52-22Z-00000’, ’metrics.2017-08-07T18-17-22Z-00000’, ’metrics.2017-08-15T06-09-26Z-00000’, ’metrics.2017-08-16T09-51-29Z-00000’]dirpath:F:Datajournal, dirnames:[], filenames:[’WiredTigerLog.0000000247’, ’WiredTigerPreplog.0000000006’, ’WiredTigerPreplog.0000000007’, ’WiredTigerPreplog.0000000008’]zip done, leave func zipFolder, time:2017-08-16 20:08:22.728200, usedTime:0:19:43.397000F:MongoDbDatamongodb2017816.zipEnter func ftpUpload, time:2017-08-16 20:08:22.728200*get* ’220 Microsoft FTP Servicen’*resp* ’220 Microsoft FTP Service’*cmd* ’USER anonymous’*put* ’USER anonymousrn’*get* ’331 Anonymous access allowed, send identity (e-mail name) as password.n’*resp* ’331 Anonymous access allowed, send identity (e-mail name) as password.’*cmd* ’PASS **********’*put* ’PASS **********rn’*get* ’230 User logged in.n’*resp* ’230 User logged in.’*welcome* ’220 Microsoft FTP Service’220 Microsoft FTP Service*cmd* ’CWD MongoDBup’*put* ’CWD MongoDBuprn’*get* ’250 CWD command successful.n’*resp* ’250 CWD command successful.’*cmd* ’TYPE I’*put* ’TYPE Irn’*get* ’200 Type set to I.n’*resp* ’200 Type set to I.’*cmd* ’PASV’*put* ’PASVrn’*get* ’227 Entering Passive Mode (192,168,0,101,11,221).n’*resp* ’227 Entering Passive Mode (192,168,0,101,11,221).’*cmd* ’STOR mongodb2017816.zip’*put* ’STOR mongodb2017816.ziprn’*get* ’125 Data connection already open; Transfer starting.n’*resp* ’125 Data connection already open; Transfer starting.’*get* ’226 Transfer complete.n’*resp* ’226 Transfer complete.’Upload done, leave func ftpUpload, time:2017-08-16 20:26:20.125200, usedTime:0:17:57.397000ftp_res: 226 Transfer complete.

6. 注意事項 6.1. FTP服務器IP地址變更處理

6.1.1. 第一步,修改FTP服務器站點配置。

用Python實現定時備份Mongodb數據并上傳到FTP服務器

6.1.2. 第二步,修改代碼中FTP登錄IP

ftp.connect('172.16.7.107', 21)

6.1.3. 出錯信息 如果只是單純按照6.1.2 修改登錄IP,沒有修改FTP服務器站點設置的話,將會出現如下莫名其妙的錯誤:

enter ftpUpload*get* ’’Traceback (most recent call last): File 'AutoBackupMongoTest.py', line 64, in <module> ftp_res = ftpUpload(zip_des_name, ftpUploadFolder) File 'AutoBackupMongoTest.py', line 42, in ftpUpload ftp.connect(’172.16.7.107’, 21) File 'E:Minicondalibftplib.py', line 155, in connect self.welcome = self.getresp() File 'E:Minicondalibftplib.py', line 234, in getresp resp = self.getmultiline() File 'E:Minicondalibftplib.py', line 220, in getmultiline line = self.getline() File 'E:Minicondalibftplib.py', line 208, in getline raise EOFErrorEOFError

或者是如下錯誤:

enter ftpUploadTraceback (most recent call last): File 'AutoBackupMongoTest.py', line 63, in <module> ftp_res = ftpUpload(zip_des_name, ftpUploadFolder) File 'AutoBackupMongoTest.py', line 41, in ftpUpload ftp.connect('192.168.0.101', 21) File 'E:Minicondalibftplib.py', line 152, in connect source_address=self.source_address) File 'E:Minicondalibsocket.py', line 722, in create_connection raise err File 'E:Minicondalibsocket.py', line 713, in create_connection sock.connect(sa)TimeoutError: [WinError 10060] 由于連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。

到此這篇關于用Python實現定時備份Mongodb數據并上傳到FTP服務器的文章就介紹到這了,更多相關Python 定時備份Mongodb內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美福利专区| 只有精品亚洲| 日韩动漫一区| 99精品国产一区二区三区| 国产精品一区毛片| 国产欧美日韩精品一区二区三区| 欧美黄色精品| 久久男人av| 久久婷婷激情| 视频一区二区三区在线| 亚洲欧美在线专区| 久久精品97| 国产在线观看91一区二区三区| 亚洲二区三区不卡| 日韩亚洲精品在线| 欧美片第1页综合| 欧美黄色一区二区| 久久亚洲成人| 久久国产精品久久w女人spa| 亚洲日本免费电影| 久久久久久久欧美精品| 亚洲制服一区| 国产欧美一级| 日韩国产一区二区| 91成人在线网站| 国产精品欧美三级在线观看| 免费高潮视频95在线观看网站| 日本强好片久久久久久aaa| 免费精品一区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲美女久久精品| 蜜桃视频在线观看一区二区| 韩国一区二区三区视频| 中文精品在线| а√在线中文在线新版| 亚洲人成在线影院| 久久人人97超碰国产公开结果| 久久久久观看| 国产精品毛片在线看| 欧美黑人做爰爽爽爽| 一区二区视频欧美| 国产粉嫩在线观看| 欧美日韩中出| 久久xxxx精品视频| 国产91一区| 高清av一区| 国产剧情一区| 在线精品国产亚洲| aⅴ色国产欧美| 国产 日韩 欧美一区| 国产精品主播在线观看| 日本一区二区三区视频在线看| 亚洲经典在线| 在线一区av| 免费在线日韩av| 欧美自拍一区| 日韩国产欧美三级| 日本a级不卡| 精品午夜视频| 日韩高清成人在线| 中文字幕av亚洲精品一部二部 | 黄毛片在线观看| 久草精品视频| 精品精品99| 日韩一区二区三区免费播放| 亚洲五月婷婷| 成人久久一区| 自由日本语亚洲人高潮| 国产成人精品福利| 高清日韩中文字幕| 视频小说一区二区| 日韩不卡在线| 久久精品国产精品亚洲毛片| 在线精品亚洲欧美日韩国产| 国产成人精品三级高清久久91| 久久爱www成人| 日本亚洲不卡| 美女毛片一区二区三区四区最新中文字幕亚洲 | 精品国产麻豆| 久久久噜噜噜| 91亚洲精品视频在线观看| 在线精品一区| 国产成人精品一区二区免费看京 | 国产精品久久久久久久久久齐齐| 久草精品视频| 香蕉成人av| 久久国产三级精品| 国产精品magnet| 久久国产直播| 日韩和欧美的一区| 精品国产免费人成网站| 亚洲综合欧美| 国产精品久久久一区二区| 亚洲伊人av| 午夜电影一区| 久久九九精品| 午夜电影一区| 成人黄色av| 亚洲精品日本| 日韩欧美看国产| 欧美一区网站| 亚洲欧美日韩国产一区| 精品99在线| 欧美天堂一区二区| 久久国产精品久久w女人spa| 99精品网站| 国产精品久久久久久久久久白浆 | 亚洲精品免费观看| 999国产精品| av资源新版天堂在线| 99国产一区| 99久久99视频只有精品| 日韩精品久久久久久久软件91| 在线 亚洲欧美在线综合一区| 日产精品一区二区| 国产日韩一区二区三区在线| 欧美午夜精彩| 性欧美videohd高精| 日本成人在线一区| 午夜在线观看免费一区| | 六月丁香综合| 极品日韩av| 国产理论在线| 日韩中文在线电影| 国产精品一区二区av交换| 亚洲欧美高清| 中文在线一区| 玖玖精品视频| 首页国产欧美日韩丝袜| 亚洲精品中文字幕99999| 人人精品亚洲| 欧美日韩国产传媒| 欧美日韩色图| 亚洲欧洲一区| 国产极品一区| 久久99久久人婷婷精品综合| 欧美日韩91| 麻豆中文一区二区| 亚洲精品1区| 亚洲主播在线| 老鸭窝亚洲一区二区三区| 欧美资源在线| 天堂俺去俺来也www久久婷婷| 麻豆精品视频在线| 日韩国产一区二| 青草久久视频| 久久久久中文| 亚洲欧洲一区二区天堂久久| 久久最新视频| 久久精品资源| 日韩在线观看| 欧美日韩高清| 亚洲精品三级| 麻豆精品国产91久久久久久| zzzwww在线看片免费| 黄色免费成人| 18国产精品| 99精品视频精品精品视频| 亚洲三区欧美一区国产二区| 国产精品分类| 欧美jjzz| 免费在线亚洲欧美| 在线亚洲自拍| 黄色在线观看www| 日韩精品一区二区三区免费视频| 日本久久成人网| 在线观看亚洲精品福利片| 国际精品欧美精品| 麻豆一区在线| 日韩一区欧美二区| 日韩黄色大片| 里番精品3d一二三区| 99国产精品视频免费观看一公开 | 国产精品www994| 激情六月综合| 亚洲天堂av影院| 欧美激情日韩| 欧美精品影院| 蜜臀久久99精品久久久久宅男| 999久久久免费精品国产| 欧美一区成人| 欧美激情综合| 午夜天堂精品久久久久| 在线看片日韩| 欧美在线亚洲| 日本成人在线不卡视频| 亚洲视频综合| 欧美美女一区| 樱桃成人精品视频在线播放| 日韩欧美一区二区三区在线观看| 日韩欧美综合| 色网在线免费观看| 日韩免费福利视频| 久久午夜影院| 精品视频网站| 美女久久久久久| 久久精品免费看| 你懂的国产精品永久在线| 中文字幕免费一区二区|