centos7系统配置

系统

bash 复制代码
cat /etc/redhat-release
# 或
cat /etc/os-release

yum install vim -y
vim --version | head -n 1

时钟

bash 复制代码
date
yum install -y ntp
ntpdate pool.ntp.org
#  adjust time server 84.16.67.12 offset 0.001509 sec
# iP段起始	iP段结束	归属地	网络	Windows子网掩码	Linux子网掩码
# 84.16.64.0	84.16.95.255	瑞士日内瓦州		255.255.224.0	84.16.64.0/19

#!/bin/bash
# 时间同步部署脚本

echo "=== 安装工具 ==="
yum -y install vim net-tools chrony

echo "=== 修改 chrony 配置 ==="
sed -i '/server/d' /etc/chrony.conf
cat >> /etc/chrony.conf << 'EOF'
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
EOF
chronyc sources -v
echo "=== 启动并开机自启 chronyd ==="
systemctl enable --now chronyd

echo "=== 查看状态 ==="
systemctl status chronyd
timedatectl

# chronyc tracking查看当前时间偏移情况
# chronyc sources查看所有 NTP 源状态
# chronyc sourcestats查看各源的统计信息
# chronyc activity查看活动状态
# timedatectl set-timezone Asia/Shanghai设置时区
# 手动强制同步一次

chronyc makestep
# 或使用旧方法:
ntpdate ntp1.aliyun.com

47  ll
48  yum -y install vim net-tools chrony
49  cat >> /etc/chrony.conf << 'EOF'
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
EOF

50  systemctl enable --now chronyd
51  systemctl status  chronyd
52  timedatectl
53  chronyc sources -v
54  systemctl restart chronyd
55  chronyc sources -v
56  systemctl status  chronyd


# yum install -y ntp ; yum -y install vim net-tools chrony
# 安装主程序ntp(即 ntpd);chrony(即 chronyd)
# 时间同步服务传统 NTP 守护进程(ntpd);现代轻量级时间同步工具(chronyd)
# 额外工具无;同时安装 vim(编辑器)、net-tools(网络工具如 ifconfig, netstat)

# MS状态标记(Mode & State)
# Name/IP addressNTP 服务器名称或 IP 地址
# Stratum层级(越小越好,通常 1~3)
# Poll轮询间隔(单位为秒,2^n),如 6 表示 64 秒一次
# Reach可达性(八进制),值越大表示连接越稳定
# LastRx上次接收到数据包的时间(单位:分钟)
# Last sample最近一次时间偏移量和误差

# ^该源是 服务器模式(server),即我们从它获取时间
# *当前 主同步源(active source),正在用来校准本地时间
# +备用源(peer),未被选中但可用
# #本地时钟(仅在无外部源时使用)
# ?不可达(网络问题)
# X时间可能错误(精度差或延迟高)
# -服务器或对等体已关闭
# ~候选源,可能被选为主源

# ntp / ntpd:
# 老牌 NTP 实现,历史悠久。
# 在 CentOS 6 及更早版本中是默认时间同步工具。
# 在 RHEL/CentOS 8+ 中已被移除,不再维护。
# chrony:
# 现代替代方案,专为 不稳定网络、虚拟化、容器环境 设计。
# 自 RHEL 7 / CentOS 7 起成为默认 NTP 客户端。
# 支持更快同步、更好的时钟漂移补偿。

root@elk152:~ # ^C
root@elk152:~ # chronyc sources -v
210 Number of sources = 6

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- ntp8.flashdance.cx            2   6   377    65  +1646us[+1030us] +/-  124ms
^- a.chl.la                      2   6    37     1  +3237us[+3237us] +/-  114ms
^- ntp7.flashdance.cx            2   6   257    63  +4741us[+4124us] +/-  121ms
^- ntp.ams1.nl.leaseweb.net      3   6   377    64  +6028us[+5411us] +/-  236ms
^* 116.62.13.223                 2   6   377     2  +1513us[ +870us] +/-   30ms
^+ 203.107.6.88                  2   6   377     2  -2020us[-2662us] +/-   33ms
root@elk152:~ # arp -a
gateway (10.0.0.2) at 00:50:56:e5:9e:a3 [ether] on ens33
elk150 (10.0.0.150) at 00:50:56:22:7b:40 [ether] on ens33
? (10.0.0.1) at 00:50:56:c0:00:08 [ether] on ens33
root@elk15

