Linux服务系统管理

一、 Linux系统管理

1. 进程管理

1.1 进程查看

  • 进程简介:进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

  • 进程管理的作用

    • 判断服务器健康状态
    • 查看系统中所有进程
    • 杀死进程
  • 查看系统中所有进程

    • ps aux
      查看系统中所有进程,使用BSD操作系统格式。(Unix)
    • ps -le
      查看系统中所有进程,使用Linux标准命令格式。
      ps aux 输出信息
    • USER:该进程是由哪个用户产生的;
    • PID:进程的ID号;
    • %CPU:该进程占用CPU资源的百分比,占用越高,进程 越耗费资源;
    • %MEM:该进程占用物理内存的百分比,占用越高,进程 越耗费资源;
    • VSZ:该进程占用虚拟内存的大小,单位KB;
    • RSS:该进程占用实际物理内存的大小,单位KB;
    • TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表 本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
    • STAT:进程状态。常见的状态有:R:运行、S:睡眠 、T:停止状态、s:包含子进程、+:位于后台
    • START:该进程的启动时间
    • TIME:该进程占用CPU的运算时间,注意不是系统时间
    • COMMAND:产生此进程的命令名
  • 查看系统健康状态
    top [选项]

    • -d 秒数: 指定top命令每隔几秒更新。默认是3秒 在top命令的交互模式当中可以执行的命令
    • ?或h: 显示交互模式的帮助
    • P: 以CPU使用率排序,默认就是此项
    • M: 以内存的使用率排序
    • N: 以PID排序
    • q: 退出top

第一行信息为任务队列信息

内容 说明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间,本机已经运行1天 13小时32分钟
2 users 当前登录了两个用户
load average: 0.00, 0.00, 0.00 系统在之前1分钟,5分钟,15分钟 的平均负载。一般认为小于1时,负 载较小。如果大于1,系统已经超出 负荷。

第二行为进程信息

内容 说明
Tasks: 95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程

第三行为CPU信息

内容 说明
Cpu(s): 0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程的占用CPU百分比
0.0%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

第四行为物理内存信息

内容 说明
Mem: 625344k total 物理内存的总量,单位KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的是虚 拟机,总共只分配了628MB内存,所以 只有53MB的空闲内存了
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息

内容 说明
Swap: 524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小

查看进程树
pstree [选项]

  • -p: 显示进程的PID
  • -u: 显示进程的所属用户

1.2 进程管理

kill命令
kill [信号代号] PID
kill后加PID号
kill –l
查看可用的进程信号

常用进程信号表

信号代号 信号名称 说明
1 SIGHUP 该信号让进程立即关闭,然后重新读取配置文件之后重启。
2 SIGINT 程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷 键。
8 SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。
9 SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。 一般用于强制终止进程。
14 SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数 使用该信号。
15 SIGTERM 正常结束进程的信号,kill命令的默认信号。有时如果进程已 经发生问题,这个信号是无法正常终止进程的,我们才会尝 试SIGKILL信号,也就是信号9。
18 SIGCONT 该信号可以让暂停的进程恢复执行,本信号不能被阻断。
19 SIGSTOP 该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号 不能被阻断。

例子:

  • kill -1 22354 重启进程号为22354的进程
  • kill -9 22368 强制杀死进程号为22368的进程

killall命令
killall[选项][信号代号]进程名
按照进程名杀死进程

  • -i: 交互式,询问是否要杀死某个进程
  • -I: 忽略进程名的大小写
    和kill不一样,他加进程名

pkill命令
pkill [选项] [信号] 进程名
按照进程名终止进程

  • -t 终端号: 按照终端号踢出用户

    按照终端号踢出用户

    • w
      使用w命令查询本机已经登录的用户
    • pkill -t -9 pts/1
      强制杀死从pts/1虚拟终端登录的进程

2. 进程管理

工作管理
把进程放入后台

  • 命令后面加&
    • 例子:
      tar -zcf etc.tar.gz /etc & (后台运行)
      但是像top,vim和用户交互的命令放在后台自动停止,不再运行
  • 运行界面按按ctrl+z
    • 例子:
      top
      在top命令执行的过程中,按ctrl+z快捷键放入后台(后台暂停)

查看后台的工作
jobs [-l]

  • -l 显示工作的PID
    注意:“+”号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-”号代表倒数第二个放入后台的工作

