Linux系统管理干货总结笔记

Linux系统其实跟Windows系统一样,就是是在计算机上的一种操作系统

Linux系统——基于CentOS6

硬件、软件

软件:操作系统、软件应用

Linux由来:BSD系统(Unix系统的衍生版)——Unix系统——Minix系统——Linux系统

微软的常见DOS系统版本

Windows server 2008、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 10

常见的Linux发行版本

Red Hat 系列、Debian 系列、Ubuntu 系列、CentOS系列

Linux系统的分区目录结构表

Linux的分区目录结构跟Windows的目录结构不一样,虽然Linux也有不同盘的概念但是它是以树状结构进行分布,全部都在根目录下面,根目录下面就是各种目录,不像Windows分C、D、E盘,增加的分区需要挂载显示在/目录下(详情在后面分区)

系统文件:

  • EXT4:第四代扩展文件系统,用于存放文件和目录数据的分区
  • SWAP:交换文件系统,用于为Linux系统建立交换分区
  • XFS:是一种高性能的日志文件系统,擅长处理大文件

挂载:

  • /:根分区
  • /root:系统管理员(超级用户)的注目录
  • /home:用户的主目录
  • /bin:binary的缩写,存放着最常用的以命令
  • /var:存放着那些不断扩充的东西
  • /boot:这里存放引导启动Linux时使用的核心文件
  • /usr:提供给一般用户的目录,在这里适合装软件
  • /dev:这个目录下是所有Linux的外部设备
  • /sbin:存放着系统管理员的管理程序
  • /etc:这个目录里存放着系统最基本的动态链接共享库

Linux装系统的分区方案(红色为最低要求存在分区)

/根分区:建议大小>5GB(这个分区必须存在,因为Linux系统是以它为起点)

SWAP交换分区:建议大小是物理内存的1.5倍-2倍(相当于虚拟内存,当内存不够用的时候)

/boot:建议大小100MB      /usr:建议>3GB      /root:建议大小100MB-200MB        /var:建议>1GB

/tmp:将临时盘在独立的分区,可避免在文件系统被塞满时影响系统稳定性,建议大小>500MB

/home:建议剩下内存的全部

系统运行级别的分别和切换

init 【模式级别数】

0:关机状态,使用该级别时将主动关机

1:单用户模式,不需要密码验证即可登录系统,多用于系统维护

2:字符界面的多用户模式(部支持访问网络)

3:字符界面的完整多用户模式,大多数服务器主机运行在此级别

4:未分配使用

5:图形界面的多用户模式

6:重新启动

默认设置启动时启动的模式:

1.修改/etc/inittabl文件把参数改为你要每次默认启动的级别  2.命令:runlevel 3.init 【级别数】

系统重启命令:init 6或者shutdown -r now reboot  系统关机:init 0或者shutdown -h now poweroff

延时重启或关机(分钟)命令:shutdown –r +15

Linux常用的命令

Shell(位于/bin/bash文件):Linux系统中运行的一种特殊程序,在用户和内核之间充当翻译,用户登录Linux系统,自动加载一个shell程序,Bash是Linux系统中默认使用的shell程序

命令通用命令行的使用格式

命令字 【选项】 【参数】

命令字:整条命令的关键字,唯一确定的一条命令   注意:在linux命令环境中,对英文字母区分大小写

选项:调节命令的具体功能,决定这条命令如何执行,不同命令选项不一样

参数:命令字的处理对象(通常是文件名、目录名、用户名)

常用基础命令:

帮助命令--help:内部命令查询  --help:外部命令查询  man:所有命令说明书

管道|:先执行前面的命令后执行后面的命令   重定向输出>:把查询的信息打印到文件中

例:将查询ls命令详细的信息保存打印到test.txt文件文件——man ls | col –b > test.txt

查看、查找类命令:

pwd:查看当前所在的工作目录的位置——pwd

cd:切换到目录位置——cd 【绝对路径或相对路径目的目录】

绝对路径:从/根目录出发文件所在根目录下所在的位置

相对路径:相对当前所在的文件的位置

cd-:返回上次目录所在位置    cd:默认返回到/root目录   cd ./:当前目录     cd ../:返回上级目录

ls:查看目录及文件——ls 【选项】(后面可以跟相对或绝对路径目录)

-l:以长格式现实文件和目录

-a:显示所有的子目录和文件信息包括隐藏目录

-A:相似于-a但是有两个特殊隐藏目录不会显示