# Reference ID743E0DDF (116.62.13.223)当前同步的 NTP 服务器(阿里云)✅ 正常
# Stratum3时间源层级(1 最优,≤3 可接受)✅ 可接受
# System time0.000363132 seconds slow系统比 NTP 慢了 0.363 毫秒✅ 非常好(<1ms)
# Last offset-0.1196 ms上次校正的偏移量✅ 很小
# RMS offset7.78 ms长期平均偏移(Root Mean Square)⚠️ 略高,但通常可接受
# Frequency16.559 ppm slow系统时钟频率偏差(每百万秒慢 16.559 秒)✅ 在合理范围(一般 <100 ppm)
# Residual freq+0.066 ppm当前未补偿的残余频率误差✅ 几乎为零,很好
# Skew4.255 ppm频率不确定性(越小越好)✅ 很低,稳定
# Root delay34.2 ms到 Stratum 1 源的总网络延迟✅ 国内访问阿里云正常
# Root dispersion10.97 ms时间源的最大可能误差✅ 良好(<20ms)
# Update interval65.2 s同步间隔(约 64 秒)✅ 默认值
# Leap statusNormal无闰秒事件✅ 正常

网络

bash 复制代码
# RHEL/CentOS 从很早(5/6 时代)就使用 network-scripts(由 network.service 管理)。
# ✅ CentOS 7 默认安装时仍启用 network-scripts,但底层其实已部分依赖 NetworkManager
# RHEL/CentOS 8 起,network-scripts 被官方标记为"弃用(deprecated)"
# RHEL 9 / Rocky Linux 9 / AlmaLinux 9 中,network-scripts 默认不再安装!
# 特性network-scripts      NetworkManager
# 适用场景服务器、静态网络、无人值守环境   桌面、笔记本、动态网络(WiFi/移动热点)
# 配置方式手动编辑文本文件   命令行 (nmcli)、TUI (nmtui)、GUI、D-Bus API

# 禁用 NetworkManager 对该接口的控制
echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-ens33

# 停止并禁用 NetworkManager(可选,但不推荐完全关闭)
systemctl stop NetworkManager
systemctl disable NetworkManager

# 使用传统网络服务
systemctl enable network
systemctl restart network


# 第一种 使用传统网络服务 network
# /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3b68fac-94fc-4f8d-af84-f99c3c33ec3
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.150
NETMASK=255.0.0.0
GATEWAY=10.0.0.2
DNS1=8.8.8.8
DNS2=114.114.114.114
PEERDNS=no

# TYPE=Ethernet接口类型为以太网
# BOOTPROTO=static使用静态 IP 地址(非 DHCP)
# DEFROUTE=yes设置此接口为默认路由出口
# ONBOOT=yes开机时自动启用该网络接口
# NAME=ens33接口名称
# DEVICE=ens33实际设备名
# UUID=唯一标识符,由 NetworkManager 分配
# TPADDR=10.0.0.150注意:这是错误写法!应为 IPADDR
# NETMASK=255.0.0.0子网掩码为 /8,即整个 10.0.0.0/8 网段
# GATEWAY=10.0.0.2默认网关地址
# DNS1=8.8.8.8, DNS2=114.114.114.114DNS 服务器
# PEERDNS=no不允许 DHCP 覆盖 DNS 设置(即使使用 static 也保留)

systemctl restart network

# 使用 NetworkManager nmcli
# nmcli con modify ens33 ipv4.gateway "10.0.0.2"
# nmcli con up ens33
# 1. 统一改成静态 IP
nmcli connection mod ens33 ipv4.addresses 10.0.0.150/8
# 2. 网关
nmcli connection mod ens33 ipv4.gateway 10.0.0.2
# 3. DNS,多个用空格隔开
nmcli connection mod ens33 ipv4.dns "8.8.8.8 114.114.114.114"
DNS 管理,自动写入 /etc/resolv.conf(可能被覆盖)
cat /etc/resolv.conf
# 4. 把获取方式从 dhcp 改成 manual(关键一步)
nmcli connection mod ens33 ipv4.method manual
# 5. 让配置立即生效(会断 1~2 秒)
nmcli connection down ens33 && nmcli connection up ens33
# nmcli con reload && nmcli con up ens33
# 给物理网卡 ens33 新建一个 NetworkManager 连接(配置文件),连接名叫 ens33,类型为以太网。
# /etc/NetworkManager/system-connections/ 里生成一个 ens33.nmconnection 文件
nmcli con add type ethernet con-name ens33 ifname ens33
# nmcli con up/down/mod 都用这个名字
nmcli con mod ens33 ipv4.addresses 10.0.0.150/8
nmcli con mod ens33 ipv4.gateway 10.0.0.2
nmcli con mod ens33 ipv4.dns "8.8.8.8,114.114.114.114"
nmcli con mod ens33 ipv4.method manual
nmcli con up ens33

