[工具] Shell 批量检测服务器网络的联通状态

介绍:

作者:朱明宇
名称:批量检测服务器网络的联通状态
作用:批量检测服务器网络的联通状态

使用方法:
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每一个远程服务器名或 IP 地址占用一行
3. 在此脚本的分割线内写入相应的内容
4. 给此脚本添加执行权限
5. 执行此脚本

脚本分割线里的变量:
list=”servers_all_list.txt” #指定服务器清单

脚本:

#!/bin/bash

####################### Separator ########################

list="servers_all_list.txt"

####################### Separator ########################

read -p "will ping please input y " a
echo $a

if [ "$a" != "y" ];then
        echo "you don't agree so exit now"
        exit
fi

num=0

for i in `awk '{print $1}' servers_all_list.txt`
do
        let num++
        echo "$num $i"
        ping -c3 -i0.4 -w0.8 $i
        echo
done


补充:清单示例如下,可直接复制粘贴,如果不更改脚本,清单请命名为 servers_all_list.txt:

db1
db2
db3
web1
web2

[步骤] Linux 开机自启 (通过 chkconfig 实现)

案例一:添加一个受 chkconfig 管理的服务(脚本)
1.1 编写一个脚本

# vim /etc/init.d/start.sh

创建以下内容:

#!/bin/bash
systemctl start httpd

# chkconfig: 345 85 15
# description: This is a script of starting httpd

(补充:chkconfig:后面的 3 个含义为 httpd 的级别为 3、4 和 5,启动序号为 85,关闭序号为 15)

1.2 给脚本添加执行权限

# chmod +x /etc/init.d/start.sh

1.3 将脚本添加到 chkconfig 中

# chkconfig --add start.sh

1.4 显示刚刚添加到 chkconfig 的应用

# chkconfig --list

案例二:通过 chkconfig 管理一个服务或脚本
2.1 设定 start.sh 在 3 和 5 等级为 on

# chkconfig --level 35 start.sh on

2.2 设定 start.sh 在各等级为 on,“各等级”包括 2、3、4、5 等级

# chkconfig start.sh on

2.3 设定 start.sh 在各等级为 off,“各等级”包括 2、3、4、5 等级

# chkconfig start.sh off

[步骤] Linux 网络的设置 (禁用 IPv6)

内容目录:

内容一:显示 IPv6 是否启用
1.1 方法一:通过 ifconfig 命令实现
1.2 方法二:通过 ip 命令实现

内容二:临时禁用 IPv6

内容三;永久禁用 IPv6
3.1 方法一:通过 /etc/sysctl.conf 配置文件实现
3.1.1 修改 /etc/sysctl.conf 配置文件
3.1.2 使刚刚的修改生效

3.2 方法二:通过 /etc/default/grub 配置文件实现
3.2.1 修改 /etc/default/grub 配置文件
3.2.2 使刚刚的修改生效

具体的内容:

内容一:显示 IPv6 是否启用
1.1 方法一:通过 ifconfig 命令实现

# ifconfig

1.2 方法二:通过 ip 命令实现

# ip a s

(补充:如果出现了 inet6 则 IPv6 是激活的)

内容二:临时禁用 IPv6

# sudo echo 1 > /proc/sys/net/ipv6/conf/ens32/disable_ipv6 


注意:
1) 这里的 ens32 是要禁用 IPv6 的网卡名称
2) 系统或者网卡重启后禁用失效

内容三;永久禁用 IPv6
3.1 方法一:通过 /etc/sysctl.conf 配置文件实现
3.1.1 修改 /etc/sysctl.conf 配置文件

# vim /etc/sysctl.conf

添加以下内容:

......
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.ens32.disable_ipv6 = 1

(注意:这里的 ens32 是要禁用 IPv6 的网卡名称)

3.1.2 使刚刚的修改生效

# sudo sysctl -p /etc/sysctl.conf

