當前位置:首頁 » 文件傳輸 » 分析日誌判斷ftp成功
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

分析日誌判斷ftp成功

發布時間: 2023-01-19 17:26:58

A. 怎麼查看ftp日誌

FTP伺服器的日誌設置,可以通過修改主配置文件/etc/vsftpd.conf實現。主配置文件中與日誌設置有關的選項包括xferlog_enable 、xferlog_file 和al_log_enable 等。


xferlog_enable

如果啟用該選項,系統將會維護記錄伺服器上傳和下載情況的日誌文件。默認情況下,該日誌文件為 /var/log/vsftpd.log。但也可以通過配置文件中的 vsftpd_log_file 選項來指定其他文件。默認值為NO。


xferlog_std_format

如果啟用該選項,傳輸日誌文件將以標准 xferlog 的格式書寫,該格式的日誌文件默認為 /var/log/xferlog,也可以通過 xferlog_file 選項對其進行設定。默認值為NO。


al_log_enable

如果啟用該選項,將生成兩個相似的日誌文件,默認在 /var/log/xferlog 和 /var/log/vsftpd.log 目錄下。前者是 wu-ftpd 類型的傳輸日誌,可以利用標准日誌工具對其進行分析;後者是Vsftpd類型的日誌。


syslog_enable

如果啟用該選項,則原本應該輸出到/var/log/vsftpd.log中的日誌,將輸出到系統日誌中。

常見的日誌解決方案如下:

  1. xferlog_enable=YES

  2. xferlog_std_format=YES

  3. xferlog_file=/var/log/xferlog

  4. al_log_enable=YES

  5. vsftpd_log_file=/var/log/vsftpd.log

該方案將xferlog_enable設置為YES,表明FTP伺服器記錄上傳下載的情況,而將xferlog_std_format也設置為YES,則表明將記錄的上傳下載情況寫在xferlog_file所指定的文件中,即/var/log/xferlog文件。

同時,該方案啟用al_log_enable,表明啟用了雙份日誌。在用xferlog文件記錄伺服器上傳下載情況的同時,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也將用來記錄伺服器的傳輸情況。

下面分別查看xferlog文件和vsftpd.log文件的內容。

xferlog內容如下:

  1. ThuSep609:07:4820077192.168.57.1
    4323279/home/student/phpMyAdmin-2.11.
    0-all-languages.tar.gzb_irstudentftp0*c

  2. ThuSep610:15:5920071192.168.57.1

    61810/home/student/php-pdo-5.1.6-5.el5.

    i386.rpmb_irstudentftp0*c

  3. ThuSep610:17:1320071192.168.57.1

    83741/home/student/php-mysql-5.1.6-5.el5.i386.

    rpmb_irstudentftp0*c

  4. TueSep1107:49:3420071127.0.0.10/

    pub/[email protected]*i

  5. TueSep1107:51:2220071127.0.0.134/

    pub/[email protected]*c

  6. TueSep1111:23:0520071192.168.57.1

    83741/php-mysql-5.1.6-5.el5.i386.rpma_orstudentftp0*c

  7. TueSep1111:31:3620071192.168.57.1

    12/eng000.txta_irstudentftp0*c

  8. TueSep1111:53:0520071192.168.57.2

    367/user_listb_irstudentftp0*c

  9. TueSep1111:56:0620071192.168.57.2

    0/[email protected]*i

  10. TueSep1111:57:3620071192.168.57.2

    0/b_orstudentftp0*i


vsftpd.log文件內容如下:

  1. TueSep1114:59:032007[pid3460]CONNECT:Client"127.0.0.1"

  2. TueSep1114:59:242007[pid3459][ftp]

    OKLOGIN:Client"127.0.0.1",anonpassword"?"

B. shell腳本中.ftp一個文件,如何判斷這個文件是否傳送成功了 求IT大牛指導

如果put成功
後返回0
下面判斷這個返回值就可以了
put hello.txt
if [ $? == 0 ]; then
echo "put successfully"
else
echo "put failure"
一定要在put hello.txt的下面加這個判斷