-d:显示目录的属性,不显示内容

-h:显示出目录或文件的大小,默认为B,-h为KB、MB等单位

-R:以递归的方式显示指定目录或文件大小

cat:文本输出命令,通常是用于观看某个文件的内容的——cat 【文件名】(如果不配合more和less超出屏幕上限将不显示)

more和less:通过采用全屏的方式分页显示文件,less为more的升级版有查找功能(配合cat命令使用)

head:只查看开头的一部分(默认查看前10行)——head 【选项】 【文件名】

-n:进行多行查看,n为显示的行数

tail:只查看开头一部分(默认查看后10行)——tail 【选项】 【文件名】

-n:进行多行查看,n为显示的行数

-f:动态查看文件,实时监控文件命令(一般拿来看日志)

which:查找当前所在目录下文件存放的目录——which 【文件名】(通常用来查询命令的存放目录)

find:查找文件或目录——find 【查找范围】 【查找条件】(比如-name、-user、-type、-size等)

-o:查找条件两个属性,满足一个就可以

-a:查找条件属性什么和什么,必须满足两个

统计、检索类命令:

du:统计目录及文件空间占用大小——du 【选项】 【目录对象】

-a:统计所有的文件空间占用大小

-h:统计大小显示单位

-s:只统计总占用大小

wc:用于统计文件内容的行数、单词数量、字节数——wc 【选项】 【文件目录对象】

-l:只查看行数

-w:只查看单词数

-c:只查看字节数

grep:用于检索和过滤文件内容——grep 【选项】 【过滤条件】

-i:查找内容时忽略大小写

-v:反条件查找(除了……其余全查找)

"*…"以…开头进行查找

"…*"以…结尾进行查找

文件目录创建、复制、删除、移动、压缩、解压缩类命令:

mkdir:创建创建目录——mkdir 【选项】 【目的目录】

-p:递归的方式创建

mkdir –p /home/a/b/c/d/e(依次按目录创建目录,如果目录下没有就创建,没有-p就是只创建最后d目录里的e目录)

touch:创建文件——touch 【文件名】

touch abc(相对路径) touch /home/abc(绝对路径)

cp:复制命令——cp 【选项】 【源目录文件名】 【目的目录文件】

-f:强制覆盖同名文件或目录

-i:覆盖目标同文件或目录是提醒用户确认

-p:复制时保持源文件的权限、属主和时间等属性不变

-r:递归复制所有文件和目录

rm:删除命令——rm 【选项】 【目录文件对象】

-f:强制删除文件或目录

-i:删除文件或目录是提醒用户确认

-r:递归删除整个目录树

mv:移动文件或目录——mv 【源目录文件】 【目的目录文件】

ln:创建快捷方式——ln 【选项】(没有则为硬链接) 【目的目录】(详细原因查看后面block和inode笔记解释)

-s:软链接:可以跨分区打开,删除原文件不能使用

硬链接:不能跨分区,必须和原文件在一个分区,删除原文件还可以使用

(默认创建的是硬链接)

tar:制作释放归档文件——tar【选项】【归档文件名】【源文件目录】tar【选项】【释放文件名】【目的文件目录】

  1. tar –zcvf:应用调用GZIP压缩工具创建一个归档文件并显示详细信息
  2. tar –zxvf:应用调用GZIP压缩工具释放一个归档文件并显示详细信息
  3. tar –jcvf:应用调用BZIP2压缩工具创建一个归档文件并显示详细信息
  4. tar –jxvf:应用调用BZIP2释放工具释放一个归档文件并显示详细信息

(需要调用前面的gzip或bzip命令)

-c:创建.tar格式的文件

-C:解压时指定释放的目标文件夹

-f:使用归档文件

-j:调用bzip2程序进行压缩或解压

-p:打包时保留文件目录的权限

-P:打包时保留文件目录的绝对路径

-t:列表查看包内的文件

-v:输出详细信息

-x:解开.jar格式的包文件

-z:调用gzip程序进行压缩或解压

vi/vim文本编辑器

工作模式:命令模式(默认)、输入模式、末行模式

输入模式的切换按下之后切换:

a:输入到光标所在位的后面

i:输入到光标所在位的后面

o:输入到光标所在行的下一行

A:光标跳到行尾

I:光标跳到行首

O:输入到光标所在行的上一行

ESC键退出输入模式

光标移动:Gg:跳到首行  GG:跳到尾行  nG:跳到n行

