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工具

三十rsync通过服务同步Linux系统日志screen工具

八周三课 rsync通过服务同步,linux系统日志,screen工具

10.32/10.33 rsync通过服务同步10.34 linux系统日志10.35 screen工具