James Bryant

【转】服务管理/磁盘引导区恢复笔记

0
阅读(1380)

Linux运行级别:

  1. 单人模式:提供系统维护、找回root密码;
  2. 纯文字的多人网络模式;
  3. 图形界面模式;

系统服务:提供某些常驻性功能的运行程式。这些程式运行时常驻在内存。服务名称后都有一个d字母。

独立服务和非独立服务?

独立服务:服务是独立启动的,并常驻于内存,运行速度快。

非独立服务:xinted管理程序提供的socket或port对应的管理。它会根据用户要求启动相应的服务程序,请求结束就会关闭此程序。

早期的服务启动: SysV的init脚本程序管理特点。

  1. 所有服务的启动脚本都在/etc/init.d下,都是bash shell script脚本。

    /etc/init.d/daemon start

    /etc/init.d/daemon stop

    /etc/init.d/daemon restart

    /etc/init.d/daemon status

  2. 服务之间没有依赖性;
  3. 可以根据使用者自定义的执行等级来启动服务。

    1. 各执行等级的启动脚本是透过/etc/rc.d/rc[0-6]/SXXdaemon关连到/etc/init.d/damenon。S为启动该服务,XX为数字代表启动的顺序。
    2. 设置启动的方法:

      chkconfig [--level levels] name 预设开启|关闭|重设 服务,level参数设置某个级别。

      chkconfig –list [name] 显示所有(或某个)服务的运行状态

  4. 执行等级的切换:

    1. init 5:切换到5等级(图形界面);
    2. runlevel:查看当前等 级。
  5. INIT进程:/sbin/init程序,是系统第一个进程,PID(进程标记)永远为1;

    配置默认执行等 级:

  6. 其他系统初始化文件:

    /etc/rc.d/rc.sysinit

    •由init进程调用执行

    •完成设置网络、主机名、加载文件系统等初始化工作

    /etc/rc.d/rc脚本文件

    •由init进程调用执行

    •根据挃定的运行级别, 加载或终止相应的系统服务

    /etc/rc.local脚本文件

    •由rc脚本调用执行

    •保存用户定义的需开机后自动执行的命令

CentOS 7.X的新启动服务管理机制systemd:

  1. 所有服务并行启动,加速开机流程;
  2. on-demand启动模式:systemd搭配systemctl命令处理,任何要求on-demand要求都能立即处理daemon后续服务;
  3. 具有服务依赖性检查:如果B服务依赖A服务,则手动启动B服务时,systemd会自动启动A服务;
  4. 以功能分类各种服务:以服务单位(unit)区分为service,socket,target,path,snapshot,timer等不同类型(type);
  5. 将多个deamon集合成一个群组:兼容runlevel的设计;
  6. 向下兼容基本的init服务脚本。
  7. systemd的设定文件目录:

    1. /usr/lib/systemd/system:各服务的启动脚本文件,类似于/etc/init.d;
    2. /run/systemd/system:系统执行过程中产生的服务脚本,优先执行顺序比/usr/lib/systemd/system要早;
    3. /etc/systemd/system:各服务的启动链接文件,类似于/etc/rc.d/rc5.d/Sxx。

service restart和reload的区别?

常看进程信息的几个常用命令:

ps:

ps aux :显示所有当前的进程信息;

top:显示当前所有进程的动态信息。(按e可查看多核CPU,按q退出信息显示)

preg:查看进程终端号(进程ID)。

pstree –aup:显示进程树,显示进程的子进程(名称和ID)。

nice:调整进程的优先级。root用户下调整的优先级在-20至20之间,普通用户只限于0-20之间。

renice:动态调整进程优先级。(示例中的-5为要调整的优先级,-p为调整的进程ID)

后台运行程序,并如何将后台程序调到前台:

Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行;

jobs:查看后台运行的命令;

fg:将后台的进程恢复到前台运行,需指定任务序号;

sleep:将目前动作延迟到一段时间,时间长度,后面可接s\m\h\d(秒、分钟、小时、天数)。

终止进程的进行:

Ctrl+C

kill:

killall:

pkill:将某个登录用户踢出。

计划任务管理:

at:一次性执行任务。

例:

at 12:30 //设置12点半关机

at>shut down –h now

at> //Ctrl+D结束符

查看和删除一次性任务:

crontab任务:

格式: 分钟 小时 日 月 星期 <执行命令>

时间数值的特殊表示方法:

*:访范围的任意时间

,:表示间隔多个不连续的时间点

-:表示一个连续的时间点

/:指定间隔的时间频率

示例:

crontab –e: root编辑任务模式

crontab –e –u admin: 以admin用户来编辑执行任务

crontabl –l:root用户查看自己的计划任务列表

crontabl –l –u admin:查看和删除admin用户设置的计划任务

限制使用crontabl的用户:

备份MBR引导区:

模拟破坏MBR引导区:

用centos光盘进入恢复模式,在shell下挂载备份盘,恢复MBR并重启:

如何恢复grub引导配置文件:

(1)模拟破坏grub配置:

(2)重启后在grub提示符下键入引导命令进入系统:

(3)再把grub.conf文件恢复过来即可。

第二种方式:(使用光盘引导)

(1)进入光盘引导的shell界面下,使用chroot将sda1的boot目录挂载:

(2)挂载备份盘,并将grub.conf文件恢复:

(3)退出shell,再重启:

如何恢复被破坏的grub程序:

  1. 提前备份:

(2)模拟破坏:

(3)光盘引导:

(4)从备份中恢复:

假设没有备份的情况下,用在光盘启动后用如下方式修复:

忘记root密码的情况:

  1. 在启动菜单中按"e"键,进入如下菜单选项:

选择第2项kernel这一项,再按"e"编辑菜单项:

在编辑模式下,在命令后输入空格+1:

退回到菜单项,按b键重启动,进入单用户模式:

直接修改root密码,并重启即可:

  1. 假设菜单加密的情况下:

    grub –crypt形成加密字串:

    编辑grub.conf,加入加密字串:

    重启后,e键已失去作用:

    使用光盘启动,在shell下清除root密码:

    重启进入系统即可。

因某些故障导致无法向分区写入或读取内容:

  1. 挂载一磁盘分区进行模拟:

模拟分区已经破坏:

  1. 重启:

开机过程中提示文件系统有错:

fsck命令修复:

重启即可。

如果磁盘的i文件节点用完的情况下:

  1. 挂载磁盘,模拟i节点占用:

    查询挂载的磁盘的空闲i节点数。

    使用一脚本,占用所有的i节点:

    i节点用完,但仍有剩余的空间:

    这时必须删除细小的无用文件,才能恢复空闲的i节点。

    检查磁盘坏道:

Baidu
map