ip route show
ip route show default
ip route add default via 10.0.0.2 dev ens33
# ip route add使用 ip 命令添加一条路由规则
# default表示"默认路由",即目标为 0.0.0.0/0(所有 IPv4 地址)
# via 10.0.0.2下一跳(网关)的 IP 地址是 10.0.0.2
# dev ens33指定出口网络设备为 ens33(可选,但推荐明确指定
ip route del default
[root@localhost yum.repos.d]# ip route show
default via 10.0.0.2 dev ens33 proto static metric 100
10.0.0.0/8 dev ens33 proto kernel scope link src 10.0.0.150 metric 100
[root@localhost yum.repos.d]# ip route show default
default via 10.0.0.2 dev ens33 proto static metric 100
10.0.0.0/8 dev ens33 proto kernel scope link src 10.0.0.150 metric 100
[root@localhost yum.repos.d]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114

主机名

bash 复制代码
hostnamectl
hostname
hostnamectl set-hostname elk152
永久主机名存储在:/etc/hostname

28  awk '{print $2}' firewalld.conf
29  cat firewalld.conf
30  hostnamectl
31  hostname
32  hostnamectl set-hostname elk152
33  hostname
34  history

29  hostnamectl set-hostname elk150
30  echo "10.0.0.152 elk152" >> /etc/hosts
31  ping elk 152
32  ping elk152

# 添加主机名
cat > /etc/hosts << 'EOF'
10.0.0.150 elk150
10.0.0.151 elk151
10.0.0.152 elk152
EOF

终端颜色修改

bash 复制代码
# 3. 修改终端颜色
cat << 'EOF' >> ~/.bashrc
PS1='\[\e[34;1m\]\u@\h\[\e[32;1m\]:\[\e[32;1m\]\w\[\e[0m\] \$ '
EOF

source ~/.bashrc

# \[\e[34;1m\] 高亮蓝色 → 用户名 \u 和 @ 主机 \h
# \[\e[32;1m\] 高亮绿色 → 冒号、路径 \w
# \[\e[0m\] 重置颜色 → 后续命令回显保持默认色
# 最终效果示例:
# user@host:/home/user $   (蓝@绿,路径绿色)

yum 源

bash 复制代码
# 1. 清理旧缓存 & 重建
yum clean all
yum makecache

# 2. 修改 yum 源为清华镜像
sed -e 's|#mirrormlist=|mirrormlist=|g' \
    -e 's|baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
    -i.bak /etc/yum.repos.d/CentOS-*.repo

# -i.bak
# 原地修改前先备份,生成 .bak 文件(例如 CentOS-Base.repo.bak),改错可随时回滚。
# 两条替换表达式用 -e 串起来:
# a) s|#mirrormlist=|mirrormlist=|g
# 把被注释掉的 mirrormlist= 打开,恢复镜像列表功能。
# b) s|baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g
# 把官方 http://mirror.centos.org/... 换成清华 HTTPS 镜像站地址。
# 目标文件
# /etc/yum.repos.d/CentOS-*.repo 覆盖 Base、Updates、Extras、AppStream 等所有官方源。


# https://developer.aliyun.com/article/675241
# CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
# CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/CentOS-Base.repo

1  ip a
2  yum install vim   -y
3  vim
4  cd /etc/yum.repos.d/
5  mkdir /etc/yum.repos.d/backup
7  mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
11  curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
13  yum clean all
14  yum makecache

本地离线安装

