Linux系统运维常用软件介绍、Linux系统日志管理工具
小编:动力软件园 时间:2018-06-29 11:26:47
踏入linux运维工程师需要掌握的工具,还有很多工具要掌握的,经常看日志是系统管理的好习惯。
Linux系统日志
/var/log/messages 系统总日志
/etc/logrotate.conf 日志切割配置文件
/var/log/dmesg 系统启动日志
/var/log/scure 安全日志文件
dmesg命令
查看系统硬件相关的日志。dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在:/var/log/dmesg文件里。
在该日志中可以查看系统有哪些硬件故障。
语法: dmesg [option]
Options:
-c:清除日志(系统重启会重新生成)
-n:指定记录信息的层级
last命令
last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
lastb命令
lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。(/var/log/btmp)
logrotate命令
logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。
安装logrotate工具: yum install logrotate crontabs
Logrotate可配置参数,可使用man命令来查询:
compress 通过gzip压缩转储以后的日志 nocompress 不压缩 copytruncate 用于还在打开中的日志文件,把当前日志备份并截断 nocopytruncate 备份日志文件但是不截断create mode owner group 转储文件,使用指定的文件模式创建新的日志文件 nocreate 不建立新的日志文件 delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。errors address 专储时的错误信息发送到指定的Email 地址 ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。 notifempty 如果是空文件的话,不转储 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件 olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir 转储后的日志文件和当前日志文件放在同一个目录下 prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行 postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 daily 指定转储周期为每天 weekly 指定转储周期为每周 monthly 指定转储周期为每月 rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ size size 当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)
10.35 screen工具
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
安装screen工具:yum install -y screen
将一个任务放入后台
# nohup command >[日志文件] 2>[日志文件] &
screen语法:
screen [option] [参数]
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始:
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
查看当前screen下的任务
[root@adai003 ~]# screen -ls There is a screen on: 3628.pts-0.adai003 (Detached)1 Socket in /var/run/screen/S-root.
返回screen session
[root@adai003 ~]# screen -r 3628(screen的id)
终止screen:在screen session执行如下命令即可
[root@adai003 ~]# screen -r 3628
为screen指定作业名
[root@adai003 ~]# screen -S "test_screen"
说明: 这样做的目的是方便区分每个screen任务。
扩展:xargs命令
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。
xargs命令用法1
xargs用作替换工具,读取输入数据重新格式化后输出。
多行输入单行输出
[root@adai003 ~]# cat test1 23 4a b c d [root@adai003 ~]# cat test | xargs1 2 3 4 a b c d
xargs -n 指定每行输出单元数量
[root@adai003 ~]# cat test | xargs -n41 2 3 4a b c d
xargs -d 指定分隔符
[root@adai003 ~]# echo "test#test#test#test" | xargs -d# -n2test testtest test