Linux命令总览
网络
ip route del default
ip route del 1.1.1.0/24
ip route add default via 192.168.248.50 dev ens33 # 写Director的IP
ip route add default via 1.1.1.50 dev ens37 # 写Director的IP
yum
yumdownloader --resolve --destdir=/wise nginx
--resolve 下载软件包及所有依赖
rpm
sudo rpm -ivh *.rpm
-i:install 的缩写,表示安装软件包。
-v:verbose 的缩写,显示安装过程的详细信息。
-h:hash 的缩写,显示安装进度(以 # 符号表示)。
tar
tar -zcvf 打包后的文件名.tar.gz 要打包的文件夹路径
tar -zxvf prometheus-2.16.0-rc.0.linux-amd64.tar.gz -C /usr/local/prometheus/ # 解压到/usr/local/prometheus/目录下
-c:创建新的归档文件(即打包)。
-x:从归档文件中提取内容(即解压)
-z:调用 gzip 进行压缩(生成.gz 后缀)。
-v:显示打包过程的详细信息(可选)。
-f:指定归档文件的名称(必须放在最后,后跟文件名)。
mv
-b 覆盖前为目标文件创建备份
-v 显示执行过程详细信息
-f 强制覆盖目标文件而不询问
-Z 设置文件安全上下文
-n 不要覆盖已有文件
-u 当源文件比目标文件更新时,才执行覆盖操作
mv -bv A.txt B.txt # 备份A.txt,并将其重命名为B.txt,若B.txt已存在,则A.txt会被重命名为A.txt~
用户与权限
groupadd postgres # 创建postgres组
useradd -g postgres postgres # 创建用户并加入postgres组
cd /opt/pgsql/postgresql
mkdir data
chown postgres:postgres data # 更改目录所有者
系统版本
cat /etc/centos-release # 输出如:CentOS Linux release 7.9.2009 (Core)
uname -m # 确认架构:x86_64
awk
awk 'NR2 {print $5}' # NR2 表示第二行,{print $5} 表示打印第五列
grep
grep -i # 忽略大小写
grep -v # 取反
vim
:e! # 重新加载文件
G # 跳转到最后一行
N # 先/关键字,N查找上一个
gg # 跳转到第一行
:
top
按P查看占用CPU最高的进程
按M查看占用内存最高的进程
按u查看指定用户的进程
top -d 1 # 每隔1秒刷新
ansible
ansible -i cfs_agent.list linux -m shell -a 'cp /usr/local/hcbs/hcbs_client/tools/op/monitor.sh /root/monitor.sh.20251114bak'
"将右侧服务器列表写入szj.list文件
ansible -i cfs_agent.list linux -m shell -a 'sed -i ""s/log_space_threshold=1300/log_space_threshold=2000/g"" /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'"
"# 检查修改是否成功
ansible -i cfs_agent.list linux -m shell -a 'grep log_space_threshold= /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'
ansible -i cfs_agent.list linux -m shell -a 'diff /usr/local/hcbs/hcbs_client/tools/op/monitor.sh /root/monitor.sh.20251114bak'"
ansible -i cfs_agent.list linux -m shell -a 'cp /root/monitor.sh.202510bak /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 60G 0 disk
sr0 11:0 1 9.6G 0 rom
sda1:挂载在 /boot 目录下。这是系统的[引导分区],存放着启动加载程序(如 GRUB)和 Linux 内核镜像
sda2:作为 LVM 物理卷(PV) 使用,名为 centos 的卷组(VG)
centos-root:这是根逻辑卷,挂载在 /(根目录)
centos-swap:这是交换分区逻辑卷,类型为 [SWAP]。相当于 Windows 的虚拟内存,当物理内存不足时,系统会将部分暂时不用的数据交换到此空间。
sr0:这是一个光驱设备(rom),通常用于读取光盘或ISO镜像文件。
内存
free -m
查看内存使用情况,-m 以MB为单位显示

Mem是物理内存
Swap是用硬盘空间模拟的 “虚拟内存”,速度比物理内存慢数百倍。
计算内存使用率:1-(空闲内存/总内存)*100%
#!/bin/bash
# 设置目标内存使用率和持续时间
# TARGET_USAGE=90 # 通过传参的方式写入
# DURATION=300 # 通过传参的方式写入
# 获取总内存(KB)和当前已用内存(KB)
TOTAL_MEM=$(free -k | awk '/Mem:/ {print $2}')
USED_MEM=$(free -k | awk '/Mem:/ {print $3}')
# 计算需要占用到90%的内存量(KB)
TARGET_MEM=$(( TOTAL_MEM * TARGET_USAGE / 100 ))
NEEDED_MEM=$(( TARGET_MEM - USED_MEM ))
# 内存不足时直接退出
if [ $NEEDED_MEM -le 0 ]; then
echo "当前内存使用率已≥${TARGET_USAGE}%,无需压测"
exit 0
fi
# 转换为MB(方便dd命令使用),预留少量内存避免OOM
NEEDED_MEM_MB=$(( (NEEDED_MEM - 10240) / 1024 )) # 预留10MB安全空间
if [ $NEEDED_MEM_MB -lt 1 ]; then
NEEDED_MEM_MB=1
fi
# 在内存文件系统(/dev/shm)创建大文件占用内存
sudo mount -o remount,size=${TARGET_USAGE}% /dev/shm # 扩大 /dev/shm的容量
MEM_FILE="/dev/shm/mem_stress_$$.tmp"
sleep ${DURATION} && rm -f ${MEM_FILE} & # 设置自动删除,防止任务中断导致/dev/shm/的文件持续占用
echo "开始占用${NEEDED_MEM_MB}MB内存,目标使用率${TARGET_USAGE}%,持续${DURATION}秒..."
dd if=/dev/zero of=${MEM_FILE} bs=1M count=${NEEDED_MEM_MB} > /dev/null 2>&1
# 显示当前内存使用率
echo "当前内存使用率:$(free | awk '/Mem:/ {printf "%.1f%%", $3/$2*100}')"
# 等待指定时长
sleep $DURATION
# 清理资源
echo "压测结束,清理内存占用..."
rm -f ${MEM_FILE}
echo "内存已释放,脚本退出"
virsh
列出所有虚拟机: virsh list --all

查看 VM 详细信息: virsh dominfo <VM_NAME>

查看 VM 配置 (XML): virsh dumpxml <VM_NAME>
查看宿主机信息: virsh nodeinfo

进入虚拟机控制台:virsh consol <VM_NAME>

浙公网安备 33010602011771号