将后台暂停的工作恢复到前台执行

  • fg %工作号
    %工作号:%号可以省略,但是注意工作号和PID到区别

把后台暂停的工作恢复到后台执行

  • bg %工作号
    注意:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行

3. 系统资源查看

  • vmstat命令监控系统资源
    vmstat [刷新延时 刷新次数]
    例子:

    vmstat 1 3

  • dmesg开机时内核检测信息
    dmesg
    例子:

    • dmesg | grep CPU
  • free命令查看内存使用状态
    free [-b|-k|-m|-g]

    • -b: 以字节为单位显示
    • -k: 以KB为单位显示,默认就是以KB为单位显示
    • -m: 以MB为单位显示
    • -g: 以GB为单位显示
  • 缓存和缓冲的区别
    简单来说缓存(cache)是用来加速数据 从硬盘中“读取”的,而缓冲(buffer) 是用来加速数据“写入”硬盘的。

  • 查看CPU信息
    cat /proc/cpuinfo

  • uptime命令
    uptime
    显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据。

  • 查看系统与内核相关信息
    uname [选项]

    • -a: 查看系统所有相关信息;
    • -r: 查看内核版本;
    • -s: 查看内核名称。
  • 判断当前系统的位数
    没有直接的命令可以查看
    只能通过查看系统外部命令的文件类型,顺带写出位数
    file /bin/ls

  • 查询当前Linux系统的发行版本
    lsb_release -a

  • 列出进程打开或使用的文件信息
    lsof [选项]
    列出进程调用或打开的文件的信息

  • -c 字符串: 只列出以字符串开头的进程打开的文件

  • -u 用户名: 只列出某个用户的进程打开的文件

  • -p pid: 列出某个PID进程打开的文件

4. 系统定时任务

crond服务管理与访问控制

  • service crond restart 启动
  • chkconfig crond on 自启动

用户的crontab设置
crontab [选项]

  • -e: 编辑crontab定时任务
  • -l: 查询crontab任务
  • -r: 删除当前用户所有的crontab 任务 ,如果想删一个,-e进去之后删除
    crontab -e 标准格式
    进入crontab编辑界面。会打开vim编辑你的工作。
    *** * * * * 执行的任务**
    其中*号代表
项目 含义 范围
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

这个表可以配合特殊符号使用:

特殊符号 含义
* 代表任何时间。比如第一个“*”就代表一小时中 每分钟都执行一次的意思。
代表不连续的时间。比如“0 8,12,16 * * * 命令”, 就代表在每天的8点0分,12点0分,16点0分都执 行一次命令
- 代表连续的时间范围。比如“0 5 * * 1-6命令”, 代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如“*/10 * * * * 命 令”,代表每隔10分钟就执行一遍命令

例子:

时间 含义
45 22 * * * 命令 在22点45分执行命令
0 17 * * 1 命令 每周1 的17点0分执行命令
0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命 令
40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命 令
*/10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一 次命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会 执行命令。注意:星期几和几号最好 不要同时出现,因为他们定义的都是 天。非常容易让管理员混乱。

注意:在crontab -e 编辑下 %有特殊含义,所以就应该加转义符

二、 日志管理

1. 日志管理简介

日志服务
在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致。

rsyslogd的新特点:

  • 基于TCP网络协议传输日志信息;
  • 更安全的网络传输方式;
  • 有日志消息的及时分析框架;
  • 后台数据库;
  • 配置文件中可以写简单的逻辑判断;
    与syslog配置文件相兼容。

确定服务启动
ps aux | grep rsyslogd
查看服务是否启动

chkconfig --list | grep rsyslog
查看服务是否自启动

CentOS 7 变为 systrmctl list-unit-files | grep rsyslog

常见日志的作用

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志。
/var/log/cups/ 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息。也可以使用 dmesg命令直接查看内核自检信息。
/var/log/btmp 记录错误登录的日志。这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看,命令如下: lastbroot tty1 Tue Jun 4 22:38 - 22:38 (00:00) 有人在6月4日22:38使用root用户,在本地终端1登录错误
/var/log/lastlog 记录系统中所有用户最后一次的登录时间的日志。这个文件也是二进制文件,不能直接vi,而要使用lastlog命令查看。
/var/log/mailog 记录邮件信息。
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大
/var/log/secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。 比如说系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加 用户和修改用户密码都会记录在这个日志文件中。
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、 关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需 要使用last命令来查看。
/var/run/utmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注 销而不断变化,只记录当前登录用户的信息。同样这个文件不能直 接vi,而要使用w,who,users等命令来查询。

