系统日志:
日志类型及存储位置?
Linux常见的日志文件如下:
1、/var/log/boot.log(自检过程)
2、/var/log/cron (crontab守护进程crond所派生的子进程的动作)
3、/var/log/maillog(发送到系统或从系统发出的电子邮件的活动)
4、/var/log/syslog(它只记录警告信息,常常是系统出问题的信息,所以更应该关注改文件)
要让系统生成syslog日志文件,在/etc/syslog.conf文件中加上: *.waming /var/log/syslog
该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息
5、/var/run/utmp(该日志文件需要使用lastlog命令查看)
6、/var/log/wtmp(该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件)
7、/var/run/utmp(该日志文件记录有关当前登录的每个用户的信息)
8、/var/log/xferlog(该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件)
如何查看日志?有哪些工具,如何使用?
1、tail(用来查看文件的内容,如果值前面没有+或-,那么从文件末尾指定的单元号开始读取文件)
参数:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。
实例:
1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
2、tail -n 20 filename
说明:显示filename最后20行。
3、tail -r -n 10 filename
说明:逆序显示filename最后10行。
2、head(head命令和tail命令就像他的名字一样浅显易懂,它是用来显示开头或者结尾某个数量的文字区块,head用来显示档案的开头至标准输出当中)
参数: -q 隐藏文件名
-v 显示文件名
-c 显示字节数
-n 显示的行数
3、sed(本身就是一个管道命令,主要是以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作)
参数: -n 使用安静(silent)模式。在一般的sed的用法中,所有来自STDIN的资料一般会被列出到荧幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来
-p 列印,亦即将某个选择的资料印出。通常p会与参数sed-n一起运作
-s 取代,可以直接进行取代的工作,通常这个s的动作可以搭配正规表示法
4、cat
cat主要有三大功能: 1.一次显示整个文件。$ cat filename 2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件: $cat file1 file2 > file 参数: -n 或 --number 由 1 开始对所有输出的行数编号 -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号 -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 --show-nonprinting -E, –show-ends 在每行结束处显示 $ -e 等价于-vE 例: 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里 cat -n textfile1 > textfile2 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。 cat -b textfile1 textfile2 >> textfile3 把test.txt文件扔进垃圾箱,赋空值test.txt cat /dev/null > /etc/test.txt 注意:>意思是创建,>>是追加。千万不要弄混了。
5、grep(Global Regular Expression Print 一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。)
grep [options] 主要参数: [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大 小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行 -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行 pattern正则表达式主要参数: : 忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 <:从匹配正则表达 式的行开始。 >:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求 。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 。:所有的单个字符。 - :有字符,长度可以为0。
6、混合使用命令
A. tail web.2016-06-06.log -n 300 -f 查看底部即最新300条日志记录,并实时刷新 B. grep 'nick' | tail web.2016-04-04.log -C 10 查看字符‘nick’前后10条日志记录, 大写C C. cat -n test.log |tail -n +92|head -n 20 tail -n +92表示查询92行之后的日志 head -n 20 则表示在前面的查询结果里再查前20条记录
与日志记录的一些配置文件及配置项,分别表示什么含义?
Linux系统日志相关配置文件为/etc/syslog.conf
如何分析用户登录失败、SU失败的日志?
操作记录:
用户历史操作记录的存储位置?
如何查看用户历史操作?有哪些工具,如何使用?