bash 复制代码
# 安装 bind-utils 以使用 nslookup
# bind-utils 包含常用 DNS 工具:nslookup, dig, host 等。
nslookup mirrors.aliyun.com

grep keepcache /etc/yum.conf
sed -i 's/keepcache=0/keepcache=1/' /etc/yum.conf

# rpm 包会留在 /var/cache/yum/*/packages/(CentOS 7 默认路径)。
# yum install/yum update 时,
# 下次再装相同版本,YUM 会优先用本地缓存,不再联网下载。

# 如果没有这一行,就追加
grep -q '^keepcache=' /etc/yum.conf || echo 'keepcache=1' >> /etc/yum.conf

yum install -y \
  unzip \
  wget \
  lrzsz \
  nc \
  nmap \
  vim \
  bash-completion \
  tree

# 创建目标目录
mkdir -p /opt/offline-pkgs

# 复制所有已缓存的 RPM 包(去重)
find /var/cache/yum -name "*.rpm" -exec cp {} /opt/offline-pkgs/ \;

# 去除重复文件(同名即视为重复)
cd /opt/offline-pkgs

root@localhost opt]# rm -f offline-tools-centos7.tar.gz
[root@localhost opt]# tar -czvf offline-tools-centos7.tar.gz offline-pkgs
offline-pkgs/
offline-pkgs/bash-completion-2.1-8.el7.noarch.rpm
offline-pkgs/lrzsz-0.12.20-36.el7.x86_64.rpm
offline-pkgs/nmap-6.40-19.el7.x86_64.rpm
offline-pkgs/nmap-ncat-6.40-19.el7.x86_64.rpm
offline-pkgs/tree-1.6.0-10.el7.x86_64.rpm
offline-pkgs/wget-1.14-18.el7_6.1.x86_64.rpm
offline-pkgs/libpcap-1.5.3-13.el7_9.x86_64.rpm
offline-pkgs/unzip-6.0-24.el7_9.x86_64.rpm
[root@localhost opt]# du -h
5.3M    ./offline-pkgs
11M     .
[root@localhost opt]# ll
总用量 5208
drwxr-xr-x. 2 root root    4096 12月 18 11:24 offline-pkgs
-rw-r--r--. 1 root root 5325715 12月 18 11:31 offline-tools-centos7.tar.gz
# 验证大小(应该几 MB)
ls -lh offline-tools-centos7.tar.gz


# 第二种方式

yum install -y yum-utils
# 创建保存目录
mkdir -p /root/vim-offline

# 下载 vim 及其所有依赖到指定目录
yum install --downloadonly --downloaddir=/root/vim-offline vim

# 1. 开启缓存
echo "keepcache=1" >> /etc/yum.conf

# 2. 安装工具(或直接用 yumdownloader)
yum install -y yum-utils
yumdownloader --resolve --destdir=/opt/offline-pkgs \
  unzip wget lrzsz nc nmap vim bash-completion tree

# 3. 打包
cd /opt && tar -czvf offline-tools-centos7.tar.gz offline-pkgs
# 查看压缩包内文件列表
tar -tzvf offline-tools-centos7.tar.gz
# 递归删除选项 -r(或 -R)
rm -rf offline-pkgs2/

scp 安装传送文件,rpm 离线安装

bash 复制代码
# 指定端口
scp -P 2222 /opt/offline-tools-centos7.tar.gz root@10.0.0.151:/root/

root@elk150:/opt # scp /opt/offline-tools-centos7.tar.gz root@10.0.0.151:/root/
#The authenticity of host '10.0.0.151 (10.0.0.151)' can't be established.
#ECDSA key fingerprint is SHA256:GhzgfZoIYt+d8KM6z2pPFZNU1fB/C6ljAosRI8+gDVA.
#ECDSA key fingerprint is MD5:9b:a5:84:0d:fa:42:df:b8:cf:f4:79:df:2e:f9:47:a0.

ls -lh /root/offline-tools-centos7.tar.gz
# 指定目标目录
tar xf offline_rpms.tgz -C /opt/repo

tar -xzvf offline-tools-centos7.tar.gz

# 安装所有 RPM(自动解决依赖)
cd offline-pkgs
yum localinstall -y *.rpm


