Hike News
Hike News

linux进阶

本篇介绍linux日志管理、内核升级、数据备份与恢复的相关内容。

linux系统文件结构:

/ 根目录
/bin 存放必要的命令
/boot 存放内核以及启动所需的文件
/dev 存放设备文件
/etc 存放系统配置文件
/home 普通用户的宿主目录,用户数据存放在其主目录中lib 存放必要 的运行库
/mnt 存放临时的映射文件系统,通常用来挂载使用
/proc 存放存储进程和系统信息
/root 超级用户的主目录
/sbin 存放系统管理程序
/tmp 存放临时文件
/usr 存放应用程序,命令程序文件、程序库、手册和其它文档。
/var 系统默认日志存放目录录

日志管理

rsyslogd日志管理服务,配置文件/etc/rsyslog.conf,各日志文件有:

/var/log/boot.log系统启动日志

/var/log/cron记录定时任务

/var/log/lastlog记录最后一次登录信息

/var/log/message记录系统重要信息

/var/log/secure记录验证授权信息

/var/log/wtmp和/var/log/btmp 记录登录和失败登录信息

/var/tuned/ulmp/记录当前登录用户的信息

日志类型

auth #pam产生的日志

authpriv #ssh\ftp等登录产生的日志

cron #时间任务

kern #内核

lpr #打印

mail #邮件

mark #服务内部信息

user #用户程序信息

uucp #主机通信

local 1-7 #自定义设备

日志级别

由低到高:

debug 调试信息

info 一般信息

notice 重要信息

warning 警告

err 错误

crit 严重错误

alert 修改

emerge 内核崩溃

none 不记录

日志轮替

创建新的日志文件,删除旧的日志,日志轮替配置文件/etc/logrotate.conf。日志轮替依赖于系统定时任务,在/etc/cron.daily/目录下有logrotate可执行文件。

keep 4 weeks worth of backlogs
rotate 4

#共保存 4 份日志文件,当建立新的日志文件时,旧的将会被删。

use date as a suffix of the rotated file

dateext

#以日期为后缀

自定义日志轮替

自定义日志轮替规则,如:

/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}

1)直接在/etc/logrotate.conf中写入该日志轮替规则。

2)在/etc/logrotate.d/目录中建立新的日志文件,在文件中写入轮替策略。

参数说明:

daily,每天轮替

weekly,每周轮替

monthly , 每月轮替

rotate 数字, 保留日志文件个数

compress ,轮替时对旧的日志压缩

create mode owner group , 创建新日志时指定权限所有者所在组

mail address ,日志轮替时输出内容到指定邮件地址

missingok , 若日志不存在则忽略该日志警告

notifepmty , 若日志为空则不轮替

minsize 大小 ,日志大小达到最小值才会轮替

size 大小,日志只有大于指定大小才进行轮替

dateext ,使用日期作为日志文件后缀

sharedscripts, 在此关键字后脚本只执行一次

prerotate/endscript,在日志轮替之前执行脚本

postrotate/endscript ,在日志轮替之后执行脚本

内存日志

journalctl 查看内存日志

journalctl -n 3,查看最近3条

journalctl –since 1:00 –until 1:30 ,查看某时间段日志

journalctl -p err,查看报错日志

journalctl -o verbose ,查看详细信息

journalctl _PID=xxx _COMM=sshd ,查看带某参数信息的日志

journalctl | grep sshd

内核升级

将linux系统的内核升级到兼容的版本

uname -a:查看当前内核

yum info kernel -q:检测内核版本

yum update kernel:升级内核

yum list kernel -q:查看已安装的内核

数据备份和恢复

2种方式:

1)把需要的文件用tar打包

2)dump和restore指令

若没有两个指令需要安装

yum -y install dump

yum -y install restore

dump

分区备份,增量备份,备份上次增加或修改过的文件

dump -cu -[123456789] -f 备份后的文件 -T 日期 [目录或文件系统]

参数说明:

-c,创建新的备份文件

-[0,1,2,3,4,5,6,7,8,9],备份的层级,0为完整备份,0以上则备份上次修改或新增的文件,9以后再次轮替。

-f,指定备份后的文件名

-j,使用bizlib库压缩

-T,指定开始备份的时间和日期

-u,备份后在/etc/dumpdares中记录备份的文件系统,层级、日期时间

-t,指定文件名,若文件已备份则列出名称

-W,显示需要备份的文件及最后一次备份的层级时间

-w,只显示需要备份的文件

查看备份时间文件:cat /etc/dumpdates

应用案例:

案例1:将/boot分区所有内容备份到/opt/boot.bak.bz2文件中,备份的层级为0

dump -0uj -f /opt/boot.bak.bz2 /boot/

案例2:在/boot下创建一个新的文件hello.txt,增量备份,备份层级为1

vi hello.txt

dump -1uj -f /opt/boot.bak1.bz2 /boot/

注意,dump不支持文件和目录的增量备份,只能0级备份

例:备份/etc目录到/opt/etc.bak.bz2

dump -0j -f /opt/etc.bak.bz2 /etc/

restore

恢复dump备份的数据文件。

restore [模式mode] [选项option]

首先指定一种模式执行,-C对比,-i交互,-r还原,-t查看文件。

选项:-f 备份文件,从dump备份文件中读取数据。

案例1:比较备份文件和原文件

restore -C -f /opt/boot.bak.bz2

案例2:查看备份了那些文件

restore -t -f /opt/boot.bak.bz2

案例3:还原备份文件/opt/boot.bak0.bz2到/opt/boottmp/下

mkdir /opt/boottmp

cd /opt/boottmp

#恢复到第一次完全备份状态

restore -r -f /opt/boot.bak0.bz2

#若有增量备份文件boot.bak1.bz2则需要进行恢复,有几个恢复几个

restore -r -f /opt/boot.bak1.bz2

可视化管理

bt宝塔可视化管理面板可以帮助运维人员提高效率,支持一键安装集群和数据库。

安装:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装成功后显示用户名和密码。

权限安全

尽量使用普通用户登录服务器,执行root命令时使用sudo操作。对于重要的系统文件可以进行锁定,chattr +i /etc/passwd,使自己和他人无法操作文件。

使用SUID、SGID、Sticky设置特殊权限

使用chkrootkit/rootkit hunter工具检查系统文件是否被修改或异常,监测root脚本,下载地址chkrootkit.org。

使用Tripwire检测系统文件完整性。

IO读写监控

iotop可以监控磁盘读写情况,首先安装iotop,yum install iotop,iotop。