Linux系统日志和screen工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统日志和screen工具相关的知识,希望对你有一定的参考价值。
一、Linux系统日志
日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个trouble?日志记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。
常查看的日志文件为/var/log/message
, 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为root以及用户自定义安装的软件(apache)的日志也会在这里列出。通常,/var/log/messages
是在做故障诊断时首先要查看的文件。系统有一个日志轮询的机制,每星期切换一个日志,变成message.xxxxxxxx, message.xxxxxxxx, ... messages.xxxxxxxx
连同messages一共有5个这样的日志文件。这里的xxxxxxxx就是按照日期的格式生成的文件,这是通过logrotate工具的控制来实现的,它的配置文件是/etc/logrotate.conf如果没有特殊需求请不要修改这个配置文件。
[[email protected] ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we‘ll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
/var/log/messages
是由syslogd
这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages
,所以这个服务不要停。Syslogd
服务的配置文件为/etc/syslog.conf
这个文件定义了日志的级别,有需求使用man syslog.conf
获得更多关于它的信息。
除了关注/var/log/messages
外,你还应该多关注一下dmesg
这个命令,它可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的。
[[email protected] ~]# dmesg |head
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0-514.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.el7.x86_64 root=UUID=1cec20ae-09f9-4d50-a2eb-5c1b1a4ab741 ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8
[ 0.000000] Disabled fast string operations
[ 0.000000] e820: Bios-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
关于安全方面的日志,简单介绍几个命令或者日志。last
命令:
[[email protected] ~]# last |head
root pts/0 192.168.204.1 Wed Jan 31 16:45 still logged in
root tty1 Wed Jan 24 22:57 still logged in
root pts/0 192.168.204.1 Wed Jan 24 20:09 - 22:39 (02:30)
reboot system boot 3.10.0-514.el7.x Wed Jan 24 20:08 - 18:09 (6+22:01)
root pts/0 192.168.204.1 Wed Jan 24 19:57 - down (00:11)
reboot system boot 3.10.0-514.el7.x Wed Jan 24 19:57 - 20:08 (00:11)
root pts/0 192.168.204.1 Wed Jan 24 18:20 - 19:56 (01:36)
root pts/0 192.168.204.1 Wed Jan 24 16:58 - 18:20 (01:21)
root pts/1 192.168.204.1 Tue Jan 23 17:30 - 18:19 (00:48)
root pts/0 192.168.204.1 Tue Jan 23 16:48 - 18:19 (01:30)
last
命令用来查看登录Linux历史信息,从左至右依次为账户名称、登录终端、登录客户端ip、登录日期及时长。last命令输出的信息实际上是读取了二进制日志文件/var/log/wtmp
, 只是这个文件不能直接使用cat, vim, head, tail等工具查看。
另外一个和登陆信息有关的日志文件为/var/log/secure
, 该日志文件记录验证和授权等方面的信息,比如ssh登陆系统成功或者失败,都会把相关信息记录在这个日志里。
二、screen工具介绍
在工作中,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。
1、使用nohup
[[email protected] ~]# vim /usr/local/sbin/sleep.sh
[[email protected] ~]# cat !$
cat /usr/local/sbin/sleep.sh
#! /bin/bash
sleep 1000
[[email protected] ~]# nohup sh /usr/local/sbin/sleep.sh &
[1] 3703
直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup的作用就是不挂断地运行命令。
2、screen工具的使用
简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的SSH连接窗口那样。
1、打开一个会话,直接输入screen命令然后回车,进入screen会话窗口。如果你没有screen命令,就安装下:
[[email protected] ~]# screen
-bash: screen: 未找到命令
[[email protected] ~]# yum install -y screen
然后输入screen就进入到screen会话窗口,在会话窗口查看已经打开的会话:
[[email protected] ~]# screen -ls
There is a screen on:
3754.pts-0.zlinux (Attached)
1 Socket in /var/run/screen/S-root.
Ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入Ctrl +d 或者输入exit。
退出后还想再次登录某个screen会话,使用sreen -r [screen 编号]
,这个编号就是上例中那个3754。当只有一个screen会话时,后面的编号是可以省略的。当你有某个需要长时间运行的命令或者脚本时就打开一个screen会话,然后运行该任务。按ctrl +a 再按d退出会话,不影响终端窗口上的任何操作。
以上是关于Linux系统日志和screen工具的主要内容,如果未能解决你的问题,请参考以下文章
rsync通过服务的方式同步linux系统日志screen工具
rsync通过服务同步,Linux系统日志,screen工具
三十rsync通过服务同步Linux系统日志screen工具