目录
第六章、LVM与磁盘配额
LVM
磁盘配额
第七章、RAID
第八章、引导过程与服务控制
Linux系统引导过程
服务管理
chkconfig
忘记root密码
第九章、进程和计划任务管理
静态查看进程
动态查看进程
top
atop
系统监控
查看线程
后台启动
中止进程
at
crontab
第十章、系统安全及应用
锁定文件
判断文件是否被修改
面试题:做过哪些系统优化
su切换用户
限制使用su:
sudo提权
查看端口以及连接状态的命令
第十一章、linux文件系统与日志分析
文件数据
元信息
Linux访问文件过程
通过inode号删除文件
查看inode号
三个时间戳
日志
rsyslog 工具
第六章、LVM与磁盘配额
LVM
要先在虚拟机中新添加硬盘,刷新或重启来识别新添加的盘
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan
fdisk -> t -> 8e
不分区也是可以创建LVM的
创建物理卷:
pvcreate 硬盘设备(可多个) pvcreate /dev/sdb /dev/sdc
创建卷组:
vgcreate vg1(卷组名) /dev/sdb /dev/sdc (物理卷名)
创建逻辑卷:
lvcreate -L 10G -n lv1(逻辑卷名) vg1(卷组名)
格式化逻辑卷
mkfs.xfs /dev/vg1/lv1
挂载
mount /dev/vg1/lv1 /mnt df -h 查看挂载情况
扩展逻辑卷:
lvextend -L +10G /dev/vg1/lv1 #一定要有+号,否则就是改为指定大小
xfs_growfs 挂载点 (xfs) 刷新挂载点(xfs文件系统)
resize2fs 挂载点 (ext4) 刷新挂载点(ext4文件系统)
磁盘配额
mount -o usrquota,grpquota(指定参数挂载)
vim /etc/fstab 设备文件 挂载点目录 文件系统类型 挂载参数(defauils,usrquota,grpquota) 0 0
xfs_quota
dd(相当于连续复制命令)
dd if=/dev/zero(从哪里复制) of=/opt/1.txt(复制到哪里)bs=10M(指定每次复制多大) count=10(指定复制次数)
第七章、RAID
磁盘阵列 | 读写能力 | 硬盘数量要求 | 磁盘利用率 | 是否校验 |
raid 0 条带化存储 | 读写快 | N | N | 无 |
raid 1镜像存储 | 读块,写没有改变 | N(偶数) | N/2 | 无,但由于有镜像,所以可以允许一组设备故障 |
raid 5 | 读块,写性能低(需要写一个校验数据) | N大于等于3 | (N-1)/N | 有,可以允许一组设备损坏 |
raid 6 | 读性能高,写性能低(需要写两个校验数据) | N大于等于4 | N-2/N | 有,可以允许两组设备故障 |
raid 10先做镜像,再做条带 | 同时具备RAID 0 和RAID 1 的性能,读写性能高 | N大于等于4(偶数) | N/2 | 无校验能力,但由于有镜像,所以允许一组设备故障 |
硬RAID:服务器开机时切换bios界面,每个品牌不一样,根据说明书、官网查
软RAID:mdadm,企业基本不用,个人或者自媒体会用
第八章、引导过程与服务控制
Linux系统引导过程
开机自检 -> MBR引导 -> GRUB菜单 -> kernel内核加载 -> init(systemd)进程初始化
一般遇不到这个过程,生产环境中,服务器都是不关机的
开机自检:检测硬件设备,检测出第一个能引导系统的设备,硬盘
MBR引导:运行在MBR扇区里的启动GRUB引导程序
扇区:硬盘最小存储单元,大小为512字节,MBR引导位于硬盘的第一个扇区,前446字节都为MBR引导
GRUB菜单:GRUB引导程序通过读取GRUB配置文件(/boot/grub2/grub.cfg),获取内核和镜像、文件系统的设置和路径,屏幕也会显示GRUB菜单
加载内核:把内核和镜像文件系统加载到内存中
init(systemd)进程初始化:内核会把init进程加载到内存中运行,init(systemd)进程是所有进程的父进程,pid为1。centos 6 之前为init ,centos 7 为systemd(面试说init,如果说systemd,需要将系统版本带上)
服务管理
systemctl start | stop | restart | status | enable | disable 服务名(.service)
systemctl is-enabled 服务名 查看服务是否启动
chkconfig
必须保证在 /etc/init.d/目录中有可执行权限的文件(服务管理脚本(case语句))才能执行,文件内容还必须要有
#chkconfig:2345 10 90
chkconfig --add 服务名(脚本名)//加入到系统中
chkconfig --level 运行级别 服务名 on | off //直定级别
centos6中 service 服务名 start | stop | restart | status | enable | disable
2345:运行级别
10:开机第十个启动
90:关机第90个关闭
运行级别 | 含义 |
0 | 关机 |
1 | 单用户 |
2 | 字符界面多用户模式(无网络) |
3 | 字符界面多用户模式(有网络) |
4 | 字符界面多用户模式(保留) |
5 | 图形界面多用户模式 |
6 | 重启 |
关机:init 0 poweroff shutdown -h now
重启:init 6 reboot shutdown -r now
忘记root密码
1.进入急救模式
2.chroot /mnt/sysimage 切换到系统根环境
3.passwd root
第九章、进程和计划任务管理
静态查看进程
ps aux ps -elf
进程的几种状态:
R:running,运行状态
S:sleep,休眠状态,可被唤醒
D:不可中断的休眠状态
T:停止、挂起状态
Z:僵死状态(子进程比父进程先结束,而父进程又没有回收子进程的机制)
pgrep:根据条件来过滤进程 -U 指定用户 -l 显示进程名
pstree:以树形结构显示进程
pstree -aup //完整列出所有对应用户的对应PID
动态查看进程
top
能够统计系统参数、进程状态、CPU状态、内存状态、交换分区状态
对CPU使用率进行排序:在top界面按P
对内存进行排序:在top界面按M
第一部分第一行为任务队列信息
第二行为进程信息
第三行为 CPU 信息
第四行为物理内存信息
第五行为交换分区(swap)信息
第二部分主要是系统进程信息
atop
top是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统CPU、内存、磁盘、网络的资源使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的atop日志文件进行分析
yum install -y epel-release.noarch yum install -y atop #默认的网络源中未找到此软件包,下载epel源再安装
系统监控
查看cpu负载:top w uptime cat /proc/loadavg
cpu使用率:top ps aux ps -ef
内存: free -m top
磁盘空间:df
网卡流量:ifconfig
已安装软件数量:rpm -qa | wc -l
IO使用率:iostat、vmstat、iotop、atop
用户登录数:who | wc -l
进程数:ps aux | wc -l top
查看线程
ps -aT //a代表所有
top -H
top -H -p pid //查看某个进程对应的线程
后台启动
在命令后面加上&, 实际上,这样是将命令放入到一个作业队列中了
命令 | 含义 |
jobs | 查看任务,返回任务编号n和进程号 |
bg +n | 将编号为n的任务转后台运行 |
fg +n | 将编号为n的任务转前台运行 |
ctrl+z | 挂起当前任务 |
ctrl+c | 结束当前任务 |
注:
如果要使在前台执行任务放到后台运行,则先要用ctrl+z挂起该任务,然后用bg使之后台执行
对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行
中止进程
kill -参数 pid号
killall 进程名
pkill -U 用户名 [ 进程名 ]
kill 和 kill -9 的区别:
kill 是发送信号给进程的,参数不同,本质是信号不同
kill默认-15,15的信号为SIGTERM,告诉进程需要被关闭,请自行停止运行并退出,进程也可以拒绝退出、拒绝结束
kill -9 ,9的信号为SIGKILL,表示进程要被终止,需要立即退出,这个信号不能被忽略和捕获的
at
at 一次性任务,执行完就结束
[root@localhost~]#at HH:MM yyyy-mm-dd at>命令 at><EOF> #ctrl+D 提交任务
crontab
crontab 计划性任务,周期性任务,由crond服务管理
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
字段 | 说明 |
分钟 | 取值0-59任意整数 |
小时 | 取值0-23任意整数 |
日期 | 取值1-31任意整数 |
月份 | 取值1-12任意整数 |
星期 | 取值0-7任意整数,0或7都代表星期天 |
命令 | 要执行的命令或程序脚本 |
符号 | 说明 |
* | 表示该范围内的任意时间 |
, | 表示间隔的多个不连续的时间点 |
- | 表示一个连续的时间范围 |
/ | 指定间隔的时间频率 (写在第一个 */2 每隔2分钟) |
分 时 日 月 周 命令表达式(命令字使用绝对路径表示)
法一:
crontab -e [-u 用户名] //编辑计划任务
crontab -l [-u 用户名] //查看计划任务
crontab -r [-u 用户名] //删除计划任务
法二:vim /etc/crontab
法三:修改 /var/spool/cron/root(或者别的用户