除了系统默认的日志之外,采用RPM方 式安装的系统服务也会默认把日志记录在/var/log/目录中(源码包安装的服务日志 是在源码包指定目录中)。不过这些日志不是由rsyslogd服务来记录和管理的,而 是各个服务使用自己的日志管理文档来记录自身日志。

日志文件 说明
/var/log/httpd/ RPM包安装的apache服务的默认日志目录
/var/log/mail/ RPM包安装的邮件服务的额外日志目录
/var/log/samba/ RPM包安装的samba服务的日志目录
/var/log/sssd/ 守护进程安全服务目录

2. rsyslogd日志服务

日志文件格式
基本日志格式包含以下四列:

  • 事件产生的时间;
  • 发生事件的服务器的主机名;
  • 产生事件的服务名或程序名;
  • 事件的具体信息。

/etc/rsyslog.conf配置文件
写入这个文件可以自定义需要记录日志的程序
authpriv.* /var/log/secure
服务名称[连接符号]日志等级 日志记录位置
认证相关服务.所有日志等级记录在/var/log/secure日志中

服务名称

服务名称 说明
auth 安全和认证相关消息(不推荐使用authpriv替代)
authpriv 安全和认证相关消息(私有的)
cron 系统定时任务cront和at产生的日志
daemon 和各个守护进程相关的日志
ftp ftp守护进程产生的日志
kern 内核产生的日志(不是用户进程产生的)
local0-local7 为本地使用预留的服务
lpr 打印产生的日志
mail 邮件收发信息
news 与新闻服务器相关的日志
syslog 有syslogd服务产生的日志信息(虽然服务名 称已经改为rsyslogd,但是很多配置都还是沿 用了syslogd的,这里并没有修改服务名)。
user 用户等级类别的日志信息
uucp uucp子系统的日志信息,uucp是早期linux系

统进行数据传递的协议,后来也常用在新闻 组服务中。

连接符号
连接符号可以识别为:

  • “*”代表所有日志等级,比如:“authpriv.*”代表authpriv认证信息服务产生的日志,所有的日志等级都记录
  • “.”代表只要比后面的等级高的(包含该等级)日志都记录下来。比如:“cron.info”代表cron服务产生的日志,只要日 志等级大于等于info级别,就记录
  • “.=”代表只记录所需等级的日志,其他等级的都不记录。比 如:“*.=emerg”代表人和日志服务产生的日志,只要等级是 emerg等级就记录。这种用法及少见,了解就好
  • “.!”代表不等于,也就是除了该等级的日志外,其他等级的 日志都记录。

日志等级

等级名称 说明
debug 一般的调试信息说明
info 基本的通知信息
notice 普通信息,但是有一定的重要性
warning 警告信息,但是还不回影响到服务或系统的运行
err 错误信息,一般达到err等级的信息以及可以影响到服务或系统的运行了。
crit 临界状况信息,比err等级还要严重
alert 警告状态信息,比crit还要严重。必须立即采取行动
emerg 疼痛等级信息,系统已经无法使用了

日志记录位置

  • 日志文件的绝对路径,如“/var/log/secure”
  • 系统设备文件,如“/dev/lp0”
  • 转发给远程主机,如“@192.168.0.210:514”
    用户名,如“root”
  • 忽略或丢弃日志,如“~”

3. 日志轮替

日志文件的命名规则
如果配置文件中拥有“dateext”参数,那么日志会用日期来作为日志文件的后缀, 例如“secure-20130605”。这样的话日志文件名不会重叠,所以也就不需要日志文 件的改名,只需要保存指定的日志个数, 删除多余的日志文件即可。

如果配置文件中没有“dateext”参数,那么日志文件就需要进行改名了。当第一次进行日志 轮替时,当前的“secure”日志会自动改名为 “secure.1”,然后新建“secure”日志,用来 保存新的日志。当第二次进行日志轮替时, “secure.1”会自动改名为“secure.2”,当前的 “secure”日志会自动改名为“secure.1”,然 后也会新建“secure”日志,用来保存新的日志 ,以此类推。

logrotate配置文件

