导航:首页 > 程序命令 > 查看日志shell命令

查看日志shell命令

发布时间:2022-07-11 01:08:12

① 怎么查看linux服务器系统日志

last

-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f <记录文件> 指定记录文件。

-n <显示列数>或-<显示列数> 设置列出名单的显示列数。

-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep rebootlast | grep shutdown

history

列出所有的历史记录:
[zzs@Linux] # history

只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)

使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)

重复执行上一个命令
[zzs@linux] #!!

执行最后一次以rpm开头的命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[zzs@linux] #!rpm

逐屏列出所有的历史记录:
[zzs@linux]# history | more

立即清空history当前所有历史命令的记录
[zzs@linux] #history -c

cat, tail 和 watch

系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log

tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
除此之外还有more,less,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些.《Linux就该这么学》一起学习linux
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

② 如何shell命令编写自己的Web日志分析脚本

一、读取文件
按照上面的思路,先解决读取问题。这里我用了判断语句,起初我是想写出类似于 access=more
/usr/access*.*,将这个路径全部加到变量里,方便判断,因为在shell里,只能将固定文件、文件夹作为变量,变量中不能加*号(我是没找到别的方法,有知道大牛请提点下小弟),所以就想了个笨办法,用匹配关键词的方式来判断特定目录下,是apache日志,还是weblogic日志,还是IIS日志,具体判断方法如下:
if ls -l /usr/ | egrep "access";then
more /usr/access*.* | egrep "多个关键词"
else
more /usr/ex*.log | egrep “多个关键词”
fi
这样的方式来进行判断,但是这样判断有个缺点,就是中间件日志在/usr/目录下,只能存在一种,比如同时存在apache和IIS的日志,就会优先判断apache的,进而不会执行IIS日志分析的语句。而且,为了不跟之前的历史数据混乱,在脚本执行开始,清空了下数据。
file=/usr/nmgxy/
if [ -e "$file" ];then
echo "日志目录存在,跳过创建过程,该操作会清空/usr/nmgxy/目录下所有数据"
echo "按回车键开始清空数据,结束请点击Ctrl+c"
read key
rm -r /usr/nmgxy/*
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
else
mkdir -p /usr/nmgxy/ /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/
/usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
fi
echo "分析结果日志保存在/usr/nmgxy/目录下"
echo ---------------------日志目标文件---------------------------
if ls -l /usr/ | egrep "access";then
echo --------------------统计出现次数最多的前20个IP地址-----------------
cat /usr/access*.* |awk '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/top20.log
echo "统计完成"
二、定义攻击特征
日志读取的问题解决了,接下来就是定义攻击特征的事儿了,攻击特征比较好定义。例如,SQL注入攻击的判断:
echo ------------------------SQL注入攻击sql.log----------------
echo "开始分析存在SQL注入的攻击行为,并将结果保存在/usr/nmgxy/sql/目录下"
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
echo "分析结束"
awk '{print "共检测到SQL注入攻击" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
echo "开始统计SQL注入攻击事件中,出现频率最多的前20个IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "统计结束"
我把一些常见的SQL注入攻击的特征写到了里面,去掉了MSSQL数据库存储过程以及MSSQL数据库才会出现的一些注入语句。
三、输出匹配到的含有攻击特征的记录
将匹配到的攻击特征内容,重新输出到了另外一个log里面,相当于做了一次筛选/usr/nmgxy/sql/sql.log
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
然后二次分析这个筛选过的文件,统计SQL注入攻击出现的次数
awk '{print "共检测到SQL注入攻击" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
输出完毕后,将攻击出现最多的前20个IP地址进行统计并显示到屏幕上
echo "开始统计SQL注入攻击事件中,出现频率最多的前20个IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "统计结束"
四、输出结果
这个在代码开头,创建了一些文件夹,用来存放筛选过的记录
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
中间删删改改折腾了好几次。后来针对特定的攻击,我们比较关注(重点是比较好写的= =)的内容做了HTTP响应请求200/500的判断,并输出结果。
echo -------------------------getshell-getshell.log----------------
echo "开始分析存在getshell的攻击行为,并将结果保存在/usr/nmgxy/getshell/目录下"
more /usr/access*.* |egrep "
eval|%eval|%execute|%3binsert|%20makewebtaski%20|/div.asp|/1.asp|/1.jsp|/1.php|/1.aspx|xiaoma.jsp|tom.jsp|py.jsp|k8cmd.jsp|/k8cmd|ver007.jsp|ver008.jsp|ver007|ver008|%if|\.aar"
>>/usr/nmgxy/getshell/getshell.log
echo "分析结束"
echo "二次分析结果中HTTP响应码为200和500,结果另存为/usr/nmgxy/getshell/ok.log"
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=200) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >/usr/nmgxy/getshell/ok.log
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >>/usr/nmgxy/getshell/ok.log
echo "二次分析结束"
awk '{print "共检测到getshell行为" NR "次"}' /usr/nmgxy/getshell/getshell.log|tail -n1
echo "开始统计漏洞利用攻击事件中,出现频率最多的前20个IP地址"
cat /usr/nmgxy/getshell/getshell.log |awk -F "[" '{print $1}' |sort
|uniq -c |sort -rn |head -20 >/usr/nmgxy/getshell/top20.log
echo ---------------------------------------------------------------
more /usr/nmgxy/getshell/top20.log
echo "统计结束"
统计HTTP响应状态,IIS和apache有点区别。apache我以默认空格为分隔符,判断第9个分隔符是否为200或500,如果等于,则输出全部内容
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2" "$3" "$4" "$6" "$7" "$8" "$9}}'
而IIS的,我则是用获取关键词的方式,来进行判断。
more /usr/nmgxy/getshell/getshell.log | egrep " 200" >/usr/nmgxy/getshell/ok.log
用egrep的方式,关键词为" 200",200前面有个空格,如果不加空格的话,很容易跟其他的参数混起来,那个时候误报就不是一点点了。例如asp?id=200,所以加入了空格做区分。
IIS和nginx的思路类似,唯一的区别就是特征码,稍微有点改动而已,这个就不一一例举了。思路就是这个思路,其实后期想把报告整体输出成HTML的方式,估计工作量挺大,这个还是得闲下来的时候,慢慢修改吧。
PS:这个脚本虽然写的比较粗糙,但是精确度还是有的,测试了几十次,精确度能达到至少80%以上。
分析1个多G的日志文件,需要大致约30多秒左右,我是在虚拟机里做的测试。虚拟机ubuntu系统,1G的内存。
不见得能帮上大忙,至少可以给大家在分析日志时节省点时间。。。。
先贴出apache、weblogic、IIS的脚本代码,weblogic的从网盘直接下载就好。apache、weblogic、IIS的脚本代码:

③ 查linux日志最后几行 用什么参数啊

用“tail -n 行数”来实现查询日志最后几行,步骤如下:

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。

④ xshell查看日志乱码怎么解决

xshell(xshell5)以及其他终端中文乱码的原因无非有三种
(1)Linux系统的编码问题
(2)xshell终端的编码问题
(3)两端的语言编码不一致

1、Linux系统的编码问题

(1) 执行locale命令查看系统语言

(2)设置系统环境变量LANG为en_US.UTF-8:
export.UTF-8

或者编辑文件:vim /etc/sysconfig/i18n

2、xshell终端的编码问题

设置为Unicode (UTF-8):

File->Properties

3、两端的语言编码不一致

如果上述操作后,还是有中文乱码问题,比如中文文件名、cat包含中文的文件等,说明属于第3类问题《Linux就该这么学》一起学习linux

要么修改Linux环境变量LANG,要么修改xshell终端编码:

File->Properties
修改为Chinese Simplified (GB2312)

并确定LANG为en_US.UTF-8 或 en_US

4、如果进行了以上设置,仍然中文显示乱码,退出并重新登录系统,再次进行以上设置,确认更改设置并进行结果验证。

⑤ Linux服务器查看日志的几种方法

1、通过linux命令行工具(如:xshell4工具),连接到指定服务器;
2、通过cd
命令进入指定文件目录,回车;(如:cd
/usr/ibm/websphere/appserver/profiles/emall0202/logs),
3、使用
命令:tail
-f
systemout.log
4、进行动态跟踪;(注意:跟踪时,先执行命令,再发http请求,然后回到命令行工具,退出同动态跟踪(使用ctrl+c))
5、怎么最快的索引到关键字,使用
vi
systemout.log
打开日志文件;(vi命令等同于windows里的打开视图编辑器)
6、打开以后,使用“
/

+
”关键字“
,回车即可;
小窍门:
1、当输入一个已有的文件/文件目录的首字母,然后按tab键,会自动索引对应的文件名或提示);
2、cd
..
为回退到父文件夹命令,中间有个空格;
3、ls
命令列出文件夹下的所有文件;
4、linux
的vi编辑器退出方法。
先esc
:
q
在未作修改的情况下退出!
:
q!
放弃所有修改,退出编辑程序!

⑥ 如何用shell脚本实现读取多台主机监控日志

  1. 通过free,top命令查看cpu、内存使用信息,把结果输入到一个文本里面;

  2. 把上述结果上传在你说的其中一台主机(这个上面要有ftp服务)里面,ftp脚本就很简单了

#!/bin/bash
top>>/home/info
free-m>>/home/${date+%F}info
ftp-i-nhost<<ok
useusernamepasswd
binary
put/home/${date+%F}info
bye
ok
exit

在这里机器上设置成定时任务,就可以定时收集信息了。

⑦ shell日志查询脚本怎么写

shell日志处理一般可以利用grep,awk命令就可以进行查询了。一般利用grep命令筛选要统计的选项,然后利用awk把筛选出的数据进行最后统计。

⑧ 在linux中怎么查看错误日志

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

⑨ 怎么在shell 中查看日志输出

兴来每独往,胜事空自知。

阅读全文

与查看日志shell命令相关的资料

热点内容
如何用安卓机赚钱 浏览:117
反诈中心app的账号在哪里找 浏览:807
遥控器和安卓系统怎么配对 浏览:492
我的世界jave版怎么玩服务器 浏览:625
php图片上传到服务器 浏览:700
记账软件app哪个最实用 浏览:351
苹果手机app清除缓存在哪里 浏览:454
网易如何在服务器加材质包 浏览:44
图像压缩算法代码 浏览:898
单片机的485通讯 浏览:579
现在培训程序员好吗 浏览:100
浙江丽水dns服务器云主机 浏览:250
androiddeprecated 浏览:134
php执行cron 浏览:6
三个多项式相乘的命令是什么 浏览:366
胸椎压缩骨折半年了还需要复查吗 浏览:613
国外移动服务器地址 浏览:267
如何配置内网svn服务器地址 浏览:742
新建素材文件是文件夹么 浏览:516
捷速pdf编辑器免费版 浏览:871