内容一:zgrep 命令的用法
和 grep 命令相同
内容二:zgrep 命令的选项
和 grep 命令相同,除了以下选项
1) –dereference-recursive 或者 -R
2) –directories 或者 -d
3) –exclude
4) –exclude-from
5) –exclude-dir
6) –include
7) –null 或者 -Z
8) –null-data 或者 -z
9) –recursive 或者 -r
和 grep 命令相同
和 grep 命令相同,除了以下选项
1) –dereference-recursive 或者 -R
2) –directories 或者 -d
3) –exclude
4) –exclude-from
5) –exclude-dir
6) –include
7) –null 或者 -Z
8) –null-data 或者 -z
9) –recursive 或者 -r
在配置了 logratate 日志之后,想要查看设置的部分配置是否起到了作用,可以使用 logrotate 立刻让日志进行轮转
# logrotate -f -v /etc/logrotate.d/syslog
(补充:这里的 /etc/logrotate.d/syslog 是 logrotate 的配置文件)
1) /var/log/boot.msg,包含系统启动时显示在屏幕上的信息
(补充:当进入系统时,可以同时按下 “ctrl” 键和 “alt” 键和 “f10” 键切换到显示日志的界面,之后可以再通过 KVM 显示系统启动时显示在屏幕上的信息。)
2) /var/log/boot.omsg,包含上一次系统启动时显示在屏幕上的信息
3) /var/log/messages,包含几乎所有日志
4) /var/log/warn,包含 WARNING 也就是级别 4 以上的所有日志
5) /var/log/wtmp,包含和系统登录和重启的所有日志
(补充:可以通过 last 命令读取)
6) /var/log/YaST2/y2log,包含 YaST 的所有日志
7) /var/log/xinetd.log,包含 xinetd 服务的所有日志
8) /var/log/dump/,包含 Kdump 工具在系统宕机时收集的所有故障信息
9) /var/log/atop,包含 Atop 工具收集的系统资源 (CPU、内存、系统进程、IO) 的所有使用信息
服务器系统配置好可用的软件源
# yum -y install cockpit cockpit-dashaboard
(补充:cockpit 是管理单台主机的程序,cockpit-dashaboard 是管理多台主机的程序)
# systemctl enable --now cockpit.socket
使用浏览器登录:https://<server IP address>:9090
# grep -P '^root' /etc/passwd
或者:
# grep --perl-regexp '^root' /etc/passwd
(补充:这里以匹配 /etc/passwd 文件里开头为 root 的行为例)
# grep -P 'name\\s*=\\s*mingyuzhu' test.txt
或者:
# grep --perl-regexp 'name\\s*=\\s*mingyuzhu' test.txt
(补充:这里以在 test.txt 文件里匹配包含内容 name=mingyuzhu 的行,等号 “=” 两边可以有任意多个空格 “ ” 为例)
# grep -rE "^\\\$InputTCPServerRun" /etc/rsyslog.conf
(补充:这里以在 /etc/rsyslog.conf 文件里匹配包含内容以内容 $InputTCPServerRun 开头的行为例)
(注意:匹配美元 “$” 符号时需要前面有 3 个斜杠 “\”)
# grep -rEi "(mingyuzhu|zhumingyu)?" test.txt
(补充:这里以在 test.txt 文件里匹配出现内容 mingyuzhu 或内容 zhumingyu 的行为例)
# grep -e '^root' /etc/passwd
或者:
# grep --regexp=PATTERN '^root' /etc/passwd
(补充:这里以匹配 /etc/passwd 文件中开头为 root 的行为例)
# grep -E '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# grep -P '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# grep --extended-regexp '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行为例)
# ip route get 127.0.0.1
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
cache <local>
# ip route get 127.0.0.1 | grep -P '\d+\.\d+\.\d+\.\d+(?= dev)'
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
(补充:这里以匹配字符串 ‘ dev’ (dev 前面有 1 个空格) 前面的 IP 地址为例)
(注意:这里匹配到的是第 1 个 127.0.0.1)
# ip route get 127.0.0.1
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
cache <local>
# ip route get 127.0.0.1 | grep -Po '(?<=dev )\S+'
lo
(补充:这里以匹配字符串 ‘dev ‘ (dev 后面有 1 个空格) 后面任意多个非空字符为例)
# ip route get 127.0.0.1
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
cache <local>
ip route get 127.0.0.1 | grep -P '(?<!local )127.0.0.1'
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
(补充:这里以匹配前面不是 ‘local ‘ (local 后面有 1 个空格) 的 127.0.0.1 为例)
(注意:这里匹配到的是第 2 个 127.0.0.1)
# ip route get 127.0.0.1
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
cache <local>
# ip route get 127.0.0.1 | grep -P '127.0.0.1(?! dev)'
local 127.0.0.1 dev lo src 127.0.0.1 uid 1001
(补充:这里以匹配后面不是 ‘ dev’ (dev 前面有 1 个空格) 的 127.0.0.1 为例)
(注意:这里匹配到的是第 2 个 127.0.0.1)
# egrep -n '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --line-number '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --line-buffered '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行并显示行号为例)
# egrep -n ^$ /etc/resolv.conf
或者:
# egrep --line-number ^$ /etc/resolv.conf
或者:
# egrep --line-buffered ^$ /etc/resolv.conf
(补充:这里以匹配 /etc/resolv.conf 里的空行并显示行号为例)
# egrep -v '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --invert-match '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里不含有 IP 地址的行并显示行号为例)
# egrep -v ^$ /etc/resolve.conf
或者:
# egrep --invert-match ^$ /etc/resolve.conf
(补充:这里以匹配 /etc/resolve.conf 文件里不为空的行为例)
# grep '^[^#]' /etc/resolve.conf
(补充:这里以匹配 /etc/resolve.conf 文件里不以井号 “#” 开头的行为例)
# grep '^[^#| ]' /etc/resolve.conf
(补充:这里以匹配 /etc/resolve.conf 文件里不以井号 “#” 和空格 “ ” 开头的行为例)
# egrep -o '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --only-matching '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 里的 IP 地址为例)
(注意:这里匹配后只显示 IP 地址,而不显示 IP 地址所在行里的其他内容)
# egrep -i '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --ignore-case '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行并忽略大小写为例)
# egrep -c '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
或者:
# egrep --count '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行的数量为例)
# egrep --color=auto '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行并自动添加颜色为例)
# egrep --color=no '([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}' /etc/sysconfig/network-scripts/ifcfg-ens192
(补充:这里以匹配 /etc/sysconfig/network-scripts/ifcfg-ens192 文件里含有 IP 地址的行并取消自动添加颜色为例)
# grep -e root -e zhumingyu /etc/passwd
(补充:这里以匹配 /etc/passwd 文件中包含 root 或 zhumingyu 的行为例)
# grep -a 10 eternalcenter test.txt
或者:
# grep --text 10 eternalcenter test.txt
(补充:这里以匹配 test.txt 文件中包含 eternalcenter 的行并显示其前 10 行为例)
# grep -b 10 eternalcenter test.txt
或者:
# grep --byte-offset 10 eternalcenter test.txt
(补充:这里以匹配 test.txt 文件中包含 eternalcenter 的行并显示其后 10 行为例)
# grep -a -b 10 eternalcenter test.txt
或者:
# grep --text --byte-offset 10 eternalcenter test.txt
(补充:这里以匹配 test.txt 文件中包含 eternalcenter 的行并显示其前后 10 行为例)
# grep -q root /etc/passwd
或者:
# grep --quiet root /etc/passwd
或者:
# grep --silent root /etc/passwd
# echo $?
0
(
补充:
1) 这种方法主要用于在 Shell 脚本中,随后使用 if 判断判断匹配是否成功
2) 这里以匹配 /etc/passwd 中是否包含 root 用户为例
)
# grep -rE "^\\\$InputTCPServerRun" /etc/rsyslog.conf /etc/rsyslog.d/*
(补充:这里以在 /etc/rsyslog.conf 文件和 /etc/rsyslog.d/* 文件里匹配以$InputTCPServerRun 内容开头的行为例)
# grep -R -- '--autologin' test.txt
(补充:这里以在 test.txt 文件里匹配包含 –autologin 内容的行为例)