3.2 方法二:通过 /etc/default/grub 配置文件实现
3.2.1 修改 /etc/default/grub 配置文件

# vim /etc/default/grub

在这一行里:

GRUB_CMDLINE_LINUX="......"

添加:

GRUB_CMDLINE_LINUX="...... ipv6.disable=1"

3.2.2 使刚刚的修改生效

# grub2-mkconfig -o /boot/grub2/grub.cfg

[命令] openSUSE & SLE 命令 zypper (管理软件和软件源)

内容目录:

内容一: 帮助文档相关
1.1 显示 zypper 帮助信息
1.2 显示 zypper 选项的帮助信息
1.2.1 显示 zypper 选项帮助信息的格式
1.2.2 显示 zypper 选项帮助信息的案例

内容二:软件相关
2.1 安装软件
2.1.1 安装软件的格式
2.1.1.1 交互式
2.1.1.2 非交互式
2.1.2 安装软件的案例
2.1.2.1 交互式
2.1.2.2 非交互式
2.2 删除软件
2.2.1 删除软件的格式
2.2.1.1 交互式
2.2.1.2 非交互式
2.2.2 删除软件的案例
2.2.2.1 交互式
2.2.2.2 非交互式
2.3 锁定软件
2.3.1 锁定软件的格式
2.3.2 锁定软件的案例
2.4 显示所有已锁软件
2.5 解锁软件
2.5.1 解锁软件的格式
2.5.2 解锁软件的案例
2.5.3 清除所有已锁软件
2.6 升级软件
2.6.1 升级软件
2.6.1.1 升级软件的格式
2.6.1.1.1 交互式
2.6.1.1.2 非交互式
2.6.1.2 升级软件的案例
2.6.1.2.1 交互式
2.6.1.2.2 非交互式
2.6.2 升级所有软件
2.6.2.1 升级所有软件
2.6.2.1.1 交互式
2.6.2.1.2 非交互式
2.6.2.2 显示所有可升级的软件
2.7 查找软件
2.7.1 查找软件的格式
2.7.2 查找软件的案例
2.8 显示软件所有可以安装的版本
2.8.1 显示软件所有可以安装版本的格式
2.8.2 显示软件所有可以安装版本的案例
2.9 显示软件的生命周期
2.9.1 显示软件的生命周期的格式
2.9.2 显示软件的生命周期的案例

内容三:软件组相关
3.1 安装软件组
3.1.1 安装软件组的格式
3.1.1.1 交互式
3.1.1.2 非交互式
3.1.2 安装软件组的案例
3.1.2.1 交互式
3.1.2.2 非交互式
3.2 删除软件组
3.2.1 删除软件组的格式
3.2.1.1 交互式
3.2.1.2 非交互式
3.2.2 删除软件组的案例
3.2.2.1 交互式
3.2.2.2 非交互式
3.3 显示所有可用软件组
3.4 显示软件组的详细信息
3.4.1 显示软件组详细信息的格式
3.4.2 显示软件组详细信息的案例
3.5 显示软件组所需要的所有软件包
3.5.1 显示软件组所需要的所有软件包的格式
3.5.2 显示软件组所需要的所有软件包的案例

内容四:安全相关
4.1 安全补丁
4.1.1 安装安全补丁
4.1.1.1 安装安全补丁的格式
4.1.1.1.1 交互式
4.1.1.1.2 非交互式
4.1.1.2 安装安全补丁的案例
4.1.1.2.1 交互式
4.1.1.2.2 非交互式
4.1.2 所有安全补丁
4.1.2 安装所有安全补丁
4.1.2.1 非交互式
4.1.2.2 交互式