# 在 151 主机上临时关闭防火墙(测试用)
systemctl stop firewalld
# 或永久放行
firewall-cmd --permanent --add-service=ssh
# firewall-cmd --reload指令的作用
# --permanent 把规则写进 /etc/firewalld/ 下的 XML 配置文件,下次开机/重载依然生效。
# --add-service=ssh 等价于放行 22/tcp(firewalld 内置了 ssh 服务定义)

禁用 sshd 的 DNS 解析

bash 复制代码
# sshd修改 关闭SSH登录时的DNS反向解析 关闭GSSAPI认证机制
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i 's/#GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
grep "GSSAPIAuthentication" /etc/ssh/sshd_config

# 方法二
# 禁用 UseDNS(兼容空格) 
sed -i 's/^#*UseDNS[[:space:]]*yes/UseDNS no/' /etc/ssh/sshd_config

# 禁用 GSSAPIAuthentication(兼容空格)
sed -i 's/^#*GSSAPIAuthentication[[:space:]]*yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config

# ^#*:匹配行首任意数量的 #(包括没有)
# [[:space:]]*:匹配任意数量的空格或制表符
# 这样能覆盖 #GSSAPI...、# GSSAPI...、GSSAPI... 等多种形式
systemctl restart sshd

禁用防火墙

bash 复制代码
systemctl disable --now firewalld && systemctl is-enabled firewalld
systemctl status firewalld

# systemctl disable --now firewalld

# --now:立即停止服务,并设置开机不启动

# 效果等同于 systemctl stop firewalld && systemctl disable firewalld

# systemctl is-enabled firewalld

# 返回 disabled 表示成功禁用

# systemctl status firewalld

# 查看服务状态(应显示 inactive)

systemctl stop firewalld
systemctl disable firewalld

配置指令

bash 复制代码
# 查看防火墙是否运行:

sudo systemctl status firewalld
# 如果显示 active (running) → 防火墙 开启
# 如果显示 inactive (dead) → 防火墙 关闭
# 查看当前开放的端口和服务:

sudo firewall-cmd --list-all
# 临时开放 9200 端口(重启后失效):

sudo firewall-cmd --add-port=9200/tcp
# 永久开放 9200 端口:

sudo firewall-cmd --permanent --add-port=9200/tcp
sudo firewall-cmd --reload

# 如果你使用的是传统的 iptables
# 查看规则:

sudo iptables -L -n -v
# 但现代系统一般不再直接用 iptables,而是由 firewalld 或 ufw 管理。

SELinux 内核强制访问控制

bash 复制代码
# 防止因安全策略限制导致的服务异常
# SELinux 在 enforcing 模式下会: 
# 阻止进程访问非标准端口(如 Elasticsearch 的 9200)
# 维度SELinux   防火墙

# 工作层级内核强制访问控制  (MAC)网络层/传输层包过滤

# 保护对象进程、文件、目录、端口、系统   调用网络连接(源IP、端口、协议)

# 典型场景httpd 只能访问 /var/www/html,不能写 /etc/passwd;即使 root 被黑,也能挡住横向移动只允许 22/80/443 入站,屏蔽 3306



sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

grep "SELINUX=" /etc/selinux/config

setenforce 0

getenforce
# 每个进程、文件、端口都被打上 安全标签(Security Context),只有策略明确允许的操作才能执行。

# 对象安全上下文示例
# 文件system_u:object_r:httpd_sys_content_t:s0
# 进程unconfined_u:unconfined_r:httpd_t:s0
# 端口system_u:object_r:http_port_t:s0


# 字段当前值含义
# SELinux statusenabledSELinux 功能已启用(内核支持)
# Current modepermissive当前运行模式:宽容模式 → 不阻止操作,只记录日志
# Mode from config fileenforcing配置文件 /etc/selinux/config 中设置的是 enforcing
# Loaded policy nametargeted使用的是"针对性策略"(只保护关键服务)

ssh登录

bash 复制代码
cat > /etc/hosts << 'EOF'
10.0.0.150 elk150
10.0.0.151 elk151
10.0.0.152 elk152
EOF

# 生成 SSH 密钥(如果还没有)
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa

# 将公钥复制到 elk151 和 elk152(假设都用 root)
ssh-copy-id root@10.0.0.151
ssh-copy-id root@10.0.0.152

