欢迎大家又来学习了。
一.磁盘和文件系统:
主分区:最多四个
扩展分区:做多一个
逻辑分区:IDE硬盘最多59个逻辑分区
SCSI硬盘最多支持11个逻辑分区
1.检测查看硬盘:fdisk -l 磁盘设备
2. 在交互式的操作环境中管理磁盘分区:fdisk 磁盘设备
交互常用指令:
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区并退出
3.创建文件系统:mkfs -t 文件系统类型 分区设备
4.创建XFS文件系统:mkfs -t xfs 分区设备
5.创建FAT32文件系统:mkfs -t vfat -F 32 分区设备
选项:-F 指定FAT的版本
6.创建交换文件系统:mkswap 分区设备
swapon:启动交换分区
swapoff:停用交换分区
7.重新读取分区表信息:partprobe
LVM:逻辑卷管理 #动态调整磁盘容量
8.图形界面管理工具:system-config-lvm
LVM机制:PV VG LV
功能:
scan扫描
create建立
display显示
remove删除
extend扩展
reduce减少
主要命令:
pvcreate 设备名1 设备名2
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
ext4格式增减:
lvresize -L +200G /dev/Vgtest/Lvtest #增加200G容量
e2fsck -f /dev/Vgtest/Lvtest #强制检测文件系统
resize2fs /dev/Vgtest/Lvtest #刷新
umount /dev/bdqn #如果要减少容量需要先挂载光盘
e2fsck -f /dev/Vgtest/Lvtest #对lv强制执行文件系统检测
resize2fs /dev/Vgtest/Lgtest #使用resize2fs对lv逻辑卷的逻辑边界空间大小调整为缩减后的大小
resize2fs /dev/Vgtest/Lgtest #使用resize2fs对lv逻辑卷的逻辑边界空间大小调整为缩减后的大小
9.磁盘配额:
作用范围:针对指定的文件系统
限制对象:用户,组
限制类型:磁盘容量,文件数量
限制方法:软限制(soft) 硬限制(hard)
启动磁盘配置支持:usrquota,grpquota
ext4文件系统磁盘配额
生成配置文件 quotacheck -ug /dir
开启配额功能 quotaon /dir 关闭配额功能:quotaoff /dir
编辑用户配额 edquota -u 用户 /dir
10.XFS格式配额格式:
xfs_quota -x -c ‘limit -u bsoft=N bhard=N isoft=N ihard=N 用户名’ 挂载点
选项:
-u:用户
-g:组
-x:专家
-c:limit命令创建配额
bsoft:磁盘容量软限制
bhard:磁盘容量硬限制
isoft:文件数量软限制
ihard:文件数量硬限制
11.查看配额使用情况:
格式:xfs_qouta -x -c ‘report 选项’ 挂载点
选项:-a -i -b -u -g
查看磁盘使用情况:df 【选项】 【文件】
-hT:显示MB大小和文件类型
12.挂载,卸载文件系统:
挂载文件系统mount
格式:
mount 【-l】 #查询系统已经挂载的设备
mount 【-a】 #依据配置文件/etc/fstab的内容自动挂载
mount 【-t 文件系统】存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录 #指定系统文件挂载到指定目录
卸载已挂载的文件系统:umount 文件位置或挂载点目录
设置自动文件系统的自动挂载:/etc/fstab
格式:
设备名
文件系统挂载点
文件系统类型
挂载参数:例:defaults,rw,ro,noexec,表示默认参数
文件是否需要dump备份:一般为1时表示需要,设为0时将被dump忽略
启动时进行磁盘的检测的顺序:0表示不进行检查,1表示优先检查,2表示其次检查,根分区应设为1,其他分区设为2.
13. 显示磁盘状态命令:dumpe2fs
语法:dumpe2fs 分区设备文件名
14.dump备份命令
格式:dump [选项] 备份之后的文件名 源文件或目录
选项:
-level:就是我们说的0-9是个备份级别
-f 文件名:指定备份之后的文件名
-u:备份成功之后,把备份时间记录在/etc/dumpdates文件
-v:显示备份过程中更多的输出信息
-j:调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式
-W:显示允许被dump的分区的备份等级及备份时间
15.restore还原命令
格式:restore [模式选项] [选项]
选项:
-C:比较备份数据和实际数据的变化
-i:进入交互式模式,手工选择需要恢复的文件
-t:查看模式,用于查看备份文件中拥有那些数据
-r:还原模式,用于数据还原
-f:指定备份文件的文件名
二.权限管理-ACL权限
1.查看分区ACL权限是否开启
语法:dumpe2fs -h /dev/sda3
:查询指定分区详细文件系统信息的命令
选项:-h:显示超级块中信息,而不显示磁盘块组的详细信息
临时开启分区ACL权限
mount -o remount,acl /
:重新挂载跟分区,并挂载加入acl权限
永久挂载:/dev/fstab 添加内容
2.管理ACL命令:
查看ACL命令:getfacle 文件名 #查看acl权限
设定ACL权限的命令:
语法:setfacl 选项 文件名
选项:
-m:设定ACL权限
格式:setfacl -m u:user:rwx project/
u用户g组 m mask权限:用户名:权限 目录
-x:删除指定的ACL权限
格式:setfacl -x u:user project/
用户名
-b:删除所有的ACL权限
格式:setfacl -b 文件名
-d:设定默认ACL权限
#为父目录设定ACL权限,子文件也会继承权限
格式:setfacl -m d:u:用户名:权限 目录名
-k:删除默认ACL权限
-R:递归设定ACL权限
#所有子文件和子目录也会拥有ACL权限
格式:setfacl -m u:用户名:权限 -R 目录名
三.权限管理-文件特殊权限
1.SetUID #身份升级
配置前提:
拥有x执行权限
只可以对二进制执行命令文件使用
设定SetUID:
chomod 4755 文件名
chomod u+s 文件名
2.SetGID
配置针对执行文件前提:
与配置SetUID相似
当用户去访问配置了SetGiD的文件后自动跳转好root组进行使用
可以对目录配置
普通用户必须对目录拥有r和x权限
此目录中的有效组变成此目录的属组
其他用户先建立了文件属组会变成这个目录的属主
设定SetGID:
chomod 2755 文件名
chomod g+s 文件名
3.Sticky BIT
SBIT粘着位作用:
1.只对目录有效
2.普通用户对该目录拥有w和x权限
3.普通用户自己创建的只有自己可以删除,其他普通用户没有权限
设定Sticky BIT:
chmod 1755 /目录位置
chmod o+t /目录位置
文件系统属性chattr
格式:chattr [+-=] [选项] 文件或目录名
+:增加权限
-:删除权限
=:等于某权限
选项:
i:对文件设置I属性,不允许对文件进行删除,改名也不能添加和修改数据
对目录只能修改文件和数据,不能建立和删除
a:对文件只能增加数据
对目录只允许在目录下建立和修改不可以删除
4.sudo权限
sudo使用
visudo #实际修改的是/etc/sudoers文件
语法:
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份)授权命令
#%wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份)授权命令(绝对路径)
四.进程管理
1.查看进程信息:
ps :查看静态的进程统计信息
选项:
-A:显示所有程序。与-e具有同样的效果
-a: 显示所有终端机下执行的程序,除了阶段作业领导者之外。(跟终端无 关的程序)
a: 显示现行终端机下的所有程序,包括其他用户的程序。
-u: -u:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分,通常与a这个参数一起使用。
-l或l(小写L):采用详细的格式来显示程序状况。
-j或j:采用工作控制的格式显示程序状况。(jobs format)
-f:显示UID,PPIP,C与STIME栏位。
2.top:查看动态的进程排名信息
选项:
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i:设置间隔时间;
-u:指定用户名;
-p:指定进程;
-n:循环显示的次数。
3.pgrep:根据特定条件查询进程PID信息
选项:
-l:显示进程名
-U:指定用户
-t:指定终端
d)pstree:以树形结构列出进程信息
选项:
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID
后台启动:在命令行尾加入&符号
ctrl+Z:调入到后台并停止执行
4.jobs:查看处于后台的任务列表
选项:
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。
5.fg:将后台进程恢复到前台 格式:fg number
6.bg:将后台进程恢复到后台
格式:bg number
离线管理:nohup
nohup [选项与参数] --->在终端前台工作
nohup [选项与参数] & --->在终端后台工作
7.终止进程的运行
ctrl+C:中断正在执行 的命令
kill:用于终止指定PID号的进程
killall:用于终止指定名称的所有进程
选项:-9:强制终止
8.pkill:根据特定条件终止相应的的进程
选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所有的终止相应进程
五.计划任务管理:
1. 一次性计划任务:at [HH:MM] [yyyy-mm-dd]
ctrl+D:提交任务
atq:查看未执行的任务列表
atrm:删除任务
格式:atrm 【ID号】
2. batch
注:batch不同于at的地方仅在与其所生成的任务计划是在系统空闲时执行的,所有batch命令后不用指定时间。
其余和at命令相同
3.lsof [进程号,端口]
选项:
-p:执行进程号
-i:指定端口
例:lsof -p 42352 #一般用于查看木马进程,在读那些文件
lsof -i :22 #用于查看端口,或查看黑客开启的后面端口是哪个进程在使用
4.crontab命令
主要设置文件:
全局配置文件:/etc/crontab
系统默认的设置:/etc/cron.*/
用户定义的设置:/var/spool/cron/用户名
管理crontab计划任务
编辑计划任务:
crontab -e [-u 用户名]
查看计划任务:
crontab -l [-u 用户名]
删除计划任务:
crontab -r [-u 用户名]
选项:
-u:管理员可为其他用户创建任务
-e:打开编辑页面定义任务
-l:列出已经定义的所有任务
-r:移除所有任务
格式:
分钟 小时 日期 月份 星期 命令
时间数值的特殊表示方法
*:表示该范围的任意时间
,:使用间隔的多个不连续时间点
-:表示一个连接的时间范围
/:指定间隔的时间频率
六.分析和排查系统故障
日志消息的级别
0 EMERG:紧急
1 ALERT:警告
2 CRLT:严重
3 ERR:错误
4 WARNING:提醒
5 NOTICE:注意
6 INFO:信息
7 DEBUG:调式
1.日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
2.日志文件的分类
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.日志保存位置
默认位于:/var/log 目录下
4.主要日志文件介绍
内核及系统日志
/var/log/messages
计划任务日志
/var/log/cron
系统引导日志
/var/log/dmesg
邮件系统日志
/var/log/maillog
用户登录日志
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户成功登录、注销及系统开、关机事件,对应命令 last
/var/log/btmp: 用户失败登录,错误验证尝试事件,对应命令 lastb
/var/run/utmp:当前登录的每个用户的详细信息,对应查看命令 users who w
/var/log/secure:与用户验证相关的安全性事件
5.日志配置文件
/etc/rsyslog.conf
*.info #任何服务info级别及以上日志
mail.none #例外,不记录
6.日志级别
0 EMERG(紧急/疼痛):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
7.日志一般格式
Jun 3 13:26:35 localhost vmusr[2439]: [critical] [GLib-GObject]
时间标签 主机 子系统名 日志级别和信息
8.程序日志
由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、
9.分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
10.日志管理策略
及时作好备份和归档
延长日志保存期限
控制日志访问权限:日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志:
将服务器的日志文件发到统一的日志文件服务器(ELK)
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除
11.MBR故障修复
Mbr扇区
引导程序GRUB 446
分区表 64
结束标志 2
故障原因:
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前作好备份文件
以 CentOS 7安装光盘引导进入急救模式
从备份文件中恢复
Mbr扇区故障模拟:
1.添加新硬盘: 分区 fdisk /dev/sdb 格式化 mkfs.xfs /dev/sdb1 挂载到 mount /dev/sdb1 /bak
2.备份mbr扇区:dd if=/dev/sda of=/bak/mbr.bak bs=512 count=1
3.模拟故障:dd if=/dev/zero of=/dev/sda bs=512 count=1
4.重启:观察现象
排除故障
1)挂系统盘,进入急救模式 3--2-1
2)重新挂载:mount /dev/sdb1 /aa
3)恢复:dd if=/aa/mbr.bak of=/dev/sda bs=512 count=1
4)exit
12.修复 GRUB 引导故障
故障原因:
MBR 中的 GRUB 引导程序遭到破坏
grub.conf 文件丢失、引导配置有误
故障现象:
系统引导停滞,显示“grub>” 提示符
解决思路:
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复 grub.conf
向 MBR 扇区中重建 grub 程序
模拟grub引导故障
1.cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
2.Rm -f /boot/grub/grub.cfg
3.Reboot
解决grub引导故障
插入系统盘,光盘启动
进入急救模式
chroot /mnt/sysimage
cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg
13.修复文件系统
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块(super-block)信息被破坏
故障现象
无法向分区中读取或写入数据
启动后提示“Give root password for maintenance”
解决思路
根据提示输入 root 口令,进入修复状态
使用xfs_repair命令进行修复
模拟故障:
破坏: 创建分区、格式化,先不要挂载
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
修复:xfs_repair /dev/sdb1
14.硬盘i节点耗尽
故障原因
磁盘空间已被大量的数据占满,空间耗尽
虽然还有可用空间,但文件数i节点耗尽
故障现象
无法写入新的文件,提示“… : 设备上没有空间”
部分程序无法运行,甚至系统无法启动
解决思路
清理磁盘空间,删除无用、冗余的文件
转移或删除占用大量 i 节点的琐碎文件
进入急救模式进行修复
为用户设置磁盘配额
模拟故障:
添加一块硬盘
划分一个100M的分区,格式化,挂载到/data目录下
df -i /data (查看i节点的数量)
vim killnode.sh
#!/bin/bash
i=1
while [ $i -le 前面查到的i节点数 ]
do
touch /data/file$i
let i++
done
sh killnode.sh &
15.磁盘坏道
故障原因
磁盘设备中存在坏道(逻辑的或物理的)
故障现象
读取磁盘中的数据时,磁盘设备发出异常声响。
访问磁盘中的某个文件时,反复读取且出错,提示文件损坏
对于新建立的分区无法完成格式化
系统使用该磁盘时频繁死机
解决思路
检测硬盘中是否存在坏道
修复硬盘,或更换新的硬盘
badblocks -sv /dev/sdb
make方法
make clean #清除上一次make命令生成的文件
make distclean #清除上一次make以及configure命令生成的文件
make -j 4 #使用4进程同时编译,提升编译速度
XFS增量备份
语法:xfsdump -f 备份目标位置 备份目录(挂载目录或磁盘分区)
提示:编写标签,第一次为会话标签,第二次为设备标签
免交互备份:
语法:xfsdump -f 存放位置 备份目录 -L 会话标签 -M 设备标签
xfsdump -f /opt/dump_sda1 /dev/sda1 -L dump_sda1 -M sda1_is
指定只备份分区中某个目录
参数:-s 文件路径 只能指定的问价进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
格式:xfsdump -f /opt/233_dump -s 233.txt /dev/sdb1 -L dump_233 -M sdb1
查看备份记录
xfsdump -I
文件系统恢复
语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
恢复单个文件
语法:xfsrestore -f 恢复文件路径 -s 恢复文件 恢复目录
增量备份
先备份完整备份
语法:xfsdump -l 1 -f 备份保存位置 备份文件
-l <level> 做一个等级为1的备份
恢复增量备份
语法:xfsrestore -f 恢复文件 恢复目标位置
注:按顺序恢复增量备份,恢复数据会不完整
windows文本文件上传到Linux上出现乱码
解决:
格式:iconv -f gb2312 -t utf8 乱码文件 -o 转换为的名称
在Linux上编写的shell脚本到windowx上出现没有换行
解决:
工具:dos2unix unix2dos等工具
格式: dos2unix Linux上的shell文件
使用远程xshell命令上传文件和下传文件
注:需要rz工具下载,只可以用于远程工具连接
rz本地上传文件 sz下传文件
系统监控
proc文件系统
和整个Linux系统相关的参数如下:
/proc/cmdline:加载kernal时的相关指令与参数
/proc/cpuinfo:CPU相关的信息,包括频率,类型与运算能力
/proc/devices:记录了系统各个主要设备的主设备号码
/proc/filesystems:记录系统加载的文件系统
/proc/loadavg:平均负载值top看到的
/proc/meminfo:内存信息,free命令查看的
/proc/modules:系统已经加载的模块
/proc/mounts:系统已经挂载的数据
/proc/partitons:系统的分区文件
/proc/version:系统的核心版本uname -a看到的内容
常用的系统监视命令:
uptime
显示顺序:现在的时间,系统运行时间,目前多少登录用户,系统在过去一分钟,5分钟,15分钟内的平均负载。
[root@localhost 1]# uptime
07:32:01 up 15 min, 1 user, load average: 0.00, 0.01, 0.02
free
显示当前系统未使用和已经使用的内存数目。
[root@localhost 1]# free -h
total used free shared buff/cache available
Mem: 976M 79M 761M 7.0M 135M 745M
Swap: 2.0G 0B 2.0G
vmstat
显示虚拟内存状态,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
[root@localhost 1]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 779916 896 138060 0 0 93 5 44 111 0 0 100 0 0
mpstat
最大特点:可以查看CPU中每个计算机核心的统计数据。
注:需要安装sysstat
iostat
用于监视系统输入输出设备和CPU的使用情况。能查看到系统IO情况信息,从而确定IO性能是否存在瓶颈。
sar
sar是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况,系统调用的使用情况,磁盘I/O,CPU效率,内存使用情况,进程活动及IPC有关的活动等。
sar命令常用格式:sar [options] [-A] [-o file] t [n] 其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息