只高亮,不漏日志
想让日志全部显示,但只把关键词标亮?试试这个:
tail -f app.log | grep --line-buffered --color=always -E "ERROR|WARN|$"
环境介绍当前在100.120 上,有个118.131 可以和它联通,
118.131和122.2 可以联通,但无法直接在100.120上直接联通
如果要ssh 可以【下面这个只要求118.131上有100.120的key】
/bin/ssh -t root@192.168.118.131 "ssh root@192.168.122.2"
scp文件,这里要求122.2上有100.121的key
scp -o ProxyJump=root@192.168.118.131 use_cmd root@192.168.122.2:~
ssh -o ProxyJump=root@192.168.118.131 root@192.168.122.2 "ls -all ~"
virsh list
virsh list --all
virsh start <虚拟机名称> #开机
virsh shutdown <虚拟机名称> #关机
virsh destory <虚拟机名称> #强制断电
virsh reboot <虚拟机名称> #重启
virsh suspent <虚拟机名称> #挂起
virsh resume <虚拟机名称> #挂起的恢复
virsh undefine <虚拟机名称> #删除
virsh autostart <虚拟机名称> #随宿主机启动自动重启虚拟机
virsh autostart --disable <虚拟机名称> #随宿主机启动自动重启虚拟机的取消
virsh console <虚拟机名称> #串行控制台接入,无界面方式,但应该是独占模式
虚拟机配置相关
libvirt 的虚拟机配置存储在xml ,more存储为/etc/libvirt/qemu/
virsh dumpxml <虚拟机名称> #查此虚拟机的当前配置
virsh edit <虚拟机名称> #编辑此虚拟机的配置
virsh dumpxml <虚拟机名称> backup.xml #导出配置
查看基本信息
virsh dominfo <虚拟机名称> #查询基本摘要
virsh domiflist <虚拟机名称> #查网卡信息
virsh domblklist <虚拟机名称> #查硬盘信息
virsh vcpulnfo <虚拟机名称> #查vCPU信息
创建网桥,让多个容器通过网桥互联并访问外部网络。
# 1. 创建网桥 sudo ip link add br0 type bridge sudo ip link set br0 up sudo ip addr add 192.168.100.1/24 dev br0 # 2. 创建veth pair sudo ip link add veth-host type veth peer name veth-container # 3. 将veth-host连接到网桥 sudo ip link set veth-host master br0 sudo ip link set veth-host up # 4. 创建命名空间并移动veth-container sudo ip netns add container1 sudo ip link set veth-container netns container1 sudo ip netns exec container1 ip link set veth-container up sudo ip netns exec container1 ip addr add 192.168.100.100/24 dev veth-container # 5. 启用NAT转发(让容器能访问外网) sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 ! -o br0 -j MASQUERADE sudo sysctl -w net.ipv4.ip_forward=1
交流中被问到free -h中为什么Available 比Buff/Cache小
查询发现Available估算时Buff/Cache有无法使用的部分,
是
Buff/Cache中不可立即回收(不能完全算入Available)的部分主要包括:
脏页:已被修改但尚未写入磁盘的数据。
正在被使用的页:有进程正在直接读取或写入的缓存页。
被锁定在内存中的页:通过mlock()系统调用锁定的页。
内核数据结构占用的Slab内存中的不可回收部分。
是什么:数据已在内存中被修改,但与磁盘上的版本不一致。内核必须先将它们写回磁盘,才能回收这些内存页。
影响:如果系统有大量写入操作(如数据库、日志写入),脏页会很多。回收它们需要等待I/O完成,因此不能立即提供给应用程序。
查看命令:
grep -E 'Dirty|Writeback' /proc/meminfo
输出示例:
Dirty: 12456 kB # 待写回的脏数据量 Writeback: 432 kB # 正在写回的数据量
是什么:某个进程正在通过read()或write()系统调用访问的缓存页。回收会导致进程I/O错误。
影响:通常比例很小,但存在。
是什么:通过mlock()系统调用明确要求常驻内存的页(如一些实时性要求高的应用、加密密钥)。
影响:明确不可回收。
是什么:/proc/meminfo中的SReclaimable(可回收Slab)被计入Buff/Cache,而SUnreclaim(不可回收Slab)则不被计入。
可回收Slab:如目录项缓存(dentry)、索引节点缓存(inode_cache)。这些可被回收,并被计入Available。
不可回收Slab:一些内核数据结构占用的内存,无法回收。
查看命令:
grep -E 'SReclaimable|SUnreclaim' /proc/meminfo
Available?(深入原理)Available 的值在 /proc/meminfo 中是这样计算的(简化版):
# 查看精确值 grep Available /proc/meminfo # 内核的估算逻辑(概念上): Available = Free + (PageCache的总和 - 其中不可立即回收的部分) + (SReclaimable * 权重系数)
不可立即回收的部分 主要通过以下方式估算:
统计所有“干净”的页面(未修改的缓存),这些可以瞬间回收。
估算回收“脏页”的成本,并根据系统当前压力、I/O负载等因素,决定将多大比例的脏页计入“可用”资源。在内存压力不大时,内核可能保守估计;压力大时,会更积极地将脏页的潜在回收能力计入。
假设您的系统 free -h 显示:
total used free shared buff/cache available Mem: 16Gi 10Gi 500Mi 1.0Gi 5.5Gi 4.5Gi
分析:
buff/cache 有 5.5Gi
available 有 4.5Gi
free 只有 500Mi
计算 available 的来源:4.5Gi ≈ 0.5Gi (free) + [5.5Gi (buff/cache) - 约 1.5Gi (不可立即回收部分)]
查看这“约1.5Gi”不可回收部分的具体构成:
# 1. 查看脏页大小 cat /proc/meminfo | grep Dirty # 假设输出 Dirty: 800000 kB (约0.76Gi) # 2. 查看Slab分配 cat /proc/meminfo | grep -E 'SReclaimable|SUnreclaim' # SReclaimable: 400000 kB (约0.38Gi,这部分是buff/cache的一部分且可回收) # SUnreclaim: 200000 kB (约0.19Gi,这部分不属于buff/cache) # 3. 粗略估算 # 不可立即回收部分 ≈ 脏页 + 其他难以估算的正在使用的页 # ≈ 0.76Gi + (0.5Gi ~ 0.7Gi) ≈ 1.3Gi ~ 1.5Gi
这个估算结果与上面的分析基本吻合。
Available 是一个智能估算值,而非简单加减。它告诉你在不引起严重I/O阻塞或进程错误的前提下,能安全分配多少内存。
Buff/Cache 和 Available 的差值,主要反映了脏页的数量和回收成本。
当系统内存压力极大时,内核会启动激进的后台回写,将脏页刷入磁盘,从而将它们转变为“干净页”,增加 Available 的估算值。但这个过程会导致I/O争用,可能使系统变慢。
当您需要精确分析时,请使用 cat /proc/meminfo 获取原始数据,并重点关注 Dirty, Writeback, SReclaimable 这几个指标。它们正是 Buff/Cache 中那些“看得见但暂时用不了”的部分。
#ipv6的tcprewire改写方式
tcprewrite \
--srcipmap=[2000::1]:[240e:123:4567:8900::1] \
--dstipmap=[2000::1]:[240e:123:4567:8900::1] \
--infile=ipv6_sql.pcap \
--outfile=ipv6_sql_240e.pcap \
--fixcsum
配置一下如下,就可以用scp了
esxcli network firewall ruleset set --ruleset-id=sshClient --enabled=true
介绍-dankon deeps
在 VMware ESXi 中,esxcli network firewall ruleset 命令用于管理主机防火墙规则集。您提到的命令:
esxcli network firewall ruleset set --ruleset-id=sshClient --enabled=true
esxcli network firewall
ESXi 的网络防火墙管理模块。
ruleset set
修改防火墙规则集的配置。
--ruleset-id=sshClient
指定规则集为 sshClient(SSH 客户端出站规则)。
注意:
sshServer 控制 SSH 入站连接(默认 ESXi 作为服务器)。
sshClient 控制 ESXi 主动发起的 SSH 连接(如从 ESXi 连接其他主机)。
--enabled=true
启用该规则集(允许匹配规则的流量)。
设为 false 则禁用。
##base64
len=$(( (RANDOM % 15 +2 ) *4)) #8-64之间的4的倍数
b64=$(openssl rand -base64 $len) #openssl 随机生成安全数据,使用base64编码生成 ,生成$len的原始二进制数据
echo $b64
介绍-dankon deepseek
openssl rand
OpenSSL 的随机数生成器模块,用于生成密码学安全的伪随机数据。
-base64
指定输出格式为 Base64 编码(将二进制数据转换为可读的 ASCII 字符)。
4
生成 4 字节的原始二进制数据(编码前长度)。
实际输出长度:
4 字节二进制数据 → Base64 编码后为 6 个字符(每 3 字节对应 4 个 Base64 字符,填充 = 补全)。
示例输出:aBcD12=
更新为阿里的参考
https://developer.aliyun.com/mirror/centos
https://developer.aliyun.com/mirror/epel
下载前备份之前的源
cd /etc/yum.repos.d/&&mkdir backup&&mv * backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
参考:https://blog.csdn.net/sjin_1314/article/details/7980991
seq x y 生成x~y之间的整数序列
eg:
# seq 10 15
10
11
12
13
14
15
参考:https://www.cnblogs.com/chuanzhang053/p/8532248.html
#!/bin/bash
str_1=''
str_2=Badboy
if [[ -z $str_1 ]];
then
echo str_1 is empty.
else
echo str_1 is not empty.
fi
if [[ -z v$str_2 ]];
then
echo str_2 is empty.
else
echo str_2 is not empty.
fi
参考地址:https://blog.csdn.net/guangdeshishe/article/details/125295529
单条:
sqlite3 ../rule_pcap_80t.db <<EOF >${name}_ignore_key
select ignore_keys from pcap_es_and_ignore_key where pcap_name="${name}" and suuid="S3100109841";
EOF