C. ftp伺服器端怎麼判斷一個文件已經傳送完成

首先,我不清楚你說的這個和我理解的是不是同一個概念。剛好之前寫過一個文件伺服器的小代碼,可以稍微分享一下。
伺服器首先read文件,read之後會有一個返回值,假設你每次read 1024個位元組,當返回值小於1024,表示已經文件已經read結束。read之後send發送文件(阻塞式),在發送完所有文件斷開連接,這時伺服器又會發送一個FIN給客戶端。(注意這里讀文件,發文件在一個大循環,循環的判斷條件就是read的位元組數)。對應客戶端接收文件也是在一個大循環里,recv阻塞式的接收文件,然後將接收到的內容寫入自己建立的空文件中,在recv的返回值為0的時候,表示接收已經結束,跳出循環,繼而斷開連接。
可能有人會有疑問,當接收完文件,斷開連接,伺服器不也就結束了嗎?其實我當時寫的伺服器有伺服器和客戶端建立了兩條TCP連接,一條用於客戶端向伺服器請求文件,另一條用於伺服器向客戶端發送文件,這樣即使下面一條連接斷開,伺服器和客戶端也不會終止,從而實現該客戶端還可以再次請求文件,同時伺服器也可以處理其他客戶端的請求(第二條連接是在客戶端向伺服器請求文件,並且伺服器有你請求的文件時建立的)。
多客戶端連接伺服器有兩種方式,一種是通過伺服器fork生成子進程,用子進程去處理和客戶端的數據傳輸,而父進程的功能就是監聽是否有子進程過來連接。還有一種方式就是通過epoll來實現(與select和poll思想相同)。
以上所有內容都是自己敲上去的,可能說的有不對或是不確切的地方,希望看見的人能提出指正,謝謝。

D. 如何在shell中判斷ftp是否成功

參考如下代碼:
nohup tar -cvf bb.tar db2ckh_20051223165402 > msg.out

ftp -i -n <<!
open $host
user $UserName $Passwd
bin
prompt

put bb.tar
bye
!

eocho o"finish"
eocho "OK!!!...."

E. 有沒有辦法在ftp一個文件的時候,判斷傳送是否成功

用ftp傳輸軟體上傳。
上傳時,會直接顯示是否成功。
而且。最傻瓜的辦法,就是登陸到空間里去看看,文件在不在。就知道了。
個人推薦一款ftp軟體CuteFTP 我用過無數FTP軟體,這個是外國的,但是很好用。

F. 怎麼判斷FTP一個文件已經上傳完畢

我做過這個,說下我的思路。

將錯誤輸出導出到文件err.log,方便後續檢查。ftp連接是否成功和文件上傳是否成功都可以通過這個來檢查。
(ftp -i -n $FTP_HOST $FTP_HOST_PORT <<FTPEOF
user $FTP_USER $FTP_PASSWORD
cd $FTP_DIR
$TRANS_MODE
put $FTP_FILENAME
quit
FTPEOF
) 2>>err.log
if [ -s err.log ]; then #文件存在且不為空
echo "FTP連接和文件上傳都成功"
else
#你可以測試一下失敗的情況看下錯誤信息
#然後用grep通過在err.log文件中查找關鍵字方法來確認是FTP連接失敗還是文件上傳失敗。
fi

返回一些參數信息不知道什麼意思。
你是要用另一個腳本來調用這個腳本嗎?還是就做在一個腳本里?

G. c# ftp 伺服器登錄 ,怎麼判斷登錄是否成功

FtpWebRequest reqFTP;

try

{

// 根據uri創建FtpWebRequest對象

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + sServerIP + "/"));

reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;;

reqFTP.UseBinary = true;

reqFTP.Credentials = new NetworkCredential(「賬號", 「密碼");

//

FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

//登陸成功

}

catch

{

//這邊就是登陸不成功

}

H. ftp日誌 查看

windows中FTP的日誌默認在c:\inetpub\logs\logfiles\ftpsvc中

I. 如何測試自己的ftp伺服器是否成功

在IE里輸入ftp://你的外網IP
成功的話就會要賬號和密碼