内容五:软件源相关
5.1 新增软件源并指定软件源名
5.1.1 新增软件源并指定软件源名的格式
5.1.2 新增软件源并指定软件源名的案例
5.2 删除软件源
5.2.1 删除软件源
5.2.1.1 删除软件源的格式
5.2.1.2 删除软件源的案例
5.2.2 删除所有软件源
5.3 启用软件源
5.3.1 启用软件源
5.3.1.1 启用软件源的格式
5.3.1.2 启用软件源的案例
5.3.2 启用所有软件源
5.4 禁用软件源
5.4.1 禁用软件源
5.4.1.1 禁用软件源的格式
5.4.1.2 禁用软件源的案例
5.4.2 禁用所有软件源
5.5 显示软件源
5.5.1 显示所有软件源
5.5.2 显示所有软件源的链接
5.5.2.1 显示所有软件源的链接 (显示时进行软件源验证)
5.5.2.2 显示所有软件源的链接 (显示时不进行软件源言政)
5.6 缓存软件源列表
5.6.1 缓存所有已启用软件源列表
5.6.2 清除所有软件源列表缓存

内容六:系统本版相关

具体的内容:

内容一: 帮助文档相关
1.1 显示 zypper 帮助信息

# zypper help

或者:

# zypper --h

1.2 显示 zypper 选项的帮助信息
1.2.1 显示 zypper 选项帮助信息的格式

# zypper help <option>

或者:

# zypper <option> help

1.2.2 显示 zypper 选项帮助信息的案例

# zypper help install

(补充:这里以显示 install 子选项为例)

或者:

# zypper install help

(补充:这里以显示 install 子选项为例)

内容二:软件相关
2.1 安装软件
2.1.1 安装软件的格式
2.1.1.1 交互式

# zypper in <software>

或者:

# zypper in -f <software>

(补充:这里的 -f 参数是强制安装软件)

2.1.1.2 非交互式

# zypper -n in <software>

或者:

# zypper -n in -f <software>
(补充:这里的 -f 参数是强制安装软件)

2.1.2 安装软件的案例
2.1.2.1 交互式

# zypper in httpd

(补充:这里以交互式安装 httpd 软件为例)

或者:

# zypper in -f httpd

(补充:这里以交互式安装 httpd 软件为例)

2.1.2.2 非交互式

# zypper -n in httpd

(补充:这里以非交互式安装 httpd 软件为例)

或者:

# zypper -n in -f httpd

(补充:这里以非交互式强制安装 httpd 软件为例)

2.2 删除软件
2.2.1 删除软件的格式
2.2.1.1 交互式

# zypper rm <software>

2.2.1.2 非交互式

# zypper -n rm <software>

2.2.2 删除软件的案例
2.2.2.1 交互式

# zypper rm httpd

(补充:这里以交互式删除 httpd 软件为例)

2.2.2.2 非交互式

# zypper -n rm httpd

(补充:这里以非交互式删除 httpd 软件为例)

2.3 锁定软件
2.3.1 锁定软件的格式

# zypper addlock <software>

或者:

# zypper al <software>

2.3.2 锁定软件的案例

# zypper addlock httpd

或者:

# zypper al httpd

(补充:这里以锁定 httpd 软件的周期为例)

2.4 显示所有已锁软件

# zypper locks

或者:

# zypper ll

2.5 解锁软件
2.5.1 解锁软件的格式

# zypper removelocks <software>

或者:

# zypper rl <software>

2.5.2 解锁软件的案例

# zypper removelocks httpd

(补充:这里以解锁 httpd 为例)

或者:

# zypper rl httpd

(补充:这里以解锁 httpd 为例)

2.5.3 清除所有已锁软件

# zypper cleanlocks

或者:

# zypper cl

2.6 升级软件
2.6.1 升级软件
2.6.1.1 升级软件的格式
2.6.1.1.1 交互式

# zypper update <software>

2.6.1.1.2 非交互式

# zypper -n update <software>

2.6.1.2 升级软件的案例
2.6.1.2.1 交互式

# zypper update nginx

(补充:这里以交互式升级 nginx 为例)

2.6.1.2.2 非交互式

# zypper -n update nginx