for ((host_id=150;host_id<=152;host_id++)); do ssh-copy-id elk$((host_id)); done
yum -y install rsync
yumdownloader --resolve --destdir=/opt/offline-pkgs rsync
ssh elk151


root@elk150:/usr/local/sbin # /usr/local/sbin/data_rsync.sh /mnt/text.txt
=== rsyncing elk150: text.txt ===
命令执行成功!
=== rsyncing elk151: text.txt ===
命令执行成功!
=== rsyncing elk152: text.txt ===
命令执行成功!
root@elk150:/usr/local/sbin # 

集群同步脚本

bash 复制代码
#!/bin/bash
# Author: gonggbb
# Description: 自动同步文件到集群其他节点

if [ $# -ne 1 ]; then
    echo "Usage: $0 /path/to/file(绝对路径)"
    exit 1
fi

# 判断文件是否存在
if [ ! -e "$1" ]; then
    echo "[ $1 ]dir or file not find!"
    exit 1
fi

# 获取父路径
fullpath=$(dirname "$1")
basename=$(basename "$1")

# 进入父路径
cd "$fullpath"

# 循环同步到其他两个节点
for ((host_id=150; host_id<=152; host_id++)); do
    # 使用终端输出变为绿色
    tput setaf 2
    echo "=== rsyncing elk$((host_id)): $basename ==="
    tput setaf 7

    # 将数据同步到其他两个节点
    rsync -az $basename `whoami`@elk$((host_id)):$fullpath
    if [ $? -eq 0 ]; then
        echo "命令执行成功!"
    fi
done

journalctl

bash 复制代码
# 操作系统:几乎所有现代 Linux 发行版(如 CentOS/RHEL 7+、Ubuntu 16.04+、Debian 8+、Fedora 等)默认都使用 systemd,因此也都自带 journalctl。

# 旧系统(如 CentOS 6)不使用 systemd,就没有 journalctl
# 提示使用 systemctl enable/start
# 路径:一般位于 /usr/bin/journalctl
# 你可以通过以下命令确认:


which journalctl
# 输出示例:/usr/bin/journalctl

systemctl --version
# 查看 systemd 版本,确认系统使用的是 systemd

# 实时跟踪 elasticsearch 日志(类似 tail -f)
sudo journalctl -u elasticsearch.service -f

# 查看最近 100 行日志
sudo journalctl -u elasticsearch.service -n 100

# 查看本次系统启动后的日志
sudo journalctl -u elasticsearch.service -b

# 查看带时间戳、按页显示(推荐)
sudo journalctl -u elasticsearch.service --since "2025-12-19 08:00"

sed

bash 复制代码
# pattern { action }          # 满足 pattern 才执行 action
# pattern                     # 缺省 action = 打印整行
# { action }                  # 缺省 pattern = 对所有行生效
# 行号、字段、分隔符
# $0  整行
# 1第1列... NF 最后一列
# NF  当前行字段数
# NR  已读行号(从1开始)
# FNR 多个文件时各自的行号
# FS  输入列分隔符(-F 或 BEGIN 里改)
# OFS 输出列分隔符

# length(s)      字符串长度
# substr(s,m,n)  子串
# split(s,a,sep) 把 s 按 sep 拆到数组 a
# system(cmd)    调用系统命令
# tolower/toupper 大小写转换
# int()          取整
# rand()         0-1 随机数(需 srand() 播种子)

awk '{print $1,$3}' file
相关推荐
zhdy567894 小时前
最简单方法 设置matlab坐标轴刻度标签的字号,设置坐标轴标题和图形标题,并指定字号。画出的图片背景设置为白色,
笔记
崇山峻岭之间5 小时前
Matlab学习笔记02
笔记·学习·matlab
木木em哈哈5 小时前
C语言多线程
笔记
hssfscv7 小时前
Javaweb 学习笔记——html+css
前端·笔记·学习
Dream Algorithm8 小时前
自古英雄多寂寥
笔记
yuhaiqun19898 小时前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown
apcipot_rain9 小时前
汇编语言与逆向分析 一轮复习笔记
汇编·笔记·逆向
Lv11770089 小时前
Visual Studio中的多态
ide·笔记·c#·visual studio
HollowKnightZ9 小时前
论文阅读笔记:Class-Incremental Learning: A Survey
论文阅读·笔记