显示行号要进入末行模式   输入 :set nu 显示行号

删除操作:

Dd:删除光标所在行(删了不保留行数)

DD:删除光标所在行(删了保留行数)

Ndd:批量删除 , n是具体数字(从光标出向下n行)

d^:删除当前光标到行首的所有字符

d$:删除当前光标到行尾的所有字符

复制操作:

yy:复制当前行

nyy:批量复制 ,n是具体数字(从光标出向下n行)

粘贴操作:

p:粘贴 粘贴到光标位后

P:粘贴 粘贴到光标位前

撤销操作:

u:撤销一次编辑

U:撤消当前行所有的编辑

保存操作

ZZ:保存并退出

末行模式切换:按了之后切换:

:w:保存

:q:退出

:wq:(保存并退出)最常用

:q!:强行退出

:e:在当前打开的文件中,打开新的文件

:r:在当前打开的文件中,读入新的文件(复制到光标所在前)

替换文件内容:

:sub /old/new:将光标所在行中第一个old换成new

:n,m sub /old/new:将第n-m行的第一个old换成new

:%  sub /old/new:将所有行的第一个old换成new

:%  sub /old/new/c:将所有行的第一个old换成new , 并提示确认

:%  sub /old/new/g:将所有行的old换成new

常用的目录和命令(便捷笔记)

服务统控管理命令(CentOS6和CentOS7不一样,区别看最后比较的笔记)

service 【服务名】 start/restart/stop(开启/重启/停止)——立即生效,关机重启后失效

chkconfig 【服务名】 off/on(关闭/开启)——当前操作不生效,重启系统后生效(系统默认开机启动服务)

ntsysv 【--back】 --level 0-6——命令行的图形批量设置服务器|当前操作不生效,重启系统后生效(系统默认开机启动服务)

常用的服务:service iptables stop关闭防火墙(CentOS6版本中防火墙为iptables)

常用查询命令:

关机:halt  启动X Windows:startx   进入root权限:su  退出命令:exit  查看内核版本信息:uname -r(-n 查看主机名)

查看CPU信息:cat /proc/cpuinfo   查看内存信息:cat /proc/meminfo   查找主机名:hostname   查看网卡信息:ifconfig

常用的目录文件:

光盘:/media/     自动挂载文件:/etc/fstab      Linux启动的第一个进程init启动的第一个脚本程序:/etc/rc.d/rc.sysinit

安装及管理程序

应用程序与系统命令的关系

系统命令:一般在/bin和/sbin中

应用程序:通常在usr/bin和usr/sbin中

Windows安装程序默认安装在同一个目录下的子目录下

Linux安装程序默认在不同的目录下

安装常用的目录

/usr/bin  /usr/sbin  /etc  /var/log  /usr/share/doc  /usr/share/man

Linux常见的安装类型:

封装类型

说明

rpm软件包

扩展名为.rpm(Redhat的软件包)

Deb软件包

扩展名为.deb(Ubuntu的软件包)

源代码软件包

一般为.tar.gz和.tar.bz2等格式的压缩包

包含程序的原始代码

附带安装程序的软件包

install.sh和setup等安装程序以“.bin”的形式展现

绿色免安装的软件包

不用自行安装,已经编译好,解压就可以使用

rpm:安装卸载查询安装rpm包——rpm  -q【子选项】 【软件名称/程序名】(对已安装的应用软件包)

-qa:查询所有的软件

-qi:查询软件的详细信息  

-qc:只显示指定软件包安装配置文件

-ql:显示指定的软件包在当前系统中安装的所有目录、文件列表

-qd:只显示指定软件包安装文档文件

-qf 跟文件的名字:查看这个文件的由哪个软件包安装的(经常使用)

rpm:安装卸载查询安装rpm包——rpm -q【子选项】【孙子选项】  【安装包名】(对未安装的应用软件包)

-qpi:查看指定软件包的详细信息

-qpl:查看该软件将要安装的所有目标目录、文件列表

-qpd:跟上面已安装的软件d选项一样

-qpc:跟上面已安装的软件c选项一样

安装、升级、卸载RPM包——rpm 【选项】 【软件名称/程序名】 【辅助选项】(辅助选项只在需要时加上)

安装:rpm –i  安装的.rpm软件包,需要跟全名

卸载:rpm –e  卸载的.rpm软件包,不需要跟全名,只需要跟前面名字

