Hello World
type: channel
link: https://blog.olio.fun/
description: Your description here.
items: Linux查看硬件配置信息
items: FastDFS
items: Vulhub靶场环境搭建踩坑记录
items: Linux入侵检测病毒清理流程
items: 部署安全狗
items: Linux系统查询端口是否开放
items: SpringBoot 接口签名校验实践
items: 识别代理工具流量特征：从SSR、V2Ray、Clash到Trojan
items: Centos linux命令
items: linux运维巡检脚本

Linux查看硬件配置信息
type: item
date: 2024-04-28T16:15:00+00:00
description: 查看CPU信息：使用命令cat /proc/cpuinfo可以查看CPU的详细信息，包括型号、主频、核心数等。查看内存信息：使用命令cat /proc/meminfo可以查看系统的内存信息，包括总内存、可用内存、缓存等。查看硬盘信息：使用命令fdisk -l可以列出系统中的硬盘信息，包括硬盘的容量、分区情况等。使用命令df -h可以查看文件系统的使用情况，包括磁盘空间的总量、已用空间、可用空间等。查看网络设备信息：使用命令ifconfig可以查看网络设备的配置信息，包括IP地址、子网掩码、网关等。使用命令iwconfig可以查看无线网络设备的配置信息，包括SSID、信号强度等。查看显卡信息：使用命令lspci | grep VGA可以查看系统中的显卡信息，包括显卡型号、厂商等。查看主板信息：使用命令dmidecode -t baseboard可以查看主板的详细信息，包括制造商、型号等。

FastDFS
type: item
date: 2024-04-28T16:08:19+00:00
description: 一、FastDFS介绍FastDFS开源地址：https://github.com/happyfish100参考：分布式文件系统FastDFS设计原理 参考：FastDFS分布式文件系统个人封装的FastDFS Java API：https://github.com/bojiangzhou/lyyzoo-fastdfs-java1、简介FastDFS 是一个开源的高性能分布式文件系统（DFS）。 它的主要功能包括：文件存储，文件同步和文件访问，以及高容量和负载平衡。主要解决了海量数据存储问题，特别适合以中小文件（建议范围：4KB < file_size <500MB）为载体的在线服务。FastDFS 系统有三个角色：跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。 Tracker Server：跟踪服务器，主要做调度工作，起到均衡的作用；负责管理所有的 storage server和 group，每个 storage 在启动后会连接 Tracker，告知自己所属 group 等信息，并保持周期性心跳。 Storage Server：存储服务器，主要提供容量和备份服务；以 group 为单位，每个 group 内可以有多台 storage server，数据互为备份。 Client：客户端，上传下载数据的服务器，也就是我们自己的项目所部署在的服务器。2、FastDFS的存储策略为了支持大容量，存储节点（服务器）采用了分卷（或分组）的组织方式。存储系统由一个或多个卷组成，卷与卷之间的文件是相互独立的，所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成，一个卷下的存储服务器中的文件都是相同的，卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时，同步已有的文件由系统自动完成，同步完成后，系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时，可以动态添加卷。只需要增加一台或多台服务器，并将它们配置为一个新的卷，这样就扩大了存储系统的容量。3、FastDFS的上传过程FastDFS向使用者提供基本文件访问接口，比如upload、download、append、delete等，以客户端库的方式提供给用户使用。Storage Server会定期的向Tracker Server发送自己的存储信息。当Tracker Server Cluster中的Tracker Server不止一个时，各个Tracker之间的关系是对等的，所以客户端上传时可以选择任意一个Tracker。当Tracker收到客户端上传文件的请求时，会为该文件分配一个可以存储文件的group，当选定了group后就要决定给客户端分配group中的哪一个storage server。当分配好storage server后，客户端向storage发送写文件请求，storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid，最后根据以上的信息生成文件名存储文件。4、FastDFS的文件同步写文件时，客户端将文件写至group内一个storage server即认为写文件成功，storage server写完文件后，会由后台线程将文件同步至同group内其他的storage server。每个storage写文件后，同时会写一份binlog，binlog里不包含文件数据，只包含文件名等元信息，这份binlog用于后台同步，storage会记录向group内其他storage同步的进度，以便重启后能接上次的进度继续同步；进度以时间戳的方式进行记录，所以最好能保证集群内所有server的时钟保持同步。storage的同步进度会作为元数据的一部分汇报到tracker上，tracke在选择读storage的时候会以同步进度作为参考。5、FastDFS的文件下载客户端uploadfile成功后，会拿到一个storage生成的文件名，接下来客户端根据这个文件名即可访问到该文件。二、安装FastDFS环境0、前言操作环境：CentOS7 X64，以下操作都是单机环境。我把所有的安装包下载到/opt/下，解压到当前目录。1、下载安装 libfastcommonlibfastcommon是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库，基础环境，安装即可 。 ① 下载libfastcommoncd /opt wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz② 解压tar -zxvf V1.0.7.tar.gz cd libfastcommon-…