(补充:这里以非交互式升级 nginx 为例)

2.6.2 升级所有软件
2.6.2.1 升级所有软件
2.6.2.1.1 交互式

# zypper update

2.6.2.1.2 非交互式

# zypper -n update

2.6.2.2 显示所有可升级的软件

# zypper lp

2.7 查找软件
2.7.1 查找软件的格式

# zypper se <software>

或者:

# zypper search <software>

或者:

# zypper search --match-exact --type package --details <software>

(补充:这里 –match-exact 参数的作用是精确匹配,–type package 参数的作用是指定查找的对象是软件)

2.7.2 查找软件的案例

# zypper se httpd

(补充:这里以查找 httpd 软件为例)

或者:

# zypper search httpd

(补充:这里以查找 httpd 软件为例)

或者:

# zypper se --match-exact --type package --details httpd

(补充:此方法会精确查找 httpd 软件为例)

2.8 显示软件所有可以安装的版本
2.8.1 显示软件所有可以安装版本的格式

# zypper se -s <software>

或者:

# zypper search -details <software>

2.8.2 显示软件所有可以安装版本的案例

# zypper se -s kernel-default

或者:

# zypper search -details kernel-default

(补充:这里以查找 httpd 软件为例)

2.9 显示软件的生命周期
2.9.1 显示软件的生命周期的格式

# zypper lifecycle <software>

2.9.2 显示软件的生命周期的案例

# zypper lifecycle httpd

(补充:这里以查找 httpd 软件的周期为例)

内容三:软件组相关
3.1 安装软件组
3.1.1 安装软件组的格式
3.1.1.1 交互式

# zypper in -t pattern <pattern>

3.1.1.2 非交互式

# zypper -n in -t pattern <pattern>

3.1.2 安装软件组的案例
3.1.2.1 交互式

# zypper in -t pattern kvm_server

(补充:这里以交互式安装 kvm_server 软件组为例)

3.1.2.2 非交互式

# zypper -n in -t pattern kvm_server

(补充:这里以非交互式安装 kvm_server 软件组为例)

3.2 删除软件组
3.2.1 删除软件组的格式
3.2.1.1 交互式

# zypper rm -t pattern <pattern>

3.2.1.2 非交互式

# zypper -n rm -t pattern <pattern>

3.2.2 删除软件组的案例
3.2.2.1 交互式

# zypper -n rm -t pattern kvm_server

(补充:这里以交互式删除 kvm_server 软件组为例)

3.2.2.2 非交互式

# zypper -n rm -t pattern kvm_server

(补充:这里以非交互式删除 kvm_server 软件组为例)

3.3 显示所有可用软件组

# zypper patterns

或者:

# zypper pt

或者:

# zypper se -t pattern

3.4 显示软件组的详细信息
3.4.1 显示软件组详细信息的格式

# zypper pattern-info <pattern>

3.4.2 显示软件组详细信息的案例

# zypper pattern-info kvm_server

(补充:这里以显示 kvm_server 软件组为例)

3.5 显示软件组所需要的所有软件包
3.5.1 显示软件组所需要的所有软件包的格式

# zypper info --requires <pattern>

3.5.2 显示软件组所需要的所有软件包的案例

# zypper info --requires kvm_server

(补充:这里以显示 kvm_server 软件组所需要的所有软件包为例)

内容四:安全相关
4.1 安全补丁
4.1.1 安装安全补丁
4.1.1.1 安装安全补丁的格式
4.1.1.1.1 交互式

# zypper in -t patch <patch>

4.1.1.1.2 非交互式

# zypper -n in -t patch <patch>

4.1.1.2 安装安全补丁的案例
4.1.1.2.1 交互式

# zypper in -t patch SUSE-SLE-SERVER-12-SP5-2022-323=1

(补充:这里以安装 SUSE-SLE-SERVER-12-SP5-2022-323=1 补丁为例)

4.1.1.2.2 非交互式

