RedHat Linux 系统管理(1-4)

第二章 硬件和设备配置

  • 一些命令
    lsmod 当前装载的内核模块列表
    dmesg 内核日志
  • 一些虚拟文件
    /proc/meminfo 内存信息
    /proc/cpuinfo CUP信息

第三章 Linux 文件系统管理

磁盘识别和分区

  • 磁盘分区
    Linux通过不同的设备节点区分各个分区, 节点名字有磁盘名加分区号组成
    如驱动器/dev/sda上的第一个分区叫做/dev/sda1

    • 主引导记录(MBR)
      每个磁盘的头512字节, 它包括引导程序分区表
      主引导记录中有固定64字节保留为磁盘分区表, 最多能记录四个分区, 这四个分区叫做主分区
    • 主分区
    • 扩展分区
      可以将主分区作为扩展分区使用, 一旦这样使用后就不能作其他用途.
    • 逻辑分区
      扩展分区中可以建立多个逻辑分区
  • 使用fdisk分区

    • fdisk -l 列出所有已知磁盘分区表
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1           5       40131   de  Dell Utility
    Partition 1 does not end on cylinder boundary.
    /dev/sda2   *           6         527     4192965   83  Linux
    /dev/sda3             528       26635   209712510   83  Linux
    /dev/sda4           45007       60801   126873337+   5  Extended
    /dev/sda5           45007       45019      104391   83  Linux
    /dev/sda6           45020       60801   126768883+  8e  Linux LVM

    第一行:磁盘容量500.1GB
    第二行:驱动器几何结构, 每个柱面(cylinders)有多个磁头(head), 每个磁头有多个容量为512字节(byte)的块组成. 则每个柱面的容量大约为
    512 bytes/head * 255 heads / sector * 63 sectors / cylinder = 8225280 bytes
    第三行: 上述计算结果
    第四行: 分区表

    fdisk 列定义
    设备(device) 指向分区的设备节点
    引导(boot) 标*表示可以引导
    开始结束 分区开始和结束的柱面
    块 以1kb为单位的分区大小
    Id 分区类型(用途)
    System Id定义的分区类型的文本名称

  • 使用fdisk和使用命令菜单
    fdisk /dev/sda
    常用fdisk命令

命令 功能
m 列出命令菜单
p 打印分区表
n 创建新分区
d 删除分区
t 改变分区类型
q 不保存退出
w 保存退出
  • partprobe 命令可以让内核读取所做的修改

建立和管理文件系统

  • 文件系统
    • inode
    • dentry
    • data
  • 创建文件系统
    • mkfs -t
    • mkfs.ext2
    • mkfs.ext3
    • mkfs.vfat
    • mkfs.msdos
  • 使用dumpe2fs 查看文件系统
    • dumpe2fs /dev/sda4

挂载文件系统

  • 挂载文件系统
  • 使用mount命令挂载文件系统
    mount /dev/sda4 /dir -t ext2 -o noatime,noexec

    • 挂载什么设备
    • 挂载到哪个目录
    • 设备是什么文件系统格式
    • 挂载文件系统选项
      ro,rw 只读, 读写
      (a)sync 同步进行时不需要内核缓冲, 会显著降低磁盘性能
      (no)atime 是否维护文件访问时间
      (no)dev 文件系统内所有文件都不要解释为设备节点
      (no)exec 文件系统内所有文件都不要解释为可执行
      (no)suid suid权限是否忽略
  • 使用umount卸载文件系统
    umount 设备名或者挂载点

  • 使用fuser或lsof找到使用文件系统的进程
    • fuser -a /home
    • lsof /home

/etc/fstab文件

  • /etc/fstab 文件语法
示例 任务
1 /dev/hda6 要挂载的设备
2 /home 挂载点
3 ext3 设备上的文件系统
4 defaults 挂载相关选项列表
5 0 dump命令使用它决定在进行备份时是否要将这个分区存档
6 2 fsck顺序, 1 保留给跟分区 2 除了根分区外的所有需要检查的分区 0不需检查

管理交换空间

  • 交换空间
    • Linux 中交换空间可以是一个单独的分区或为已经存在的(并且被挂载的)文件系统中的一个文件.
    • 监控交换空间
      /proc/swaps
      /proc/meminfo
  • 使用mkswap初始化交换空间
    mkswap /dev/sda4
    cat /proc/swaps
  • 使用swapon激活交换空间
    swapon /dev/sda4
    cat /proc/swaps
  • 使用swapoff停用交换空间
    swapoff /dev/sda4
  • 在/etc/fstab中定义交换空间
    /dev/sda4 swap swap defaults 0 0
  • 使用交换文件
    • dd if=/dev/zero of=/tmp/swap bs=1024k count=256
    • mkswap /tmp/swap
    • swapon /tmp/swap