参数 参数说明
daily 日志的轮替周期是每天
weekly 日志的轮替周期是每周
monthly 日志的轮替周期是每月
rotate 数字 保留的日志文件的个数。0指没有备份
compress 日志轮替时,旧的日志进行压缩
create mode owner group 建立新日志,同时指定新日志的权限与所有者和 所属组。如create 0600 root utmp
mail address 当日志轮替时,输出内容通过邮件发送到指定的 邮件地址。如mail 1771566679@qq.com
missingok 如果日志不存在,则忽略该日志的警告信息
notifempty 如果日志为空文件,则不进行日志轮替
minsize 大小 日志轮替的最小值。也就是日志一定要达到这个 最小值才会轮替,否则就算时间达到也不轮替size 大小 日志只有大于指定大小才进行日志轮替,而不是 按照时间轮替。如size 100k
dateext 使用日期作为日志轮替文件的后缀。如secure- 20130605

在/etc/logrotate.conf 配置文件里修改轮替规则,下面大括号外面的变量相当于局部变量,而大括号里面的相当于全局变量,只有大括号里面没有声明,外面的才生效,一旦大括号声明了,大括号里面的优先级高于外面,优先生效

把apache日志加入轮替
vi /etc/logrotate.conf /usr/local/apache2/logs/access_log
{
daily
create
rotate 30
}

一般只有源码包安装才需要这样加入,RPM包在安装时候会自动做日志

logrotate命令
logrotate [选项] 配置文件名
如果此命令没有选项,则会按照配置文件中的条件进行
日志轮替

  • -v:显示日志轮替过程。加了-v选项,会显示日志的轮 替的过程
  • -f: 强制进行日志轮替。不管日志轮替的条件是否已经 符合,强制配置文件中所有的日志进行轮替

三、 启动管理

1. CentOS 6.x启动管理

1.1 系统运行级别

运行级别

运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用 于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

运行级别命令

  • runlevel
    查看运行级别命令
  • init 运行级别
    改变运行级别命令

修改系统默认运行级别
vim /etc/inittab
id:3:initdefault:
系统开机后直接进入哪个运行级别,就把数字改为对应的数字

1.2 系统启动过程

系统启动流程
initramfs内存文件系统
CentOS 6.x中使用initramfs内存文件系统 取代了CentOS 5.x中的initrd RAM Disk。 他们的作用类似,可以通过启动引导程序加载到内存中,然后加载启动过程中所需要的内核模块,比如USB、SATA、SCSI 硬盘的驱动和LVM、RAID文件系统的驱动

  • 一个实验看initramfs文件系统

    - mkdir /tmp/initramfs
      立测试目录
    - cp /boot/initramfs-2.6.32-279.el6.i686.img /tmp/initramfs/ 复制initramfs文件
    - cd /tmp/initramfs/
    - file initramfs-2.6.32-279.el6.i686.img
    - mv initramfs-2.6.32-279.el6.i686.img initramfs-2.6.32-279.el6.i686.img.gz
      修改文件的后缀名为.gz
    - gunzip initramfs-2.6.32-279.el6.i686.img.gz
      解压缩
    - file initramfs-2.6.32-279.el6.i686.img
      cpio -ivcdu < initramfs-2.6.32-279.el6.i686.img
      解读cpio文件
    

调用/etc/init/rcS.conf配置文件
主要功能是两个:

  • 先调用/etc/rc.d/rc.sysinit,然后由 /etc/rc.d/rc.sysinit配置文件进行Linux系统初始化。
  • 然后再调用/etc/inittab,然后由/etc/inittab配 置文件确定系统的默认运行级别。

由/etc/rc.d/rc.sysinit初始化

  • 1、获得网络环境
  • 2、挂载设备
  • 3、开机启动画面Plymouth(取替了过往的 RHGB)
  • 4、判断是否启用SELinux
  • 5、显示于开机过程中的欢迎画面
  • 6、初始化硬件
  • 7、用户自定义模块的加载
  • 8、配置内核的参数
  • 9、设置主机名
  • 10、同步存储器
  • 11、设备映射器及相关的初始化
  • 12、初始化软件磁盘阵列(RAID)
  • 13、初始化 LVM 的文件系统功能
  • 14、检验磁盘文件系统(fsck)
  • 15、设置磁盘配额(quota)
  • 16、重新以可读写模式挂载系统磁盘
  • 17、更新quota(非必要)
  • 18、启动系统虚拟随机数生成器
  • 19、配置机器(非必要)
  • 20、清除开机过程当中的临时文件
  • 21、创建ICE目录
  • 22、启动交换分区(swap)
  • 23、将开机信息写入/var/log/dmesg文件中