Vulhub靶场环境搭建踩坑记录
type: item
date: 2024-04-14T06:25:13+00:00
description: 1、安装UbuntuUbuntu系统推荐使用 ubuntu-22.04.4-desktop-amd64.iso，这个版本的镜像在Vmware中搭建不会出现VmwareTools失效问题。安装完之后Ubuntu一定要换源,虽然不换的时候在更新软件依赖有时候会使用清华源，但是不稳定。把Ubuntu自带的镜像源全部注释掉，使用清华源，安装软件速度飞起清华源Ubuntu地址：https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse # 预发布软件源，不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse # # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse2、安装docker这个直接使用Vulhub官网的安装方法就行 curl -s https://get.docker.com/ | sh 安装docker-compose这一步是个坑因为上一步安装docker，安装的是最新版本的docker，而docker-compose现在已经是第二版了，官网还是第一版，安装后使用命令会报错。因为docker和docker-compose版本不匹配。使用下面命令下载最新版。apt-get install docker-compose-plugin #命令使用不是用docker-compose docker compose version docker compose --help docker compose build docker compose up -d docker compose down3、docker换源推荐docker换成aliyun的镜像源，因为用其他的镜像源，在build这一环节出现老是超时。而我换成aliyun的就不会有这种情况。vim /etc/docker/daemon.json内容：{ "registry-mirrors": [ "https://XXX.mirror.aliyuncs.com", "https://hub.docker.com/", "https://docker.mirrors.ustc.edu.cn" ] } 阿里云镜像源申请方法网上都是，这里就不提供了。4、docker-compose.yml version问题WARN[0000] /gws/vulhub/httpd/CVE-2021-40438/docker-comp…

