当前位置:首页 » 文件传输 » 分析日志判断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
成功的话就会要账号和密码