调用/etc/rc.d/rc文件
运行级别参数传入/etc/rc.d/rc这个脚本之 后,由这个脚本文件按照不同的运行级别启动/etc/rc[0-6].d/目录中的相应的程序

  • /etc/rc3.d/K??开头的文件(??是数字),会按照数字顺序依次关闭
  • /etc/rc3.d/S??开头的文件(??是数字),会 按照数字顺序依次启动

2. 启动引导程序grub

2.1 Grub配置文件

grub中分区表示

硬盘 分区 Linux中设备文件 名 Grub中设备文件名
第一块SCSI硬盘 第一个主分区 /dev/sda1 hd(0,0)
第一块SCSI硬盘 第二个主分区 /dev/sda2 hd(0,1)
第一块SCSI硬盘 扩展分区 /dev/sda3 hd(0,2)
第一块SCSI硬盘 第一个逻辑分区 /dev/sda5 hd(0,4)
第二块SCSI硬盘 第一个主分区 /dev/sdb1 hd(1,0)
第二块SCSI硬盘 第二个主分区 /dev/sdb2 hd(1,1)
第二块SCSI硬盘 扩展分区 /dev/sdb3 hd(1,2)
第二块SCSI硬盘 第一个逻辑 /dev/sdb5 hd(1,4)

grub配置文件 vi /boot/grub/grub.conf

default=0 默认启动第一个系统
timeout=5 等待时间,默认是5秒
splashimage=(hd0,0)/grub/splash.xpm.gz
这里是指定grub启动时的背景图像文件的保存位置的
hiddenmenu 隐藏菜单
在CentOS7中为vim /etc/default/grub
title CentOS (2.6.32-279.el6.i686) title就是标题的意思
root (hd0,0) 是指启动程序的保存分区
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
定义内核加载时的选项
initrd /initramfs-2.6.32-279.el6.i686.img 指定了initramfs内存文件系统镜像文件的所在位置

2.2 Grub加密与字符界面分辨率调整

在开机选择内核界面可以按e进入里面破解root密码,这个时候为了安全,便需要给grub加密才能进入按e界面
grub加密
命令:
grub-md5-crypt
生成加密密码串
vi /boot/grub/grub.conf

在splashimage=(hd0,0)这一行前面写入
password --md5 刚刚生产的密码串
Password选项放在整体设置处
重启就可以了
CentOS 7.2以后使用 grub2-setpassword 直接设置密码

纯字符界面的分辨率调整

查询内核是否支持分辨率调整
grep “CONFIG_FRAMEBUFFER_CONSOLE” /boot/config-3.10.0-1127.el7.x86_64
显示 CONFIG_FRAMEBUFFER_CONSOLE=y
就为可以调整

再输入命令:
vim /boot/grub/grub.conf
内核的选项文件中
Kernel /vmlinuz- *******这句话后面加入 vga=791,便是调整1024*768 16位的分辨率,

具体数字对应分辨率见下表:

色深 640*480 800*600 1024*768 1280*1024
8位 769 771 773 775
15位 784 787 790 793
16位 785 788 791 794
32位 786 789 792 795

3. 系统修复模式

单用户模式
在登陆选择内核界面,按e键进入内核选项
单用户模式常见的错误修复

  • 遗忘root密码
  • 修改系统默认运行级别

修改密码:

CentOS7
找到linux16 这一行 在CN.UTF-8 后面加入
rd.break console=tty0
然后按ctrl+x
然后依次输入:
mount -o remount,rw /sysroot
chroot /sysroot/
passwd root 或者 echo 密码 | passwd --stdin root
在这之后会出现很多小方块 这行小方块是中文编码问题,不用管它。输一次密码回车,再输一次确认密码,回车。
接着输入:
touch /.autorelabel
sync
exit
exit
重启就OK了,使用新密码登陆

光盘修复模式

在忘记了grub密码的时候可以使用这个模式
在虚拟机中放入光盘iso文件,在虚拟机VMware界面读条的时候,快速按F2键,苹果系统可按fn+F2,进入刚开始学习安装的界面之后,选择上面第四栏BOOT,调到光盘启动CR-Drive为首选(按+号调节),F10保存。在安装节目选第三项Troublesooting 回车,选择第二项Rescue a CentOS system 回车,选择2 Shell模式 回车 回车 ,此时根目录已经被挂载到光盘下 /mnt/sysimage目录下
chroot /mnt/sysimage #改变主目录
grub2-setpassword
输入新密码即可