Linux入侵检测病毒清理流程
type: item
date: 2024-04-07T16:36:00+00:00
description: Linux入侵检测病毒清理流程1.确认Linux是否是中毒1.使用命令查看当前系统所有进程一般消耗CUP或者内存90%以上的基本都是病毒，常见的挖矿进程：xfsdatad、rshim、YDService.exe、kinsing、kdevtmpfsi、sysupdate、systemxlv、kthreaddi、kthreaddk 等，病毒进程一版都会跟系统进程名称相似，要注意区分top 或 ps aux | less注：top实时监控退出按键：q2.查看隐藏进程如果top命令查看没发现异常，但是服务器依然很卡，服务器资源占用居高不下，那就换个命令，查看是否存在隐藏进程ps -aux --sort=-pcpu|head -10 2. 确定病毒攻击方式1.使用命令查看系统日志：cat /var/log/secure 分析日志文件，看看是否是远程强行破解系统密码，如下：如果是远程登录root，清理病毒后要修改root的密码查看系统其他用户：查看系统用户vim /etc/shadow 或者 vim /etc/passwd # 检查是否有异常的用户名，如果有就删除 userdel -r 用户名查看单个进程的执行日志：more /var/log/cron log | grep “进程名称”3.病毒查杀1.先确定挖矿进程的PID根据 top 查到的病毒进程，利用PID查看一系列的相关守护进程：systemctl status PID 2.根据展示出来的守护进程，从最高层守护开始杀起（先杀父类）。删除最顶层fule守护进程：rm -rf 路径 或 find / -name “_路径_” | xargs rm -rf 有某部分比较刁钻的病毒会报告：rm: cannot remove '文件名称 ': Operation not permitted这种情况可能性一，不在root的权限下，切换root再操作。可能性二：病毒使用了chattr 文件锁定的命令。我们只要先执行文件解锁，然后就可以正常删除了chattr -i 文件名称 ps -ef | grep 守护进程名称 或者 ps -ef | grep 守护进程名称 | grep -v grep kill -9 PID 注意，有部分挖矿在删除时会触发自我复制，所以删除前可以先控制权限和删除定时扫描：chmod 600 守护进程路径 查看定时器，需要在root权限操作：查看所有定时器crontab -l 如果确认linux服务器重来没有建过定时任务，就可以全部清除crontab -r 如果有自定义的定时器就可以编辑：crontab -e 手动删除可疑任务后保存退出很多病毒是会扫描定时器的，所以在清除定时任务之前，需要把病毒守护进程里面的病毒文件先降低权限才会生效 命令：chmod 600 守护进程路径权限降低，清除定时任务 那就可以逐个杀死进程了，由下往上一个个 kill -9 进程号，例如：先杀 9015把进程全干掉后就删除对应文件（根据进程树中的文件路径）3.如果没有守护进程，那就更简单，直接先控制文件权限，然后停止进程，清理定时任务，最后删除病毒路径即可。到此，病毒清理完成。4.其他安全建议：1.禁止root登录使用自定义的用户登录，再切换Root即可2.查看SSH链接公钥，清除所有可疑的公钥。一般只用用户名密码登录的服务器是不会有公钥文件的，如果有也是空文件。查看公钥文件：vim /root/.ssh/authorized_keys解除锁定chattr -i /root/.ssh/authorized_keys编辑权限chmod 777 /root/.ssh/authorized_keys 清空或清除不是自建的authorized_keysvi /root/.ssh/authorized_keys清空后恢复权限chmod 400 /root/.ssh/authorized_keys锁定authorized_keyschattr +i /root/.ssh/authorized_keys防止通过重命名.ssh文件夹绕过设置chattr +i /root/.ssh3.一定要打开防火墙查看防火墙状态命令：systemctl status firewalld 如果不是显示active状态，需要打开防火墙，注意要配置穿透自己需要用到的端口号systemctl start firewalld 4.要尽量禁止redis的远程访问，redis必须要设置访问密码。5.Linux病毒防护软件：安装clamAV：yum -y install clamav 更新病毒库（需要时间很长，大约20~30分钟）：freshclam 查杀当前目录并删除感染的文件：clamscan -r --remove 查杀当前目录并删除感染…

部署安全狗
type: item
date: 2024-04-07T16:34:02+00:00
description: 第一步：下载服务器安全狗Linux版官方提供了两个下载方式，本文采用的是 方式2 wget安装 方法1：在安全狗官网直接下载软件安装包（.tar.gz 格式：safedog_linux64.tar.gz） 方法2：采取wget方式下载发布包：wget http://down.safedog.cn/safedog_linux64.tar.gz第二步：解压并安装tar xzvf 压缩包名tar xzvf safedog_linux64.tar.gzls 获取压缩包解压出来的文件名lsmv文件夹名mv safedog_an_linux64_2.8.32947 safedog mv safedog /opt/chmod 给文件夹内所有.py文件加权限chmod +x *.py执行install.py文件开始安装./install.py运行install.py时候遇到报错Need system command 'locate' to install safedog for linux. Installation aborted!报错的意思是缺少命令，这里我们用yum安装一下当前命令yum -y install mlocate第三步：执行以下命令加入服云，告别Linux传统字符界面，体验更多服云功能（fuyun.safedog.cn）：sdcloud -u 服云帐号第四步：完成服务器安全狗安装完成安装后可运行命令sdui进入操作界面。