其他文件系统命令

  • e2label
    显示或设置文件系统的标签
  • 使用fsck修复文件系统(file system check)
  • tune2fs
    修改已有ext2或ext3文件系统的参数

SELinux: Secure Enhanced Linux

  • 启用SELinux
    • /etc/sysconfig/selinux
    • setenforce
      setenforce 0 permissive
      setenforce 1 enforcing
    • getenforce
  • 查看SELinux上下文

    • ps -Z
    • ls -Z
      用户:角色:类型
  • 监控SELinux违规行为
    /var/log/messages

    • 违反规则的进程
    • 禁止访问的文件
    • 禁止行动的详细信息 sealert -l xxxxx

    /var/log/audit/audit.log

    • 违反策略的行动
    • 引起违规的进程
    • 被访问文件
    • SELinux上下文和目标文件
  • 修改文件的SELinux上下文

  • chcon

第四章 系统初始化和服务

引导程序概述

  • BIOS
    • POST系统自检
    • 初始化键盘/视频设备/I/O端口/串口等
    • 移交执行区域到引导程序
  • 引导程序
  • 内核
  • /sbin/init

GRUB引导程序

  • 引导程序的功能
    • 编写内核命令行
    • 必要情况下, 装载虚拟磁盘(initial ram disk)
    • 装载并传递控制权给Linux内核
  • 引导程序的设计
    • stage1
      定位装载并把控制权给第二阶段(第一阶段的引导程序在MBR中)
    • stage2
      文件系统中的二进制文件

/sbin/init和运行级别

  • /sbin/init
    内核启动的第一个进程, 跟随系统启动, 并且最后终止, 它负责启动停止和监控其他进程, 它的配置文件是/etc/inittab
  • 运行级别
    0 关机
    1 单用户模式, 只有root用户能在控制台登录, 不会激活网络接口
    2 没有网络文件系统
    3 完整的多用户模式
    4 本地配置
    5 带有X服务器的多用户模式
    6 重启

  • /etc/inittab语法
    除掉第一行, 都是用:分开的四行

  • 第一行: 没有意义的双字母标签
  • 与本行相关的运行级别列表
  • 预定义动作
  • 要运行的命令

第三个字段定义的动作

  • respawn init启动并监控指定的命令
  • wait init在进入相应的运行级别时启动进程, 做其他工作前等待其结束
  • ctrlaltdel 在控制台按下CTRL+ALT+DEL时init执行的动作
  • powerfail init收到UPS信号时执行的命令

系统初始化和运行级别管理的/etc/inittab配置

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

系统启动时执行脚本/etc/rc.d/rc.sysinit
运行级别每改变一次/etc/rc.d/rc都会重新执行一次

外部事件的/etc/inittab配置

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

/sbin/init和getty

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

管理init

  • runlevel命令查看当前运行级别和以前的运行级别
  • init q 应用对/etc/inittab的更改

使用shutdown命令关闭机器

shutdown的选项

-h    停止机器后切断电源
-P    关闭电源
-r    重启
-c    取消排队的关机任务

shutdown命令的时间参数

hh:mm    关机发生的绝对时间
+n       关机发生的相对时间, 距离现在n分钟
now      = +0

/etc/rc.d/rc.sysinit脚本

  • rc : run level control

红帽企业版Linux服务脚本

  • 使用相应的运行级调用脚本/etc/rc
  • /etc/rc.d/init.d 目录中的服务脚本都是红帽企业版Linux的服务
    使用命令 service serviceName command 操控服务
  • 服务脚本命令

    • start
    • stop
    • restart
    • status
    • reload
    • condrestart 如果服务已经运行, 重新启动, 否则什么也不做

    服务运行级别和chkconfig

    • /etc/rc.d/rcN.d目录下面有一些这样的脚本Lddservice_name
      L代表S或K
      dd是两位数字
      每当运行级别改变时, init就会调用rc脚本, K开头的服务如果在运行, 会用stop调用相应的脚本, S开头的服务会用start调用相应的脚本
      数字则提示了这些操作的顺序
      chkconfig可以配置这些服务是否启动

本地启动配置
- /etc/rc.local

启动顺序故障排除

  • system-config-service可以用来管理服务
  • 添加内核命令行参数 init=/bin/sh 可以启动一个交互式shell

    • mount /proc
    • mount -o remount,rw /
    • mount -a
    • exit 会kernel panic pid为1的进程退出了

    • 问题处理结束后

    • umount -a
    • mount -o remount,ro /
    • umount /proc
    • exec /sbin/init

你可能感兴趣的:(Linux,linux)