目录
一、要求
2. 脚本简介
1. 脚本内容
2. 脚本处理
(1) 脚本说明
(2) 脚本命名
(三)执行权限
3.运行脚本
(1)命令执行
(2)执行结果
3. 扩展:
1、部署方向
2.另存为可添加记录的文件
(1)新的脚本内容
(2) 脚本说明
(3) 执行脚本
(四)检验报告
一、要求
创建Linux 检查脚本来检查系统硬件和网络连接状态。这可以包括多个方面,例如CPU、内存、磁盘和网络接口状态。
二、脚本介绍
1、脚本内容
下面是Linux 的bash 脚本示例,涵盖了所有必要的检查点。
#!/bin/bash
# 打印标题
echo \’======系统检查报告=====\’
echo \’开始时间: $(日期)\’
# 查看本地CPU信息
echo \’—–CPU信息—–\’
LSCPU
# 查看本地内存使用情况
echo \’—–内存使用情况—–\’
自由-h
# 检查磁盘使用情况
echo \’—–磁盘使用情况—–\’
DF-H
# 检查网络接口状态
echo \’—–网络接口状态—–\’
IP地址显示
# 检查网络连接(尝试ping 外部地址,例如Google 的DNS 服务器)
echo \’—–网络连通性测试(ping vidisit.cn)—–\’
ping -c 4 www.vidisit.cn
# 检查系统负载
echo \’—–系统负载—–\’
工作时间
# 脚本结束
echo \’======测试完成=====\’
echo \’结束时间: $(日期)\’
2、脚本处理
(1)脚本说明
– 该脚本使用一些基本的Linux 命令来检查系统状态。您可以根据需要调整或添加更多命令和检查点。
– ping 命令用于测试网络连通性。我们这里以vidisit.cn为例,但您可以根据您的实际需要将其更改为任何其他受信任的外部地址。
– 脚本中的ip addr show 命令显示网络接口的状态,包括其IP 地址和其他信息。
– df -h 和free -h 分别以人类可读的格式显示磁盘和内存使用情况。
– lscpu 显示CPU架构信息。
– uptime 显示自上次启动以来系统的正常运行时间和负载信息。
(2)脚本命名
将上述脚本保存在名为system_check.sh 的文件中。
(3)执行权限
授予脚本执行权限:chmod +x system_check.sh。
3、脚本执行
(1)执行命令
使用以下命令运行脚本:
sh 系统检查.sh
(2)执行结果
执行结果如下。
[root@ecs-52a1 quinn]# sh system_check.sh
=====系统检查报告=====
开始时间: 7 月26 日星期五21:02:34 CST 2024
—–CPU信息—-
架构: x86_64
CPU工作模式: 32位、64位
字节顺序: 小端
CPU: 4
在线CPU列表: 0-3
每个核心的线程数: 2
每个插槽的核心数: 2
插座: 1
NUMA 节点: 1
供应商ID: 正版英特尔
CPU 系列: 6
型号: 85
型号名称: Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz
步进: 7
CPU MHz: 2600.000
博高MIPS: 5200.00
虚拟机管理程序供应商: KVM
虚拟化类型: 完整
一级缓存: 32K
一级缓存: 32K
二级缓存: 1024K
三级缓存: 36608K
NUMA 节点0 CPU: 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 系统调用nx pdpe1gb rdtscp lm Constant_tsc rep_good nopl xtopology nonstop_tsceagerfpu pni pclmulqdq ssse3 fma c x1 6 PC ID sse4_1 sse4_2 x2apic movbe Popcnt tsc_deadline_timer aes xsave avx f16c rdrand 管理程序lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflu shopt clwb av x512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni md_clear spec_ctrl intel_stibp flash_l1d Arch_capability
– – – 内存使用情况 – – –
可用的免费共享增益/缓存总数
Mem: 7.6G 3.7G 1.5G 400M 2.5G 3.3G
互换: 0B 0B 0B
– – – 磁盘使用状态- – –
使用的文件系统大小Avail Use% Mount 目标
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 401M 3.5G 11%/运行
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 99G 14G 81G 15% /
tmpfs 783M 0 783M 0% /运行/用户/0
tmpfs 783M 0 783M 0% /运行/用户/1001
—– 网络接口状态—–
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue 状态未知组默认qlen 1000
链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 范围主机lo
永远有效_lft 永远首选_lft
inet6 :1/128 范围主机
永远有效_lft 永远首选_lft
2: eth0: 广播、组播、UP、LOWER_UP mtu 1500 qdisc htb 状态UP 组默认qlen 1000
链接/以太fa:16:3e:2f:45:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.138/24 brd 192.168.0.255 范围全局noprefixroute 动态eth0
effective_lft 49414 秒Priority_lft 49414 秒
inet6 fe80:f816:3eff:fe2f:4548/64 范围链接
永远有效_lft 永远首选_lft
—– 网络连通性测试(ping vidisit.cn)—–
PING web.s1267.vhostgo.com (211.149.238.18) 56(84) 字节数据。
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=1 ttl=46 时间=38.4 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=2 ttl=46 时间=38.2 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=3 ttl=46 时间=38.3 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=4 ttl=46 时间=38.2 ms
— web.s1267.vhostgo.com ping 统计数据—
发送4 个数据包,接收4 个数据包,丢包0%,时间3198 ms
rtt 最小值/平均值/最大值/mdev=38.228/38.330/38.499/0.176 毫秒
—–系统负载—–
21:02:38 最多64 天、32 分钟、1 位用户、平均负载: 0.29、0.22、0.23
=====测试完成=====
结束时间: 7 月26 日星期五21:02:38 CST 2024
[root@ecs-52a1 奎因]#
三、扩展:
1、扩展方向
脚本的输出可以重定向到文件./system_check.sh system_check_report.txt以供后续分析和归档。
如果需要定期检查,可以考虑在cron作业中添加脚本来实现自动检查。
对于更复杂的检查,例如服务状态、安全设置等,您可能需要编写更详细的脚本或使用现有的监控和审核工具。
2、保存为可追加记录的文件
保存为文件时,文件名包括当前日期和时间。如何更改脚本?
(1)新的脚本内容
#!/bin/bash
# 生成包含当前日期和时间的文件名
文件名=\’system_check_report_$(日期+%Y%m%d_%H%M%S).txt\’
# 打印标题
echo \’======系统验证报告=====\’ \’$filename\’ |
echo \’开始时间: $(日期)\’ | tee -a \’$文件名\’
# 查看CPU信息
echo \’—– CPU信息—–\’ tee -a \’$filename\’ | echo \’—– CPU信息—–\’ tee -a \’$filename\’ |
lscpu | tee -a \’$文件名\’
# 检查内存使用情况
echo \’—– 内存使用情况—–\’ tee -a \’$filename\’ |
免费-h | 茶-a \’$文件名\’
# 检查磁盘使用情况
echo \’—– 磁盘使用情况—–\’ tee -a \’$filename\’ |
df -h | tee -a \’$文件名\’
# 检查网络接口状态
echo \’—– 网络接口状态—–\’ tee -a \’$filename\’ |
ip 地址show -a \’$filename\’
# 检查网络连接(尝试ping 外部地址,例如vidisit 的DNS 服务器)
echo \’—– 测试网络连接(ping www.vidisit.cn) —–\’ | \’$filename\’
ping -c 4 www.vidisit.cn tee -a \’$filename\’
# 检查系统负载
echo \’—–系统负载—–\’ tee -a \’$filename\’ |
正常运行时间| tee -a \’$filename\’
# 脚本结束
echo \’======验证完成=====\’ tee -a \’$filename\’ |
echo \’结束时间: $(日期)\’ | \’$文件名\’ |
(2)脚本解释
该脚本使用tee 命令写入标准输出和文件。 -a 选项表示追加模式,每次运行脚本时,新的输出都会追加到文件末尾,而不是覆盖旧内容。
date +%Y%m%d_%H%M%S 用于生成年、月、日、时、分、秒、秒格式的日期和时间字符串。该字符串将用作文件名的一部分。
(3)脚本执行
使用以下命令运行脚本:
sh system_check_add.sh
我得到以下结果:
[root@ecs-52a1 quinn]# sh system_check_
system_check_add.sh system_check_report_20240726_205829.txt system_check_report_20240726_205926.txt
[root@ecs-52a1 quinn]# sh system_check_add.sh
=====系统检查报告=====
开始时间: 7 月26 日星期五21:10:21 CST 2024
—–CPU信息—-
架构: x86_64
CPU工作模式: 32位、64位
字节顺序: 小端
CPU: 4
在线CPU列表: 0-3
每个核心的线程数: 2
每个插槽的核心数: 2
插座: 1
NUMA 节点: 1
供应商ID: 正版英特尔
CPU 系列: 6
型号: 85
型号名称: Intel(R) Xeon(R) Gold 6278C CPU @ 2.60GHz
步进: 7
CPU MHz: 2600.000
博高MIPS: 5200.00
虚拟机管理程序供应商: KVM
虚拟化类型: 完整
一级缓存: 32K
一级缓存: 32K
二级缓存: 1024K
三级缓存: 36608K
NUMA 节点0 CPU: 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 系统调用nx pdpe1gb rdtscp lm Constant_tsc rep_good nopl xtopology nonstop_tsceagerfpu pni pclmulqdq ssse3 fma c x1 6 PC ID sse4_1 sse4_2 x2apic movbe Popcnt tsc_deadline_timer aes xsave avx f16c rdrand 管理程序lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflu shopt clwb av x512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni md_clear spec_ctrl intel_stibp flash_l1d Arch_capability
– – – 内存使用情况 – – –
可用的免费共享增益/缓存总数
Mem: 7.6G 3.7G 1.5G 400M 2.5G 3.3G
互换: 0B 0B 0B
– – – 磁盘使用状态- – –
使用的文件系统大小Avail Use% Mount 目标
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 401M 3.5G 11%/运行
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 99G 14G 81G 15% /
tmpfs 783M 0 783M 0% /运行/用户/0
tmpfs 783M 0 783M 0% /运行/用户/1001
—– 网络接口状态—–
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue 状态未知组默认qlen 1000
链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 范围主机lo
永远有效_lft 永远首选_lft
inet6 :1/128 范围主机
永远有效_lft 永远首选_lft
2: eth0: 广播、组播、UP、LOWER_UP mtu 1500 qdisc htb 状态UP 组默认qlen 1000
链接/以太fa:16:3e:2f:45:48 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.138/24 brd 192.168.0.255 范围全局noprefixroute 动态eth0
valid_lft 86266secpreferred_lft 86266sec
inet6 fe80:f816:3eff:fe2f:4548/64 范围链接
永远有效_lft 永远首选_lft
—– 网络连通性测试(ping www.vidisit.cn) —–
PING web.s1267.vhostgo.com (211.149.238.18) 56(84) 字节数据。
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=1 ttl=46 时间=38.3 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=2 ttl=46 时间=38.2 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=3 ttl=46 时间=38.4 ms
来自211.149.238.18 (211.149.238.18): 的64 个字节icmp_seq=4 ttl=46 时间=38.2 ms
— web.s1267.vhostgo.com ping 统计数据—
发送4 个数据包,接收4 个数据包,丢包0%,时间5557 ms
rtt 最小值/平均值/最大值/mdev=38.218/38.306/38.419/0.250 毫秒
—–系统负载—–
21:10:28 最多64 天、40 分钟、1 位用户、平均负载: 0.13、0.19、0.22
=====测试完成=====
结束时间: 7 月26 日星期五21:10:28 CST 2024
[root@ecs-52a1 奎因]#
[root@ecs-52a1 奎因]#
(4)检查报告
当您运行此脚本时,您将获得一个以当前日期和时间命名的文件。该文件包含所有测试结果。
如下所示:
以上脚本均为Linux(centos7)上的实际测试结果。任何人都可以放心使用。
您可以在文章下方找到我的联系信息。用鼠标“点击”下面的“Widist-视频系统微信名片”文字,就会显示我的二维码。欢迎联系、洽谈。
# 上述有关Linux bash 脚本的信息仅供参考,该脚本检查Linux 系统的硬件和网络运行状况并生成检查报告,您可以将其添加到您的记录中。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/94077.html