博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 系统日志、screen 工具
阅读量:6542 次
发布时间:2019-06-24

本文共 3521 字,大约阅读时间需要 11 分钟。

1、Linux 系统日志

Linux 系统日志、screen 工具

日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个trouble?日志记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到***时***者留下的痕迹。日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。

我们常查看的日志文件为/var/log/message, 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为root以及用户自定义安装的软件(apache)的日志也会在这里列出。

输入命令 ls /var/log/messages,回车,见下图,

Linux 系统日志、screen 工具
接着使用命令 less !$ 来查看一下,见下图,
Linux 系统日志、screen 工具
可以看到日志里面记录了各种各样的信息。按字母“q”即可退出。通常,/var/log/messages 是在做故障诊断时首先要查看的文件。那你肯定会说了,这么多日志都记录到这个文件中,那如果服务器上有很多服务岂不是这个文件很快就会写的很大。现在来看一下日志文件的大小,输入命令 du -sh !$,回车,见下图,
Linux 系统日志、screen 工具
3.5M,比想象中小太多了。这是因为系统有一个日志轮询的机制,每星期切换一个日志,变成message.xxxxxxxx, message.xxxxxxxx, ... messages.xxxxxxxx 连同 messages 一共有5个这样的日志文件。这里的xxxxxxxx就是按照日期的格式生成的文件,这是通过 logrotate 工具的控制来实现的,它的配置文件是 /etc/logrotate.conf 如果没有特殊需求请不要修改这个配置文件。
接着来看一下配置文件 /etc/logrotate.conf,使用 cat 命令查看,见下图,
Linux 系统日志、screen 工具
上面写着,可以使用命令 man logrotate,查看更详细的信息。接下来就显示每隔星期切割1次,总共切割4次,相当于保留1个月的意思,切割完就会创建一个新的文件,后缀用日期,文件可以压缩。还有一个配置文件 /etc/logrotate.d,后面还有每个月切割一次的文件 /var/log/wtmp 和 /var/log/btmp ,都只保存一个文件,创建的时候还设置了文件权限、属主和属组。
接下来,输入命令 ls /etc/logrotate.d 查看文件,回车,见下图,
Linux 系统日志、screen 工具
/var/log/messages是由syslogd这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages,所以这个服务不要停。syslogd服务的配置文件为/etc/syslog.conf这个文件定义了日志的级别,具体详细的东西不再阐述,因为若没有特殊需求是不需要修改这个配置文件的,请使用 man syslog.conf 获得更多关于它的信息。

关于配置文件,就这么多内容,想要详细了解的,可以参考 。

除了关注/var/log/messages外,还应该多关注一下 dmesg 这个命令,它可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的。输入 dmesg,直接回车,见下图,

Linux 系统日志、screen 工具
内容非常多,仅截取最后一屏。显示的是系统硬件相关的日志,它保存在内存中,可以使用命令 dmesg -c 清空掉,见下图,
Linux 系统日志、screen 工具
这只是屏幕清空,系统重启之后还会有的。接着查看日志文件,ls /var/log/dmesg,见下图,
Linux 系统日志、screen 工具
这个一个系统启动时的日志,和 /var/log/messages 这个文件毫无联系。输入 less /var/log/dmesg,回车,见下图,
Linux 系统日志、screen 工具
内容太多,还是截取一屏。
接着讲解 last 命令,直接输入 last ,回车,见下图,
Linux 系统日志、screen 工具
last 命令用来查看登录 Linux 历史信息,从左至右依次为账户名称、登录终端、登录客户端ip、登录日期及时长。last 命令输出的信息实际上是读取了二进制日志文件 /var/log/wtmp, 只是这个文件不能直接使用 cat, vim, head, tail 等工具查看。
与 last 对应的命令是 lastb,直接回车,见下图,
Linux 系统日志、screen 工具
用来查看登录失败的用户,对应的二进制日志文件是 /var/log/btmp,与 /var/log/wtmp 类似。
另外一个和登陆信息有关的日志文件为/var/log/secure, 该日志文件记录验证和授权等方面的信息,比如ssh登陆系统成功或者失败,都会把相关信息记录在这个日志里。输入命令 less /var/log/secure,回车,见下图,
Linux 系统日志、screen 工具
以后在日常的管理工作中要养成多看日志的习惯,尤其是一些应用软件的日志,比如apache, mysql, php等常用的软件,看它们的日志(错误日志)可以帮助我们排查问题以及监控它们的运行状况是否良好。

