當前位置:首頁 » 文件管理 » python檢測ftp監控

python檢測ftp監控

發布時間: 2023-05-10 10:00:40

A. 用python實現ftp功能

開發環境:

1、操作系統: Windows 10 X64

2、Pycharm 2020.2.1

新建項目後,創建兩個包 ftp_client與ftp_server,分別代表客戶端與服務端。

該項目的完成主要藉助了python提供的socketserver庫來進行連接。

本項目實現了客戶端對於服務端D://文件夾的增加文件,刪除文件,修改文件功能。分別以put,delete,modify表示。

對於client,實現了最基礎的交互功能,用戶可以用如put test.txt等命令來實現功能。修改文件,用戶首先輸入modify z.txt 命令,z.txt是D://文件夾中已經存在的文件,再根據提示,輸入想修改的內容即可修改成功。

在這一模塊中,將重點介紹我在實現項目的過程中遇到的問題。

1、bytes與str的轉換,傳輸以位元組流進行,但是輸出部分內容要以str形式,注意轉換

2、熟悉python的語法

3、熟悉文件相關操作

4、考慮傳輸文件過大的情況

該問題不影響項目的正常使用,但未找到較好的解決辦法

B. python 檢測FTP目錄是否為空

ftp相關命令操作
ftp.cwd(pathname) #設置FTP當前操作的路徑
ftp.dir() #顯示目錄下文件信息
ftp.nlst() #獲取目錄下的文件
ftp.mkd(pathname) #新建遠程目錄
ftp.pwd() #返回當前所在位置
ftp.rmd(dirname) #刪除遠程目錄
ftp.delete(filename) #刪除遠程文件
ftp.rename(fromname, toname)#將fromname修改名稱為toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下載FTP文件

C. Python,第一次運行從FTP下載目錄下所有文件,之後運行先檢測FTP上文件是否更新,有,則只下載更新的文件

直接使用ftplib就可以實現,其中有一個nlst功能用於查詢目錄,cwd用於改變目錄,還有一個size功能。你這邊只需要保留一個目錄的鏡像。如果發現有目錄差異,或者是文件大小發生變更,就用retrbinary進行文件同步就可以。

另外這樣的ftp自動同步軟體很多年前就有,現在很成熟。不用重新開發。

D. python寫的ftp自動上傳腳本,怎麼判斷重復的文件不重傳呢size判斷不夠精確 有沒有更好的方式跪求大神

這個沒有特別准確的辦法。你連SIZE檢測也信不過。只有自己改程序了。

辦法1:改寫FTP程序,加一個hash確認。以前我這么做過。在python里可以輕松做一個FTP SERVER,加上自己做的MD5檢測就可以了。

辦法2:通過nc轉發請求,在NC里設置一個檢測。

辦法3:如果文件不大,上傳完再下載下來檢測

辦法4:採用自己傳有的流水號,重新設置FTP SERVER,讓它定期根據流水號,生成檢驗碼,然後你在客戶端定期下載這個文件。 這個方法過去在電信系統里經常使用。防出錯效果很好。

E. python查看FTP是否能連接成功的方法

#!/usr/local/bin/python
#-*- coding: UTF-8 -*-
####################################################################
# python 查看FTP是否能連接成功
####################################################################
#import ftplib
##f = ftplib.FTP('192.168.100.214')
##f.login('GDATA_MEM','123456')
##ftplib.set_debuglevel(2) #打開調試級別2,顯示詳細信息
#data=ftplib.FTP('127.0.0.1','admin','123456')
#print data
from ftplib import FTP
def ftp_open(host='',user='',passwd=''): #打開FTP
try:
ftp=FTP()
) #打開調試級別2,顯示詳細信息
) #連接
data=ftp.login(user,passwd) #登錄,如果匿名登錄則用空串代替即可
print () #歡迎詞
#print data
return 1
except:
return 0
if __name__=='__main__':
if ftp_open('127.0.0.1','admin','1234561'): #打開FTP
print "打開FTP成功"
else:
print "打開FTP失敗"

F. 如何使用python腳本實現對windows系統監控

示例:

#!/usr/bin/envpython
#encoding:utf-8

"""
MonitorLog.py

Usage:MonitorLog.py...
Monitorthelogfile

-flogfile
-hhelpinfo

pythonMonitorLog.py-fC:monitor.log

Createdbyzhouboon2011-08-29.
"""

importsys
importos
importgetopt
importsubprocess
importtime
importcodecs
importwinsound

ABSPATH=os.path.dirname(os.path.abspath(__file__))
MONITERCONF='moniter_keyword.txt'#utf8file

defmain():
try:
opts,args=getopt.getopt(sys.argv[1:],'hf:')
exceptgetopt.GetoptError,err:
printstr(err)
print__doc__
return1

path=''
fork,vinopts:
ifk=='-f':
path=v
elifk=='-h':
print__doc__
return0

ifnot(pathandos.path.exists(path)):
print'Invalidpath:%s'%path
print__doc__
return2

#命令行元組
cmd=('tail','-f',path)
print''.join(cmd)
output=subprocess.Popen(cmd,stdout=subprocess.PIPE)

keywordMap={}
#載入監控的關鍵字信息
withcodecs.open(os.path.join(ABSPATH,MONITERCONF),'r','utf8')asf:
lines=f.readlines()
forlineinlines:
line=line.strip()
ifnotline:
continue
keyword,wav=line.strip().split(':')
keywordMap[keyword]=wav

whileTrue:
line=output.stdout.readline()
#processcode,得到輸出信息後的處理代碼
ifnotline:
time.sleep(0.01)
continue
line=line.strip().decode('utf8')
printline
forkeywordinkeywordMap:
ifline.find(keyword)>-1:
winsound.PlaySound(keywordMap[keyword],
winsound.SND_NODEFAULT)
#time.sleep(0.01)
return0

if__name__=='__main__':
sys.exit(main())

G. 如何用python語言監控文件或目錄變化

import os, time
path_to_watch = "."before = dict ([(f, None) for f in os.listdir (path_to_watch)])while 1:
time.sleep (10)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after] if added: print "Added: ", ", ".join (added) if removed: print "Removed: ", ", ".join (removed)
before = after

H. python ftplib監控文件修改時間

用python的ftplib,示例代碼如下,返回目錄內容的詳細信息,自己做下相應的處理就可以了

fromftplibimportFTP

ftp=FTP()
timeout=30
port=21
ftp.connect('192.168.85.1',port,timeout)#連接FTP伺服器
ftp.login('test','test')#登錄
printftp.getwelcome()#獲得歡迎信息
ftp.cwd('test')#設置FTP路徑
printftp.retrlines('LIST')#列出目錄內容
熱點內容
貓影視源碼 發布:2025-02-12 20:42:05 瀏覽:923
區域網如何訪問其他電腦 發布:2025-02-12 20:39:06 瀏覽:378
新平板電腦的數字密碼如何知道 發布:2025-02-12 20:31:19 瀏覽:345
打包php整站 發布:2025-02-12 20:29:48 瀏覽:358
施工作業現場拍攝腳本 發布:2025-02-12 20:20:22 瀏覽:137
eve腳本破解 發布:2025-02-12 20:07:48 瀏覽:636
python腳本編程基礎 發布:2025-02-12 20:03:40 瀏覽:486
我的世界伺服器里刷怪 發布:2025-02-12 19:57:04 瀏覽:389
瘋狂java視頻 發布:2025-02-12 19:38:17 瀏覽:150
flash免費上傳網站 發布:2025-02-12 19:14:03 瀏覽:191