运维人员小技巧 - 持续更新中

过滤Apache访问日志中,排名前20的IP

1
cat access.log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -20

手动触发CPU使用率100%的命令

1
2
# Linux
yes > /dev/null &

解决umount target is busy

1
2
3
4
5
6
7
8
# 强制解除挂载
umount -f <path>
-f, --force Force an unmount.

# 指定-l lazy模式后,进行中的访问不受影响,设备不接收新访问,挂载信息会从mount和fstab中消失
# 等到访问该设备的进程结束后解除挂载
umount -l <path>
-l, --lazy Lazy unmount (after the disk operations are done).

查询某个指定服务进程的 PID 值

1
pidof httpd

重置Linux系统的登录密码

重启Linux,出现引导界面时,按下 e 键进入内核编辑界面
在 linux16 参数这行的最后面追加“rd.break”参数,
然后按下 Ctrl + X 组合键来运行修改过的内核程序,大约 30 秒过后,进入到系统的紧急求援模式,
输入以下命令,待系统重启完成后,就可以用新密码登录了。

1
2
3
4
5
6
mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
reboot

yum-config-manager: command not found

yum install yum-utils解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@as ~]# yum-config-manager
-bash: yum-config-manager: command not found
[root@as ~]# yum install yum-utils
...
==================================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================================
Installing:
yum-utils noarch 1.1.31-54.el7_8 base 122 k
Installing for dependencies:
python-kitchen noarch 1.1.1-5.el7 base 267 k

Transaction Summary
==================================================================================================================================================================================================
Install 1 Package (+1 Dependent package)
...

亚马逊云AWS的默认用户名

1
2
3
4
5
6
7
8
9
10
11
EC2 实例的默认用户名由您在启动实例时指定的 AMI 决定。
默认用户名为:
对于 AL2023、Amazon Linux 2 或 Amazon Linux AMI,用户名是 ec2-user。
对于 CentOS AMI,用户名是 centos 或 ec2-user。
对于 Debian AMI,用户名称是 admin。
对于 Fedora AMI,用户名是 fedora 或 ec2-user。
对于 RHEL AMI,用户名是 ec2-user 或 root。
对于 SUSE AMI,用户名是 ec2-user 或 root。
对于 Ubuntu AMI,用户名称是 ubuntu。
对于 Oracle AMI,用户名是 ec2-user。
对于 Bitnami AMI,用户名称是 bitnami。

grep命令检索tab字符

在单引号前面加上 $ 字符,bash就会 \t 解释为tab字符。

1
grep $'\t'

windows下nslookup开启debug模式,查看DNS查询的详细步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\>nslookup
Default Server: test.example.com
Address: 0.0.0.0
> set debug=true
> www.google.co.jp

可以发现如下递归查询过程

1. 先在域服务器上查询A和AAAA记录
DNS 服务器响应NXDOMAIN(未找到条目)

2. 去互联网根服务器查询A和AAAA记录
DNS 服务器响应NXDOMAIN(未找到条目)

3. 从www.google.co.jp获取A记录,AAAA记录
DNS 服务器响应NOERROR

Ubuntu读取审计日志,查询用户操作

查询默认审计日志/var/log/audit/audit.log,

1
# ausearch -if /var/log/audit/audit.log -i -ua 1001

-i: 转换成人类易于理解的形式
-ua: 查询用户ID为1001的用户操作
ausearch 是 Linux 审计框架(Audit Framework)的一个工具,用于查询和分析审计日志。Linux 审计系统通常由 auditd 守护进程管理,并将日志存储在 /var/log/audit/audit.log 中。

linux下占用内存,进行测试的方法

1
2
3
4
5
6
7
# 使用head命令
head -c 500M /dev/zero | tail
head -c 1G /dev/zero | tail

# 使用dd命令,输出到内存映射到的文件系统上。使用完记得删除文件。
dd if=/dev/zero of=/dev/shm/mem_test bs=1M count=1024
rm /dev/shm/mem_test