重要系统文件丢失,导致系统无法启动

假设丢了etc/inittab 文件,你可以在其他同版本的Linux查询到这个文件所在的包
chroot /mnt/sysimage #改变主目录
cd /root
rpm -qf /etc/inittab #查询下/etc/inittab文件属于哪个包。
mkdir /mnt/cdrom #建立挂载点
mount /dev/sr0 /mnt/cdrom #挂载光盘
rpm2cpio /mnt/cdrom/Packages/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittab
#提取inittab文件到当前目录
cp etc/inittab /etc/inittab #复制inittab文件到指定位置

在光盘修复模式下可以修改大部分问题。

Linux的安全性
Linux的安全性
所以安全性是相对的,这是给我们留的退路

四、 备份与恢复

1. 备份概述

Linux系统需要备份的数据

  • /root/目录:
  • /home/目录:
  • /var/spool/mail/目录:
  • /etc/目录:
  • 其他目录:

安装服务的数据

  • apache需要备份的数据
    • 配置文件
    • 网页主目录
    • 日志文件
  • mysql需要备份的数据
    • 源码包安装的mysql:/usr/local/mysql/data/
    • RPM包安装的mysql:/var/lib/mysql/

备份策略

  • 完全备份:完全备份就是指把所有需要备 份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录
  • 增量备份
    增量备份
  • 差异备份
    差异备份

2. dump和restore命令

dump命令
dump [选项] 备份之后的文件名 原文件或目录

- -level:就是我们说的0-9十个备份级别
- -f 文件名: 指定备份之后的文件名
- -u: 备份成功之后,把备份时间记录在/etc/dumpdates文件
- -v:显示备份过程中更多的输出信息
- -j: 调用bzlib库压缩备份文件,其实就是把备份文件压缩 为.bz2格式,默认压缩等级是2
- -W: 显示允许被dump的分区的备份等级及备份时间
  CentOS 7以前版本需要安装dump yum -y install dump下载

CentOS 7 以后版本使用xfsdump备份xfs文件系统

  • XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。
  • centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。
  • 与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。
  • 使用yum -y install xfsdump下载

只有在备份文件系统才能执行增量备份,执行1-9级别,文件和目录只能执行0级别

备份分区

dump -0uj -f /root/boot.bak.bz2 /boot/
备份命令。先执行一次完全备份,并压缩和更新备份时间 cat /etc/dumpdates
查看备份时间文件
cp install.log /boot/
复制日志文件到/boot分区
dump -1uj -f /root/boot.bak1.bz2 /boot/
增量备份/boot分区,并压缩
dump –W
查询分区的备份时间及备份级别的

备份文件或目录

dump -0j -f /root/etc.dump.bz2 /etc/
完全备份/etc/目录,只能使用0级别进行完全备份 ,而不再支持增量备份

restore命令
estore [模式选项] [选项]

  • 模式选项:restore命令常用的模式有以下四种,这四个模式不能混用。
    • -C:比较备份数据和实际数据的变化。
    • -i: 进入交互模式,手工选择需要恢复的文件。
    • -t: 查看模式,用于查看备份文件中拥有哪些数据。
    • -r: 还原模式,用于数据还原。
  • 选项:
    • -f: 指定备份文件的文件名

比较备份数据和实际数据的变化

mv /boot/vmlinuz-2.6.32-279.el6.i686 /boot/vmlinuz-2.6.32- 279.el6.i686.bak
#把/boot目录中内核镜像文件改个名字 restore -C -f /root/boot.bak.bz2 #restore发现内核镜像文件丢失

查看模式

restore -t -f boot.bak.bz2

还原模式

还原boot.bak.bz2分区备份
先还原完全备份的数据
mkdir boot.test
cd boot.test/
restore -r -f /root/boot.bak.bz2
#解压缩
restore -r -f /root/boot.bak1.bz2
#恢复增量备份数据
#还原/etc/目录的备份etc.dump.bz2
restore -r -f etc.dump.bz2
#还原etc.dump.bz2备份


原文地址:https://www.cnblogs.com/maqian/p/14411499.html