要先在虚拟机中新添加硬盘,刷新或重启来识别新添加的盘
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 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,企业基本不用,个人或者自媒体会用
开机自检 -> 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 服务名 查看服务是否启动
必须保证在 /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
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
能够统计系统参数、进程状态、CPU状态、内存状态、交换分区状态
对CPU使用率进行排序:在top界面按P
对内存进行排序:在top界面按M
第一部分第一行为任务队列信息
第四行为物理内存信息
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 | 结束当前任务 |
注:
kill -参数 pid号
killall 进程名
pkill -U 用户名 [ 进程名 ]
kill 和 kill -9 的区别:
kill 是发送信号给进程的,参数不同,本质是信号不同
kill默认-15,15的信号为SIGTERM,告诉进程需要被关闭,请自行停止运行并退出,进程也可以拒绝退出、拒绝结束
kill -9 ,9的信号为SIGKILL,表示进程要被终止,需要立即退出,这个信号不能被忽略和捕获的
at 一次性任务,执行完就结束
[root@localhost~]#at HH:MM yyyy-mm-dd
at>命令
at><EOF>
#ctrl+D 提交任务
crontab 计划性任务,周期性任务,由crond服务管理
字段 | 说明 |
---|---|
分钟 | 取值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(或者别的用户)
锁定文件 chattr +i 文件名
解锁文件 chattr -i 文件名
查看锁定状态 lsattr
md5sum 文件
使用md5对文件进行校验,文件一旦修改,md5值就会发生变化,如果没有修改,md5值不变
发现被人修改后,查看日志,进行排查
su zhangsan 在当前目录切换用户
su - zhangsan 切换用户,并会切换到该用户的家目录中,加载该用户的shell环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P491yoVI-1649221227231)(16陆涵卿Linux系统复习6-11章+Linux网络.assets/1649175008767.png)]
vim /etc/pam.d/su
#auth required pam_wheel.so.use_uid 注释取消(第6行)
/usr/bin 所有用户都能执行的命令
/usr/sbin 管理员权限的命令
法一:visudo
法二:
vim /etc/sudoers //root可以强制保存
格式:
用户名 主机名(通常用ALL表示)=(以什么身份的用户来执行命令,默认root) 命令程序列表
%组名 主机名= 目录程序列表
定义别名:
User_Alias 用户别名 USERS( 必须大写)=XX,XXX,XXXX
Host_Alias 主机别名 HOSTS(必须大写)=XX,XXX,XXXX
Cmnd_Alias 命令别名 CMDS (必须大写)=xx,xxx,xxxx
USERS HOSTS=CMDS
sudo +命令
初次使用sudo需要输入当前用户密码,默认超时时长5分钟,5分钟内不会再重复校验密码。
netstat、ss 功能类似
-natp 所有tcp端口
-naup 所有udp端口
-lntup 已连接的所有端口
文件数据和文件名是分开存储的
扇区:硬盘最小的存储单元,512字节
块block :连续8个扇区组成一个块,大小为4096字节,4Ki,是文件存取的最小单位
有些文件系统是4个扇区组成一个块,一般是8个
操作系统读文件是一个块一个块读取
K M G T P 以10为底数的单位 1KB=10^3=1000 1MB=10^3KB 1GB=10^3MB
Ki Mi Gi Ti Pi 以2为底数的单位 1KiB=2^10=1024 1MiB=2^10KiB 1GiB=2^10MiB
1000换算的是传输单位,1024换算的是存储单位,通常硬件厂商以存储单位标注自己的产品大小,而实际是以传输单位换算的
文件数据包括实际数据和元信息(文件属性)
实际数据存储在块中
元信息存储在inode(索引节点)中
文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode
inode不包含文件名,文件名存储在目录中
find ./ -inum inode号 -delete
find ./ -inum inode号 -exec rm -rf {} \; //{}表示前面查询到的东西,{}和\之间要有空格
find ./ -inum inode号 | xargs rm-rf
ls -i 文件名
stat 文件名
atime:最近的访问时间
mtime:最近的修改文件内容的时间
ctime:最近改动文件属性的时间
find 目录 -mtime +30 -exec rm -rf {} \;
linux实际上不是用文件名来识别文件的,而是通过inode号来识别文件
文件名实际上是inode的别名,是inode号便于识别的别称,每一个inode号对应一个文件名
添加 sshd:ip地址
可编写脚本,将多次恶意登录的IP,添加到黑名单中
日志级别:0-7
生产环境中,如果服务器数量较少,通过脚本或者rsyslog工具来收集日志,远程传输到指定的日志服务器中统一保存。
如果服务器数量较多,会通过ELK / EFK 分布式日志分析系统来统一收集和存储日志,并且还可以提供索引搜索功能和图形化展示功能。
centos7中systemd 提供了journalctl工具
journalctl -u 服务名 //查看对应服务的日志