# zypper -n in -t patch SUSE-SLE-SERVER-12-SP5-2022-323=1

(补充:这里以安装 SUSE-SLE-SERVER-12-SP5-2022-323=1 补丁为例)

4.1.2 所有安全补丁
4.1.2 安装所有安全补丁
4.1.2.1 非交互式

# zypper patch

4.1.2.2 交互式

# zypper -n patch

内容五:软件源相关
5.1 新增软件源并指定软件源名
5.1.1 新增软件源并指定软件源名的格式

# zypper ar -fcg <software source link> <define software source name>

5.1.2 新增软件源并指定软件源名的案例

# zypper ar -fcg http://192.168.1.1/update-oss/ update-oss

(补充:这里以添加 http://192.168.1.1/update-oss/ 库并命名为 update-oss 为例)

5.2 删除软件源
5.2.1 删除软件源
5.2.1.1 删除软件源的格式

# zypper rr -d <software source name/software source URL>

5.2.1.2 删除软件源的案例

# zypper rr -d 'Main Repository'

或者:

# zypper rr -d http://download.opensuse.org/distribution/leap/15.3/repo/oss/

(补充:这里以删除名为 Main Repository 链接为 http://download.opensuse.org/distribution/leap/15.3/repo/oss/ 的软件源为例)

5.2.2 删除所有软件源

# zypper rr -da

或者:

# zypper rr `zypper ls | awk '{print $1}'`

5.3 启用软件源
5.3.1 启用软件源
5.3.1.1 启用软件源的格式

# zypper mr -e <software source name/software source URL>

或者:

# zypper modifyrepo -e <software source name/software source URL>

5.3.1.2 启用软件源的案例

# zypper mr -e 'Main Repository'

或者:

# zypper modifyrepo -e http://download.opensuse.org/distribution/leap/15.3/repo/oss/

(补充:这里以启用名为 Main Repository 链接为 http://download.opensuse.org/distribution/leap/15.3/repo/oss/ 的软件源为例)

5.3.2 启用所有软件源

# zypper mr -ea

或者:

# zypper modifyrepo -ea

或者:

# zypper mr -e `zypper ls | awk '{print $1}'`

或者:

# zypper modifyrepo -e `zypper ls | awk '{print $1}'`

5.4 禁用软件源
5.4.1 禁用软件源
5.4.1.1 禁用软件源的格式

# zypper mr -d <software source name/software source URL>

或者:

# zypper modifyrepo -d <software source name/software source URL>

5.4.1.2 禁用软件源的案例

# zypper mr -d 'Main Repository'

或者:

# zypper modifyrepo -d http://download.opensuse.org/distribution/leap/15.3/repo/oss/

(补充:这里以禁用名为 Main Repository 链接为 http://download.opensuse.org/distribution/leap/15.3/repo/oss/ 的软件源为例)

5.4.2 禁用所有软件源

# zypper mr -da

或者:

# zypper modifyrepo -da

或者:

# zypper mr `zypper ls | awk '{print $1}'`

或者:

# zypper modifyrepo `zypper ls | awk '{print $1}'`

5.5 显示软件源
5.5.1 显示所有软件源

# zypper ls

或者:

# zypper lr

(补充:zypper ls 会多显示软件源的 Type)

5.5.2 显示所有软件源的链接
5.2.2.1 显示所有软件源的链接 (显示时进行软件源验证)

# zypper ls -d

5.2.2.2 显示所有软件源的链接 (显示时不进行软件源言政)

# zypper --non-interactive --no-gpg-checks repos -d


补充:
1) –non-interactive 代表非交互式
2) –no-gpg-checks 代表不检查证书

5.6 缓存软件源列表
5.6.1 缓存所有已启用软件源列表

# zypper ref

或者:

# zypper refresh

5.6.2 清除所有软件源列表缓存

# zypper clean

内容六:系统本版相关

升级系统版本

# zypper migration