升级:rpm –U  检查并更新系统中的某个软件包,若该软件包未安装则安装

更新:rpm –F  检测并更新系统中的某个软件包,若该软件包未安装则放弃

辅助选项(放在命令的最后)

--force:如果原来已经安装强制安装所指定的rpm软件包

--nodeps:安装、升级、或卸载软件时,忽略依赖关系,强制卸载

注意补充:安装时后面跟h选项表示百分比显示安装的进度,跟v选项显示安装的详细过程

例:rpm –ihv 【软件包名】

维护RPM数据库

重建数据库

  1. rpm –rebuilddb
  2. rpm –initdb

注意:如果rpm工具软件损坏就重新源代码编译安装

源代码编译安装过程(这里用源码安装httpd软件为例)

1.查询系统是否已经使用rpm安装过这个包(如果已经安装则卸载后进行源码安装)

2.下载源码程序包 .tar.gz或.tar.bz2文件

3.解压源码包——tar zxvf httpd.tar.gz -C /home/usr/httpd

4.配置然后进入解压文件夹,运行配置脚本(自定义过程)——./configure --prefix =/home/usr/httpd(路径自定义改变)

5.make编译——make

6.make install 安装——make install

7.修改配置文件

8.启动

9.测试使用

用户和组账号概述

用户账号分类:(可以创建用户吧UID设置1-499这样就可以隐藏)

超级用户:root  0    UID号范围

普通用户:500—60000

程序用户:1—499

用户账号密码管理

所有的用户名称、宿主目录、shell基本信息:文件位置:/etc/passwd(每一行对应一个用户的账号记录)

保存用户的密码、账号有效期等信息:文件位置:/etc/shadow(每一行对应一个用户的密码记录)

UID和GID

UID(usdr IDentity  用户标识号)

GID(group identify  组标识号)

root ID号永远为0   bin永远为1   

0密码最短有效天数

主要的用户初始配置文件:

~/.bash_profile:用户每次登陆时执行

~/.bashrc:每次进入新的bash环境时执行

~/.bansh_lggout:用户每次退出登录时执行

usradd:创建用户——useradd 【选项】 【用户名】

-u:指定(修改)用户的UID号

-d:指定(修改)用户的宿主目录位置

-e:指定(修改)用户的账户失效时间,可以用YYYY-MM-DD的日期格式

-s:指定用户的登录shell

-l:更改用户的账户的登录名称

新建用户账号时,从模板目录etc/skel目录中复制而来

passwd:设置/更改用户口令——passwd 【选项】 【用户名】

-d:清空指定用户密码,仅使用用户名即可登陆

-l:锁定用户账户

-S:查看用户账户的状态(是否被锁定)

-u:解锁用户账户

usermod:修改用户账号——usermod 【选项】 【用户名】

-u:修改UID

-d:修改宿主目录

-e:修改失效时间

-s:指定用户的登录shell

-l:更改登录名(Login Name)

-L:锁定账户

-U:解锁账户

userdel:删除用户账号——userdel 【选项】 【用户账号】

-r:同时删除宿主目录

组账号管理

保存组账号基本信息文件位置:/etc/group      保存组账号的密码信息文件位置:/etc/gshadow

groupadd:创建组账号

-g:添加指定组账号

gpasswd:添加用户

-a:添加一个用户

-d:删除一个用户

-M:定义组员,可批量定义,但会删除原组员

groupdel:删除组账号——groupdel 【组账号名】

注意:groupdel需删除组内成员后才能删除组

查询账号命令:

id:查询用户账号的身份标识

groups:粗挨训用户账号所属的组

finger:查询用户账号的登录属性

users:查询当前登录账号

w:查询当前主机的用户登录情况

who:查询当前主机登录用户

whoami:查询当前登录账号

查看文件的权限及归属:

R:4 读取权限 (允许查看文件内容、显示文件夹列表)

w:2 写权限(允许修改文件内容,允许在没有了中新建,移动,删除文件或子目录)

x:1 可执行权限(允许运行,切换目录)

属主权限 属组的权限 其他权限

r w x

r w x

r w x

7

7

7

文件目录权限展示格式:【文件类型】【文件所有者权限】【用户组权限】【组员权限】

目录默认权限:755   文件默认权限:644        如:-rw-r--r--(一般文件权限格式,权限为:644)

chmod:设置文件权限——chmod 【u g o a】【+-=】【r w x】【文件名】或者chmod 【nnn】【文件名】(每个n为权限数)

