linux写日志?shell脚本打印日志
linuxftp日志
怎么查看ftp日志?
FTP服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现。主配置文件中与日志设置有关的选项包括xferlog_enable、xferlog_file和dual_log_enable等。
xferlog_enable
如果启用该选项,系统将会维护记录服务器上传和下载情况的日志文件。默认情况下,该日志文件为/var/log/vsftpd.log。但也可以通过配置文件中的vsftpd_log_file选项来指定其他文件。默认值为NO。
xferlog_std_format
如果启用该选项,传输日志文件将以标准xferlog的格式书写,该格式的日志文件默认为/var/log/xferlog,也可以通过xferlog_file选项对其进行设定。默认值为NO。
dual_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
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
该方案将xferlog_enable设置为YES,表明FTP服务器记录上传下载的情况,而将xferlog_std_format也设置为YES,则表明将记录的上传下载情况写在xferlog_file所指定的文件中,即/var/log/xferlog文件。
同时,该方案启用dual_log_enable,表明启用了双份日志。在用xferlog文件记录服务器上传下载情况的同时,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也将用来记录服务器的传输情况。
下面分别查看xferlog文件和vsftpd.log文件的内容。
xferlog内容如下:
ThuSep609:07:4820077192.168.57.14323279/home/student/phpMyAdmin-2.11.0-all-languages.tar.gzb_irstudentftp0*c
ThuSep610: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/hello.txtb_oabit@bit.edu.cnftp0*i
TueSep1107:51:2220071127.0.0.134/
pub/hello.txtb_oabit@bit.edu.cnftp0*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
0/b_oamozilla@example.comftp0*i
TueSep1111:57:3620071192.168.57.2
0/b_orstudentftp0*i
vsftpd.log文件内容如下:
TueSep1114:59:032007CONNECT:Client"127.0.0.1"
TueSep1114:59:242007
OKLOGIN:Client"127.0.0.1",anonpassword"?"
如何在Linux系统中使用logger命令向日志文件写入信息
Logger是一个实用的shell命令工具,其主要功能是通过Syslog系统日志模块在命令行界面直接记录系统信息。它为syslog系统日志操作提供了一个便捷的接口,允许用户通过简单的命令行操作将信息写入系统的日志文件中。
Logger命令的使用遵循特定的语法格式:logger [参数]</,其中包含几个常用的参数选项。例如:
-d</:此参数使得logger使用UDP数据报模式而非默认的TCP流连接。
-i</:逐行记录logger进程ID,有助于跟踪和管理日志来源。
-f</:指定特定文件作为记录目标,如:[root@linuxcool~]# logger-f/home/a.txt,将信息写入/home/a.txt文件。
-n</:用于写入远程syslog服务器,通过UDP协议替代内建syslog功能,例如:[root@linuxcool~]# logger-n remote-server.example.com。
-P</:设置指定的UDP端口,如不指定,默认使用514端口。
-s</:输出标准错误到系统日志,增强日志记录的全面性。
要向系统日志例程添加一条记录,可以在命令行输入:[root@linuxcool~]# logger"System Rebooted",这将在/var/log/syslog文件中显示相关信息。
linux中怎样查看日志
方法/步骤
先必须了解两个最基本的命令:
tail-n 10 test.log查询日志尾部最后10行的日志;
tail-n+10 test.log查询10行之后的所有日志;
head-n 10 test.log查询日志文件中的头10行日志;
head-n-10 test.log查询日志文件除了最后10行的其他所有日志;
场景1:按行号查看---过滤出关键字附近的日志
因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
我是这样做的,首先: cat-n test.log|grep"地形"得到关键日志的行号
<3>得到"地形"关键字所在的行号是102行.此时如果我想查看这个关键字前10行和后10行的日志:
cat-n test.log|tail-n+92|head-n 20
tail-n+92表示查询92行之后的日志
head-n 20则表示在前面的查询结果里再查前20条记录
场景2:那么按日期怎么查呢?通常我们非常需要查找指定时间端的日志
sed-n'/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.
关于日期打印,可以先 grep'2014-12-17 16:17:20' test.log来确定日志中是否有该时间点,以确保第4步可以拿到日志
这个根据时间段查询日志是非常有用的命令.
如果我们查找的日志很多,打印在屏幕上不方便查看,有两个方法:
(1)使用more和less命令,如: cat-n test.log|grep"地形"|more这样就分页打印了,通过点击空格键翻页
(2)使用>xxx.txt将其保存到文件中,到时可以拉下这个文件分析.如:
cat-n test.log|grep"地形">xxx.txt
这几个日志查看方法应该可以满足日常需求了.