Linux系统查询端口是否开放
type: item
date: 2024-04-07T16:32:44+00:00
description: 1 linxu系统中查询端口是否开放1.1 方式1：使用lsof 查看指定端口号是否开放lsof -i:端口号如下，表示10010端口已开放，10011端口未开放。[root@localhost ~]# lsof -i:10010 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 679 root 53u IPv6 36351 0t0 TCP *:rxapi (LISTEN) [root@localhost ~]# lsof -i:10011 [root@localhost ~]# 1.2 方式2：使用netstat 查看端口号查看系统中所有使用tcp协议开放的端口netstat -ntpl查看系统中所有使用udp协议开放的端口netstat -nupl2 防火墙端口即使开放了，外界也不一定能够访问，需要查看下本机的防火墙配置2.1 防火墙服务状态#启动防火墙 systemctl start firewalld #重启防火墙 systemctl restart firewalld #停止防火墙 systemctl stop firewalld #查看防火墙状态 systemctl status firewalld #开机时启用防火墙 systemctl enable firewalld #开机时禁用防火墙 systemctl disable firewalld #查看是否开机启动 systemctl is-enabled firewalld #查看开放端口列表 firewall-cmd --zone=public --list-ports #刷新防火墙规则 firewall-cmd --reload2.2 开放/禁止端口访问权限#开放端口8080，协议类型tcp的访问权限 firewall-cmd --zone=public --add-port=8080/tcp --permanent #关闭端口8080，协议类型tcp的访问权限 firewall-cmd --zone=public --remove-port=8080/tcp --permanent #开放或者关闭，需要刷新防火墙规则 firewall-cmd --reload #查看开放的端口列表 firewall-cmd --zone=public --list-ports3 远试端口是否能够访问测试条件：使用window电脑连通linux设备网络进行测试。假如linux设备地址是192.168.0.100，并且windows电脑可以ping通。3.1 ssh方式windows上打开cmd。输入以下命令：ssh -v root@192.168.0.100 -p <port>3.2 telnet方式windows上打开cmd。输入以下命令：telnet <ip> <port>