u:user,用户

g:group,组

o:other,其他人

a:all,所有

-R:递归修改子目录中所有子项的权限

chown:修改文件拥有者——chown 属主【:组名】【文件名】

-R:递归修改目录

chattr:修改特殊权限——chattr 【+-=】【选项】
i:任何人都不可以修改文件

a:只能追加,不可以删除文件内容(不能用文本编辑器vim追加,只能用程序追加)

s:文件属组设置s后,文件将以root身份执行, 必须有x权限才能设置

t:设置粘贴位,特殊的删除文件,只有文件的属主和root才能删除这个文件

lsattr:显示文件底层属性——lsattr 【选项】
-a:显示所有文件属性

-d:显示目录属性

-R:递归显示

注意:还有特殊的权限

chmod a+s 文件:设置后只有root可以修改,需先设置x权限

chmod a+t 文件:设置后只有root及属主用户可删除

umask:设置新建文件时的默认权限——umask 000(默认为777)

磁盘管理

基本磁盘:包含主磁盘分区、扩展分区、逻辑分区

分区方式:MBR(只能分四个区)  GPT(可以分很多个区)

文件系统:ntfs、fat32、ext4、xfs        

磁盘创建步骤

1.联机磁盘 2.设置成动态硬盘 3.选择添加分区卷

分区卷分类

  • 简单卷:单个磁盘就可以创建
  • 跨区卷:跨磁盘分区,至少两个磁盘,容量可以不一样,用完第一个再用第二个,全部容量能用
  • 带区卷:跨磁盘分区,至少两个磁盘,容量一样,文件均分配(不安全)
  • 镜像卷:跨磁盘分区,至少两个,容量一样,文件第二个磁盘自动备份(安全,但是容量使用大)
  • RAID5:跨磁盘分区,至少三个,容量一样,每个磁盘会生成奇偶数校验码(安全,常用,其中一个磁盘损坏可以通过其他磁盘恢复)

Linux系统装好之后的磁盘管理

fdisk:磁盘分区操作——fdisk 【磁盘硬盘目录】(进入交互工具界面进行对该硬盘分区)

-l:查看磁盘信息

磁盘分区步骤:

1.进入磁盘分区操作界面

fdisk /dev/sdb(添加的硬盘在/dev目录下,进入磁盘操作界面)

2.进入之后,添加分区

m是帮助查看选项

n:添加新分区     t:更改文件的类型(不同类型文件有不同id)

d:删除分区     w:保存   q:退出

e:创建扩展分区        p:创建主分区(可以分1-4个)

Partition number (1-4): 添加第几个磁盘

First cylinder (1-10443, default 1):直接默认就好

Last cylinder, +cylinders or +size{K,M,G} (10-10443, default 10443): +磁盘大小

修改ID:

Command (m for help): t

Partition number (1-4): 第几个分区

Hex code (type L to list codes): 修改成什么文件的id

Changed system type of partition 3 to 82 (Linux swap / Solaris)

l:查看不同文件的id

3.格式化(创建文件系统)

设置为ext4(默认)命令(有两种方式)——mkfs.ext4  /dev/sdb1或者mkfs.ext –t ext4  /dev/sdb2

设置为swap(交换分区)命令——mkswap  /dev/sdb3

启用swap命令——swapon  /dev/sdb3

关闭swap命令——swapoff  /dev/sdb3

4.挂载

mount:挂载——mount 【存储设备】 【挂载目录】mount  -o  loop  【ISO镜像文件】  【挂载目录】(镜像文件挂载)

umount:卸载挂载——umount 【已挂载的目录】

开机自动挂载

用vim修改/etc/fstab文件——vim /etc/fstab(直接末行下面添加即可)

格式:/dev/sdb1  挂载目录 ext4(文件类型) deaults(默认) 0(是否备份) 0(是否检测)(如下图)

注意:如果使用mount命令进行挂载只是暂时的,重启就会失效,自动挂载重启也会存在

动态磁盘的管理

LVM逻辑卷的管理

动态调整磁盘容量,灵活地增加减少磁盘容量

注意:/boot分区不能基于LVM创建

Systen-config-kxm:图形工具

PE:管理卷的最小单位(4MB)    注意:创建分区必须为4MB的倍数

PV:物理卷  VG:卷组  LV:逻辑卷

创建LVM逻辑分区步骤:

1.普通磁盘分区

