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中的日志,将输出到系统日志中。
常见的日志解决方案如下:
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
al_log_enable=YES
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内容如下:
ThuSep609:07:4820077192.168.57.1
4323279/home/student/phpMyAdmin-2.11.
0-all-languages.tar.gzb_irstudentftp0*cThuSep610:15:5920071192.168.57.1
61810/home/student/php-pdo-5.1.6-5.el5.
i386.rpmb_irstudentftp0*c
ThuSep610:17:1320071192.168.57.1
83741/home/student/php-mysql-5.1.6-5.el5.i386.
rpmb_irstudentftp0*c
TueSep1107:49:3420071127.0.0.10/
pub/[email protected]*i
TueSep1107:51:2220071127.0.0.134/
pub/[email protected]*c
TueSep1111:23:0520071192.168.57.1
83741/php-mysql-5.1.6-5.el5.i386.rpma_orstudentftp0*c
TueSep1111:31:3620071192.168.57.1
12/eng000.txta_irstudentftp0*c
TueSep1111:53:0520071192.168.57.2
367/user_listb_irstudentftp0*c
TueSep1111:56:0620071192.168.57.2
TueSep1111:57:3620071192.168.57.2
0/b_orstudentftp0*i
vsftpd.log文件内容如下:
TueSep1114:59:032007[pid3460]CONNECT:Client"127.0.0.1"
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
成功的话就会要账号和密码