分析unix系统日期析取ftp登陆和断开信息
关于JAVA滴使用com.enterprisedt.net.ftp库连接客户在HPUnix上的FTP服务器,不定时的出现连接不上去的情况,但是使用FTP客户端却可以直接连接。
客户不让telnet主机,只好要了syslog文件自己分析。
看了一下,相关FTPD的有三个记录
我不管连接的记录(ftp里面的conn操作),只处理login和logout操作。
如下
Dec 23 05:01:44 服务器主机名 ftpd: FTP LOGIN FROM 客户机IP地址 [客户机IP地址], fileplat
Dec 23 05:03:11 服务器主机名 ftpd: FTP session closed
Jan 28 09:28:48 服务器主机名 ftpd: FTP LOGIN FROM unicom-1 [客户机IP地址], fileplat
Jan 28 09:28:50 服务器主机名 ftpd: FTP session closed
Feb 17 21:37:35 服务器主机名 ftpd: FTP LOGIN FROM unicom-1 [客户机IP地址], fileplat
Feb 17 21:58:01 服务器主机名 ftpd: exiting on signal 14
Feb 19 02:38:34 服务器主机名 ftpd: FTP LOGIN FROM 客户机IP地址 [客户机IP地址], fileplat
Feb 19 02:38:35 服务器主机名 ftpd: FTP session closed
ftpd后面的方括号里面是客户登陆之后的进程号(线程号???),确定一个ftp Session。正常退出使用Ftp Session closed。否则是exiting on signal.
下面是简单的程序
程序将一个ftp登陆的数据操作记录到数据库,这样可以分析出客户连接主机的频率和每次时长
因为只用一次,代码很土
java.io.BufferedReader r = new BufferedReader(new java.io.FileReader(
"E:\\syslog.log"));
FileWriter f = new FileWriter("e:\\syslog.sql");
String str = null;
int nRow = 0;
java.util.Hashtable hashIpAddress = new java.util.Hashtable();
java.util.Hashtable hashLoginTime = new java.util.Hashtable();
while((str = r.readLine()) != null)
{
if(false == (
//(str.indexOf("inetd[")>=0 && str.indexOf("ftp/tcp:")>=0)||
(str.indexOf("ftpd[") >= 0 && str.indexOf("FTP") >= 0)
))
{
continue;
}
nRow++;
// if(nRow>100)
// {
// break;
// }
//System.out.println(str);
if(str.length() < 16)
{
continue;
}
String strDate = str.substring(0,16);
String[] alldates = strDate.split(" ");
// for(int i =0;i
页:
[1]