(对sdb和sdc进行创建分区把id都改为8e

fdisk  /dev/sdb        fdisk  /dev/sdc

2.LVM逻辑卷创建

创建物理卷——pvcreate 【设备名】 【设备名】    例:pvcreate /dev/sdb1 /dev/sdc1

创建卷组——vgcreate 【卷组名】 【创建的物理卷名】   例:vgcreate vg-name /dev/sdb1 /dev/sdc1

创建逻辑卷——lvcreate –L 【容量大小】 -n 【逻辑卷名】 【创建的卷组名】   例:lvcreate –L 100G -n lv-name vg-name

3.格式化——mkfs -t ext4 /dev/vg-name/lv-name

4.LVM逻辑卷挂载(跟之前的磁盘挂载一样)

mkdir /lvm(根目录下创建文件目录方便挂载)

mount /dev/vg-name/lv-name /lvm

实际操作如下图:

开机自动挂载:用vim修改/etc/fstab文件

格式:/dev/vg-name/lv-name  挂载目录 ext4(文件类型) deaults(默认) 0(是否备份) 0(是否检测)

补充:

逻辑卷扩容——lvextend –L 【+添加的容量大小】 【需要添加的设备】然后resize2fs 【目标设备名】

例:lvextend -L +10G /dev/vg-name/lv-name

resize2fs /dev/vg-name/lv-name

逻辑卷的减小

注意:必须按照步骤严格实行,否则可能会丢失数据

建议先备份分区中的数据再执行

  • 对咬减小容量的文件系统卸载挂载(根文件系统无法卸载)

使用umount命令

  • 使用e2fsck -f 检测lv的文件系统
  • 使用resize2fs减小文件系统的大小

resize2fs /dev/vg-name/lv-name(减小之后的大小)

  • 减小逻辑卷LVM的大小(lvreduce或lvresize这一步最好用PE的数量)

磁盘配额(限制用户或用户组对的使用容量)

注意:Linux内核支持操作,先检测有没有装quota软件包

使用rpm -q quota命令查询

限制的范围:分区

限制对象:用户账号、组账号

可以限制的类型:容量、文件数量

限制方法:软限制(只提醒)、硬限制(直接限制超过则不行)

注意:查询selinux是否开启状态

getenforce:查看selinux状态

使用vim进去把SELINUX值修改成disabled,enforcing为开启状态

命令修改selinux状态

setenforce 0(0为关闭1为启动)

配额限制命令操作步骤:

1.把需要限制的分区以支持配额的功能进行挂载

mount -o usrquota,grpquota /dev/vg/lv  /LVM

补充:如果已经挂载了

mount -o remount,usrquota,grpquota /dev/vg/lv  /LVM

开机自动以配额限制设置挂载(defaylts后面多了usrquota和grpquota)

2.生成并修改配额文件

quotacheck -augcv

补充:因为没有启动服务所以没有成功

service quota_nld start:quota服务启动命令

chkconfig quota_nld on:设置当前不启动下次默认启动

再次输入命令成功

3.修改配额文件

注意:直接使用vim查看配额文件会乱码,以二进制形式,所以用命令进入

edquota -u 【要限制的用户名】

修改用户的配额文件

edquota -g 【要限制的组名】

修改用户组的配额文件

blocks:已使用容量  inodes:已用文件数量 soft:软限制容量 hard:硬限制

4.启动配额功能

quotaon -ugv /LVM(挂载到的目录)

5.验证

先进入限制配额的用户进行测试

dd if=/dev/zero of=/LVM/test.txt bs=1M count=10

意思是将/dev/zero文件复制到/LVM/目录下创建test.txt文件写入每次1M大小,执行10次

补充:查看配额

quota -u 【查询的用户名】

quota -g 【查询的组名】

RAID磁盘阵列(软操作、硬操作)

RAID0:相当于带区卷        RAID1:相当于镜像卷

RAID5:至少3个硬盘以上,占用1/n的容量存放奇偶校验码,只能坏1个硬盘(n为硬盘数)(公司最为常用)

RAID6:至少4个硬盘以上,占用2/n的容量存放奇偶校验码,能坏2个硬盘(n为硬盘数)

RAID1+0:相当于RAID0和RAID1的结合,实际使用容量为1/2

RAID卡(软操作)方法

等待更新。。。。。。

RAID磁盘阵列使用硬操作(没有RAID卡)方法

1.创建RAID5

创建4硬盘分区并把id改为fd

mdadm -C /dev/md5 -l5 -n3 /dev/sd{d,e,f}1 -x1 /dev/sdg1

-C:创建

-l:版本等级

-n:启用硬盘数量

-x:备用硬盘数

2.格式化——mkfs -t ext4 /dev/md5

3.挂载——mkdir /MD5(根目录下创建文件目录)然后mount  /dev/md5  /MD5

3.测试

mdadm –D /dev/md5(查看md5的情况)

mdad –f /dev/md5/sdd1(删除md5上的sdd1硬盘)

这个时候看到sdg1不是空闲,直接用上了,说明实验成功

3.配置成开机启动

mdadm --detail --scan > /etc/mdadm.conf

对这个文件做一下改动,将组成RAID5的设备名全部加到该文件中

设置启动时自动挂载

程序与进程的管理

查看进程命令:

ps:查看进程

ps aux:当前终端的之前运行过得进程

ps -elf:所有终端的之前运行过得进程

top:查看动态的进程信息

P键:按CPU占用情况进行排序

M键:按内存占用情况进行排序

N键:启动时间

q:退出

空格键:强制更新

pgrep:按条件查询进度

pstree -aup:查看进程树

查看系统状态

lsof sof(list open files):一个列出当前系统打开文件的工具

iostat:

I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视

特点:汇报磁盘活动统计情况,同时也会汇报出CPU的使用情况

sar:

启动进程的方式

手动启动:前台启动(直接执行)、后台启动

调度启动:

一次性计划任务

需要查看atd服务状态:service atd status

at 【时间】 【日期】

例:at 12:00  2019-12-04

比如:shutdown -h now

Ctrl+D进行提交

atq:查看计划文件

atrm:进程号删除计划文件

周期性计划任务(常用知识点)

crontab:周期性计划任务

文件目录:/etc/init.d/crond

-e:进入vim样式界面进行编辑计划

-l:查看周期性计划列表

-r:全部删除

-u:指定所管理的计划属于哪个用户

格式:分,时,天,月,星期(顺序不能改)run_command/任务命令

时间表示:

“*”:表示默认所有,每

“,”:时间隔断,不如星期135(1,3,5)

“-”:表示一个区间范围“1-5”

“/”表示时间的间隔频率“0-23/2”表示每两个小时执行一次

注意:看放在哪个位置放在分钟上就是每两分钟执行一次

进入之后的界面

结束进程

kill:对进程号杀死(格式跟PID号)

killall:杀死一批进程

pkill:按指定条件杀死进程

pkill -U:指定用户 -t:指定tty -9:强制终止进程

系统故障分析和排除

一般型故障

日志管理(可以用于记录查询系统、程序运行中发生的各种事件)   存放目录:/var/log

常见的日志优先级:

内核及系统日志

rsyslog程序管理日志

rsyslog.---.rpm

/sbin/rsyslogd

/sbin/rsyslog.conf:配置文件

/var/log/cron:系统定期执行计划任务时产生的日志

/var/log/maillog:邮件日志

/var/log/message:记录Linux操作系统常见的系统和服务错误信息

用户日志

/var/log/lastlog:记录最近用户登录时间

/var/log/secure:与用户相关的安全事件

注意:只有这个是非二进制文件,可以使用cat head less查看

/var/log/wtmp:用户登录、注销和系统开、关机事件

/var/run/utmp:当前登录的每个用户的详细信息

last:查询成功登录

lastb:查询失败登录

也可以命令whoami、users、who、w查看

日志过滤三剑客:grep(横向过滤)、awk(纵向过滤)、sed(可以修改)等过滤工具

程序日志

/var/log/QQ        /var/log/http

日志被人串改删除的安全措施:

1.建立邮件服务器,定时把日志邮件发送到服务器进行备份

2.设置特殊权限(一般没用,别人能黑进你的服务器就能串改你的权限)

3.做好警告服务,进行什么操作发短信或邮件通知

4.做日志集中管理(最安全的)

文件系统类故障——ext4

文件系统将文件数据和属性(权限、属主等)分别存放在 inode 、block

硬盘存储最小存储单位为扇区(512字节)

连续8个扇区组成一个block 用于存储数据

元数据(文件的节点数、uid、gid 、权限、时间戳)存放在inode内

注意:使用ls命令相当于查看的是inode里存放的属性

这个就是inode号

ln -s:软链接(block一样,inode不一样,所以删除源文件就无法打开)

ln:硬链接(inode一样,block不一样,所以每个都可以独立存在打开)

常见的文件系统故障例子

1.创建正常的分区保存文件

2.模拟损坏/dev/sdb1分区

先不挂载,复制文件进去把第一个512字节占用满导致找不到这个分区

dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

之后进行挂载会显示无法挂载

3.修复分区表的信息

fsck -y -t ext4 /dev/sdh1

4.再次进行挂载检查文件

模拟资源耗尽(会出现磁盘空间剩余很多但是装不下文件)(inode号用完)

1.创建写一个循环脚本test.sh给这个文件增加权限到777

sh test.sh:运行这个文件

df -i:查看节点

ls -i:查看进度

2.处理inode号耗尽的方法

删除清理磁盘分区里的文件

设置磁盘配额(参考上面磁盘配额笔记)

文件恢复

1.安装extundelete数据恢复工具

e2fsprogs-libs e2fsprogs e2fsprogs-devel(需安装下面有依赖的软件)

2.模拟删除文件恢复

通过inode号来进行恢复——extundelete  /dev/sdb1  --inode 2

通过文件名恢复——extundelete /dev/sdb1 --restore-file passwd

通过目录名称恢复(空目录是不会被恢复的)——extundelete  /dev/sdb1 --restore -directory  /usr

恢复所有文件和目录(不包括空目录)——extundelete /dev/sdb1 --restore-all

3.重新挂载

系统启动类故障

CoentOS开机启动步骤:开机自检(BIOS) ——》MRB引导 ——》grub菜单——》加载内核(kernel)——》init进程初始化

如下图所示内核加载的过程图:

故障的修复:

系统故障——MBR扇区故障:

故障原因:

1.病毒、木马等造成的破坏

2.不正确的分区操作、磁盘读写错误

故障现象:

1.找不到引导程序,启动中断

2.无法加载操作系统,开机后黑屏

解决方法:

1.提前做好备份文件

2.以安装光盘引导进入急救模式

3.从备份文件中恢复

修复MBR扇区故障步骤:

1.备份MBR扇区数据

准备一个独立的磁盘分区

备份——dd  if=/dev/sda   of=test/mbr.bak  bs=512  count=1

2.模拟破坏

dd  if=/dev/zero  of=/dev/sda     bs=512   count=1

显示:opration system not found.

3.光盘进入修复模式

挂载/dev/sdb1

4.恢复MBR

dd if=/aaa/mbr.bak

系统故障——Grub故障:

1.备份/boot/grup/grup.conf

2.模拟破坏

3.进入急救模式

# chroot/mnt/sysimage

cd /home

cp grup.conf.bak  /boot/grup/ grup.conf

grup-install /dev/sda(重建)或手动直接写入

root密码的破解

方法1:

  • 进入单用户模式,重设密码
  • 引导进入grub菜单模式
  • e进入编辑模式
  • Kernel 按e键进入编辑
  • 行的最后 single 或s 或 1
  • 按回车键
  • 按b进入单一用户模式
  • 输入passwd root 修改密码            

方法2:

  • 进入急救模式,重设密码
  • 直接用光盘引导进入急救模式
  • chroot/mnt/sysimage
  • sh-4.1 # passwd root

CentOS7与CentOS6区别

初始化技术:Sysvinit技术 、 Upstart技术 、 Systemd技术

(CentOS6)Sysvinit技术:

系统唯一的第一个进程init,不能Kill掉(所有进程的父进程)

按照一定顺序启动相应的子进程,启动有点慢

Upstart技术:

Sysvinit技术的优化版,做了大量的优化,缩短启动时间

但是最基础的还是Sysvinit技术。还是以init启动进程开始

其中任然有 —— service  chkconfig

系统运行级别 : 0-6

(CentOS7)Systemd技术:

systemd代替init 成为第一个进程。后续程序并行启动。

systemctl  start  服务 代替了 service 服务。

systemd进程取代了init运行级别也由target代替

看下图对比:

CentOS7服务管理命令的区别

CentOS6使用:chkconfig  或 /etc/init 和 service

CentOS7使用:systemctl进行了统一,兼容 SysV 和LSB的启动脚本,而且能够在进程启动过程中更有效的引导加载服务

CentOS7里不推荐使用/etc/rc.local,但是如果要使用,必须加执行权限,才可以正常使用——chmod +x /etc/rc.d/rc.local

发布了15 篇原创文章 · 获赞 4 · 访问量 8530

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/103408609