2、screen 工具

有时候,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。

Linux 系统日志、screen 工具

使用 nohup

把任务丢到后台去,再加一个日志的输出,虽然没有输出到屏幕上,输出到日志里也是可以的。使用命令 nohup command &,其中 command 是日志的意思。 直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup 的作用就是不挂断地运行命令。

这个命令虽然可以保证运行不中断,但是不能实时查看任务输出的东西。

使用 screen

screen 工具可以填补 nohup 工具的缺点。简单来说,screen 是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen 中有会话的概念,用户可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 SSH 连接窗口那样。下面介绍screen的一个简单应用。

需要先安装一下,输入命令 yum install -y screen,回车,见下图,
Linux 系统日志、screen 工具
安装完成之后,直接输入 screen ,回车,见下图,
Linux 系统日志、screen 工具
这就进入了一个 screen 窗口,就相当于虚拟终端。使用 w 命令是看不出来的 。现在运行一个命令 vmstat 1,这是一个不断运行的命令,回车,见下图,
Linux 系统日志、screen 工具
使用命令 ctrl a + d,可以把这个 screen 窗口丢到后台去。ctrl a 是同时按住的,d 后面再按。然后就回到原来的界面,见下图,
Linux 系统日志、screen 工具
第一个红色框框的内容显示了刚才后台运行的 screen 窗口,ID 是3847。回到刚才的 screen 窗口,使用命令 screen -r 3847,回车即可,见下图,
Linux 系统日志、screen 工具
停止命令使用 ctrl + c,不想要这个 screen 窗口,输入 exit 回车或按住 ctrl+d,即可终止。
Linux 系统日志、screen 工具
然后下图中就可以看到 screen is terminating,意思是 screen 终止。接着使用命令 screen -ls 查看,就看不到 screen 运行了。
Linux 系统日志、screen 工具
也可以同时使用多个 screen 窗口,具体操作见下图,
Linux 系统日志、screen 工具
输入 screen 回车,然后再使用 ctrl a + d 退出 screen,连续操作3次,创建3个 screen 窗口。使用 screen -ls 也可以看到3个窗口。进入其中一个,使用命令 screen -r ID号就可以。这边还有一个问题,3个窗口的除了 ID 不一样,其他信息都是一样,如果记混了怎么办呢?有一个参数 S(大写)可以解决这个问题,重命名 screen 窗口。输入命令 screen -S "test_screen",回车,见下图,
Linux 系统日志、screen 工具
直接进入第一个 screen 窗口,输入内容 sleep 100,不回车,为了等会区分。然后使用 ctrl a + d 退出来。接着使用命令 screen -ls 查看,见下图,
Linux 系统日志、screen 工具
可以看到一个重命名为 test_screen 的 screen 窗口,之后进入的时候,screen -r 后面可以加 4050,也可以加 test_screen,回车进入后,就能看到刚才输入的 sleep 100。这边不再图片显示了。

转载于:https://blog.51cto.com/13503302/2104027

你可能感兴趣的文章
C#中用ILMerge将所有引用的DLL打成一个DLL文件
查看>>
PHP生成HTML静态页面
查看>>
Makefile 中:= ?= += =的区别【转】
查看>>
使用makecontext实现用户线程【转】
查看>>
Comet:基于 HTTP 长连接的“服务器推”技术
查看>>
BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
查看>>
四种方法校验数组中是否包含某个指定的字符串
查看>>
29、Java并发性和多线程-非阻塞算法
查看>>
安装OpenResty开发环境
查看>>
第0课 从0开始
查看>>
hadoop无法启动DataNode问题
查看>>
java泛型中<?>和<T>区别
查看>>
这里是指推送通知跟NSNotification有区别:
查看>>
用户ID的代码生成
查看>>
win7经常出现“关闭xxxx前您必须关闭所有会话框”
查看>>
SNMP安全配置的两种方法(也可同一时候兼顾配置两种方法)
查看>>
MongoDB 自己定义函数
查看>>
Summary Day30
查看>>
逆向输出回环数组
查看>>
高清摄像头MIPI CSI2接口浅解【转】
查看>>