标签:Linux

共 21 篇
2022-06-17 34 浏览

iostat 命令参数解释与磁盘 I/O 排查方法

在 Linux 服务器上排查性能问题时,磁盘 I/O 是一个很常见的方向。比如系统响应变慢、数据库查询变慢、日志写入延迟、程序偶尔卡住,或者 CPU 看起来不高但业务处理速度明显下降,这些情况都可能和磁盘 I/O 有关。 iostat 是一个非常常用的 Linux 性能分析命令,可以用来查看 CPU 使用情况和磁盘设备的读写情况。它适合快速判断磁盘是否繁忙、…

2022-05-30 32 浏览

Ubuntu 18.04 / 20.04 快速开启 TCP BBR

在 Linux 服务器上做网络优化时,经常会看到一个关键词:BBR。 BBR 的全称是 Bottleneck Bandwidth and RTT,是一种 TCP 拥塞控制算法。它的目标不是简单粗暴地“把速度拉满”,而是根据网络链路的瓶颈带宽和往返时延,尽量让连接保持较高吞吐,同时减少不必要的排队延迟。 简单理解,传统拥塞控制算法很多时候会把丢包当成网络拥塞的…

2022-05-11 35 浏览

Ubuntu Server 20.04 删除 cloud-init 的方法

在 Ubuntu Server 20.04 中,系统默认可能会安装 cloud-init 。刚开始看到这个服务时,很多人会有点疑惑:自己明明是在物理机或普通虚拟机里安装的 Ubuntu,并不是云服务器,为什么启动时还会出现 cloud-init 的执行过程? cloud-init 主要是为了云计算环境设计的。它可以在系统第一次启动时,根据云平台提供的 met…

2022-05-06 34 浏览

Ubuntu 20.04 固定 DNS 设置方法

在 Ubuntu 20.04 上配置网络时,有时候会遇到 DNS 解析不稳定的问题。比如内网主机名解析不了、访问网页偶尔很慢、服务器能 ping 通 IP 但无法解析域名,或者系统自动获取到的 DNS 服务器并不是自己想用的地址。 这种情况下,可以通过 systemd-resolved 来手动指定 DNS 服务器。这个方法比较适合服务器、开发机、内网环境、虚…

2021-01-20 28 浏览

apt 更新时报 No module named debian.deb822 的处理方法

apt 更新时报 No module named debian.deb822 的处理方法 # 在 Ubuntu 系统中执行 apt update 或系统更新时,有时会遇到一些和 Python 模块相关的报错。表面上看是 apt 出了问题,但实际原因可能是某个系统组件或安装包在更新过程中调用了 Python 脚本,而脚本依赖的模块不存在或环境异常。 我之前遇到…

2020-10-15 35 浏览

Linux 更改时区

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # Centos系统 TEXT 复制代码 date -R timedatectl set-local-rtc 1 timedatectl…

2020-07-23 24 浏览

iptables做端口转发

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 最常用的转发,从 192.168.1.21:59388 转发到 192.168.1.20:5938 TEXT 复制代码 pro='t…

2020-07-23 24 浏览

curl 获取执行时相应时间

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 直接来命令 Bash 复制代码 curl -o /dev/null -w % { time_namelookup } ::% { t…

2020-07-23 20 浏览

shell 脚本中$$,$#,$?分别代表的意思

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # $0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个。 $# 这个程…

2020-07-23 26 浏览

Linux开启外网转发到外网的方式

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # TEXT 复制代码 NAT_Host='1.1.1.1' Dst_Host='2.2.2.2' iptables -t nat -A…

2020-07-23 23 浏览

Linux实现在某个确定的时间段内随机执行命令

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使…

2020-07-23 23 浏览

Linux的Shell里面生成随机数

原始操作记录 # 1.使用时间相关的随机数 利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒) 前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了 TEXT 复制代码 date +%s%N 这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数 2.系统shell…

2020-07-23 21 浏览

正确的删除tc的filter过滤器

原始操作记录 # 直接用过滤器的生成规则去删除TC的filter会导致所有过滤器都被清空 不像class,添加后 想要删除很简单 直接把TC命令中的add换成del就可以了,如果class重复,就会像添加路由出错时候一样有提示。 但是filter不一样,相同规则的filter可以不断持续的添加,规则添加后,内核会用不同的句柄号(handle)来区分, 删除一…

2020-07-23 19 浏览

Linux下" >/dev/null 2>&1 "重定向相关知识说明

原始操作记录 # 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) TEXT 复制代码 command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 & 1)command:表示shell命令或者为一个可执行程序 2)>:表示重定向到哪里 3)/de…

2020-07-23 17 浏览

Linux 下如何批量改名

在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # TEXT 复制代码 rename 's/\.JPG/.jpg/' *.JPG 有可能提示安装 rename 软件包,安装就行 命令关键在于正则表达式…

2020-07-23 15 浏览

Linux中查看用户和组

原始操作记录 # 用户列表文件 /etc/passwd 用户组列表文件 /etc/group 查看系统中有哪些用户 TEXT 复制代码 cut -d : -f 1 /etc/passwd 查看可以登录系统的用户 Bash 复制代码 cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 关键理解 # 这…

2020-07-23 29 浏览

shell命令运行符号 ;,&,&& 的区别

原始操作记录 # TEXT 复制代码 command1 & command2 & command3 表示三个命令同时执行 TEXT 复制代码 command1; command2; command3 表示不管前面命令执行成功没有,后面的命令继续执行 TEXT 复制代码 command1 && command2 && command3 表示只有前面命令执行成功…

2020-07-23 18 浏览

用qemu-nbd将kvm虚拟硬盘mount到host

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # nbd的增加分区的功能默认是关闭的,需要指定max_part这个参数。这个参数指定了一个nbd设备可以有多少个分区。 TEXT 复制…

2020-07-23 21 浏览

shell 中变量的替换

操作前说明 # 在 Linux 环境中执行系统级命令前,建议先确认发行版版本、当前用户权限和目标路径。涉及网络、磁盘、包管理、iptables 或系统服务的操作,最好先在测试环境验证,再放到生产服务器上执行。 原始操作记录 # 条件变量替换: Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换条件放在{}中 (1) ${valu…