SpringBoot 接口签名校验实践
type: item
date: 2024-03-11T10:10:00+00:00
description: SpringBoot 接口签名校验实践[1概念][开放接口]开放接口是指不需要登录凭证就允许被第三方系统调用的接口。为了防止开放接口被恶意调用，开放接口一般都需要验签才能被调用。提供开放接口的系统下面统一简称为"原系统"。[验签]验签是指第三方系统在调用接口之前，需要按照原系统的规则根据所有请求参数生成一个签名（字符串），在调用接口时携带该签名。原系统会验证签名的有效性，只有签名验证有效才能正常调用接口，否则请求会被驳回。[2接口验签调用流程][1. 约定签名算法]第三方系统作为调用方，需要与原系统协商约定签名算法（下面以SHA256withRSA签名算法为例）。同时约定一个名称（callerID），以便在原系统中来唯一标识调用方系统。[2. 颁发非对称密钥对]签名算法约定后之后，原系统会为每一个调用方系统专门生成一个专属的非对称密钥对（RSA密钥对）。私钥颁发给调用方系统，公钥由原系统持有。注意，调用方系统需要保管好私钥（存到调用方系统的后端）。因为对于原系统而言，调用方系统是消息的发送方，其持有的私钥唯一标识了它的身份是原系统受信任的调用方。调用方系统的私钥一旦泄露，调用方对原系统毫无信任可言。[3. 生成请求参数签名]签名算法约定后之后，生成签名的原理如下（活动图）。为了确保生成签名的处理细节与原系统的验签逻辑是匹配的，原系统一般都提供jar包或者代码片段给调用方来生成签名，否则可能会因为一些处理细节不一致导致生成的签名是无效的。[4. 请求携带签名调用]路径参数中放入约定好的callerID，请求头中放入调用方自己生成的签名[3代码设计][1. 签名配置类]相关的自定义yml配置如下。RSA的公钥和私钥可以使用hutool的SecureUtil工具类来生成，注意公钥和私钥是base64编码后的字符串定义一个配置类来存储上述相关的自定义yml配置 `import cn.hutool.crypto.asymmetric.SignAlgorithm; import lombok.Data; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.Map; /** * 签名的相关配置 */ @Data @ConditionalOnProperty(value = "secure.signature.enable", havingValue = "true") // 根据条件注入bean @Component @ConfigurationProperties("secure.signature") public class SignatureProps { private Boolean enable; private Map<String, KeyPairProps> keyPair; @Data public static class KeyPairProps { private SignAlgorithm algorithm; private String publicKeyPath; private String publicKey; private String privateKeyPath; private String privateKey; } } `[2. 签名管理类]定义一个管理类，持有上述配置，并暴露生成签名和校验签名的方法。注意，生成的签名是将字节数组进行十六进制编码后的字符串，验签时需要将签名字符串进行十六进制解码成字节数组 `import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.Sign; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.stereotype.Component; import org.springframework.util.Objec…

识别代理工具流量特征：从SSR、V2Ray、Clash到Trojan
type: item
date: 2024-03-11T10:05:26+00:00
description: 识别代理工具流量特征：从SSR、V2Ray、Clash到Trojan1概述在今天的互联网世界中，代理工具的使用旨在绕过网络审查、保护隐私、提供更安全的网络通信，而其中一些代理工具，如ShadowsocksR（SSR）、V2Ray、Clash和Trojan等，由于其高度定制化和加密特性而备受欢迎。然而，对于一些网络管理员和监管机构来说，他们可能希望能够识别这些代理工具的流量特征，以便监控或限制其使用。本文将介绍如何更加深入地识别这些代理工具的流量特征。 2深度包检测深度包检测是一种常见的用于识别代理工具流量特征的方法。这种方法侧重于对网络数据包的内容进行详细分析，尤其是检测一些特定的加密协议或自定义协议。 ShadowsocksR（SSR）：SSR通常使用自定义的混淆协议来隐藏流量。识别SSR流量的方法包括检测一些特定的标志或数据包格式，但这通常需要深度包检测技术来实现。例如，SSR的数据包中可能包含Base64编码，通过分析数据包的Base64编码是否遵循SSR的特定模式，可以更准确地识别SSR流量。V2Ray：V2Ray也使用自定义协议，其流量特点包括一些特定的数据包结构和加密方式。通过检测这些特征，可以辨别V2Ray流量。例如，V2Ray的数据包通常以VMess协议进行通信，可以识别VMess数据包的特征字段，如alterId等，来确认V2Ray的存在。3特定的流量模式不同的代理工具通常会展现出独特的流量模式，包括数据包大小、通信模式以及流量特点。 Clash：Clash是一种代理工具，它允许用户配置多种代理协议，包括HTTP、SOCKS、VMess等。通过观察流量的目标端口和通信模式，可以推测出Clash的可能存在。例如，如果流量以HTTP协议进行通信，那么可能是Clash的迹象。Trojan：Trojan代理工具也有一些流量特征，例如使用的自定义协议和端口，以及加密方式。这些特点可以被用于识别Trojan流量。举例来说，Trojan通常使用自定义的密码加密流量，通过检测流量中的特定密码标识，可以确定Trojan的存在。4端口扫描代理工具通常使用非标准端口进行通信，而不是常见的HTTP或HTTPS端口。因此，监控非常用端口的流量可能有助于识别这些代理工具。端口号：ShadowsocksR、V2Ray和Trojan等代理工具通常会使用自定义端口号，而不是常见的80或443端口。监控端口号的活动可以帮助识别代理工具的流量。例如，如果网络上的非标准端口出现了大量传输数据的活动，那么可能存在代理工具的使用。5行为分析行为分析是一种重要的方法，它关注的是网络中终端和流量的行为特征，而不仅仅是数据包的结构或端口号。以下是关于行为分析在识别代理工具流量特征中的方法：数据传输频率：代理工具通常被用于加速网络访问或绕过审查。因此，它们可能在相对短的时间内传输大量数据。通过检测网络中数据传输频率异常高的终端，可以怀疑可能存在代理工具的使用。这种高频率传输数据的行为可能是识别代理工具的一个关键指标。响应时间：代理工具的特点之一是快速响应。在网络通信中，代理工具通常能够更快地建立连接和传输数据。通过监测终端的响应时间，可以检测到网络中是否存在代理工具。如果某个终端在建立连接和传输数据时的响应时间明显较短，可能是代理工具的存在信号。目标端口扫描：代理工具通常会在不同的端口上建立连接，以绕过网络防火墙或审查。通过监测终端对不同端口的连接行为，可以检测出代理工具的存在。代理工具可能会尝试多个端口，以找到一个可以正常工作的通道。数据流模式：代理工具通常会呈现出独特的数据流模式，这些模式可能与正常的网络通信模式有所不同。行为分析可以涵盖这些不同之处，以检测代理工具的存在。通过观察数据流的模式，可以识别出异常的、可能是代理工具引起的数据流。活动时间：代理工具的使用可能会在某些时间段内更为活跃，因此监控终端的活动时间可以帮助确定代理工具的存在。如果某个终端在非常规的时间段内产生大量的网络活动，这可能是代理工具的使用的迹象。非标准协议：代理工具通常使用非标准的或自定义协议进行通信。通过分析终端的通信协议，可以检测出非常见的协议，这可能是代理工具的存在迹象。需要指出的是，行为分析是一项综合性工作，需要对网络流量和终端行为有深入的理解。同时，正常的网络活动也可能具有类似的特点，因此需要与其他方法结合使用，以提高识别的准确性。6流量统计通过统计网络流量，特别关注未知流量来源或流量模式不规律的情况，也可以用来识别代理工具的流量特征。 不规律的流量模式：一些代理工具的流量模式可能会显得不规律，特别是当它们用于突破网络审查时。通过检测这种不规律的流量模式，可以识别代理工具的存在。例如，如果网络上出现了突然增加的不规律流量，可能需要进一步调查其来源并识别是否有代理工具的参与…

Centos linux命令
type: item
date: 2024-03-11T10:03:07+00:00
description: Linux 快速换源yum install -y wget ＃必备工具 ＃使用之前请确保已经安装wget，如未安装请执行下面一条命令来安装 ＃备份原来的源 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk ＃下载阿里源 cd /etc/yum.repos.d wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo ＃更改阿里yum源为默认源 sudo mv Centos-7.repo CentOS-Base.repo ＃更新本地yum缓存 # 全部清除 sudo yum clean all # 更新列表 sudo yum list # 缓存yum包信息到本机，提高搜索速度 sudo yum makecache网卡配置错误Cannot find a valid baseurl for repo: base/7/x86_64# 解决办法： # 修改网卡配置文件： vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 # (注意：如果显示打开的是新文件，可能你的网卡的文件不叫ifcfg-eno16777736 ，有的叫ens33，你就使用命令“vi /etc/sysconfig/network-scripts/ifcfg-ens33”，来打开网卡配置文件) # 将onboot修改为“yes” #重启网络服务： service network restart #再使用安装Vim的命令： yum -y install vim* #就可以安装了。yum安装出现另一个程序被锁定Another app is currently holding the yum lock; waiting for it to exit 这句话的意思就是有一个应用程序正在锁定yum，等待退出。# 解决办法： # 1、杀死这个应用程序 #命令： kill -s 9 56722 #kill 的用法： #kill [信号代码] 进程ID #注：信号代码可以省略；我们常用的信号代码是 -s 9 ，表示强制终止； #56722是这个进程的ID # 2、强制关掉yum进程，并重新运行yum rm -f /var/run/yum.pid #注：强制删除：rm -f #解释：强制删除文件： /var/run/yum.pid Centos防火墙相关命令#永久关闭防火墙 systemctl disable firewalld #y systemctl enable firewalld #查看防火墙状态 systemctl status firewalld #关闭防火墙 systemctl stop firewalld #打开防火墙 systemctl start firewalldCentos查看自启动服务#查看自启动的服务 systemctl list-unit-filesCentos hostname相关命令#查看当前主机名 hostname #方法一：命令永久修改主机名 hostnamectl set-hostname 主机名 #方法二 通过修改文件 #修改文件 vi /etc/hostname #添加主机名 Slave01 vi /etc/sysconfig/network #添加IP和hostname对应关系 10.238.162.33 Slave01 #重启reboot生效 #方法三 临时修改主机名 hostname Slave01

linux运维巡检脚本
type: item
date: 2024-03-11T10:01:00+00:00
description: 报告以邮件发送到邮箱 在log下生成巡检报告。#!/bin/bash #主机信息每日巡检 IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没设好，在cron里执行时有很多命令会找不到 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin source /etc/profile [ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本！" && exit 1 centosVersion=$(awk '{print $(NF-1)}' /etc/redhat-release) VERSION="2020-03-16" #日志相关 PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` [ -f $PROGPATH ] && PROGPATH="." LOGPATH="$PROGPATH/log" [ -e $LOGPATH ] || mkdir $LOGPATH RESULTFILE="$LOGPATH/HostDailyCheck-$IPADDR-`date +%Y%m%d`.txt" #定义报表的全局变量 report_DateTime="" #日期 ok report_Hostname="" #主机名 ok report_OSRelease="" #发行版本 ok report_Kernel="" #内核 ok report_Language="" #语言/编码 ok report_LastReboot="" #最近启动时间 ok report_Uptime="" #运行时间（天） ok report_CPUs="" #CPU数量 ok report_CPUType="" #CPU类型 ok report_Arch="" #CPU架构 ok report_MemTotal="" #内存总容量(MB) ok report_MemFree="" #内存剩余(MB) ok report_MemUsedPercent="" #内存使用率% ok report_DiskTotal="" #硬盘总容量(GB) ok report_DiskFree="" #硬盘剩余(GB) ok report_DiskUsedPercent="" #硬盘使用率% ok report_InodeTotal="" #Inode总量 ok report_InodeFree="" #Inode剩余 ok report_InodeUsedPercent="" #Inode使用率 ok report_IP="" #IP地址 ok report_MAC="" #MAC地址 ok report_Gateway="" #默认网关 ok report_DNS="" #DNS ok report_Listen="" #监听 ok report_Selinux="" #Selinux ok report_Firewall="" #防火墙 ok report_USERs="" #用户 ok report_USEREmptyPassword="" #空密码用户 ok report_USERTheSameUID="" #相同ID的用户 ok report_PasswordExpiry="" #密码过期（天） ok report_RootUser="" #root用户 ok report_Sudoers="" #sudo授权 ok report_SSHAuthorized="" #SSH信任主机 ok report_SSHDProtocolVersion="" #SSH协议版本 ok report_SSHDPermitRootLogin="" #允许root远程登录 ok report_DefunctProsess="" #僵尸进程数量 ok report_SelfInitiatedService="" #自启动服务数量 ok report_SelfInitiatedProgram="" #自启动程序数量 ok report_RuningService="" #运行中服务数 ok report_Crontab="" #计划任务数 ok report_Syslog="" #日志服务 ok report_SNMP="" #SNMP OK report_NTP="" #NTP ok report_JDK="" #JDK版本 ok function version(){ echo "" echo ""…