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

介绍

基本信息

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

使用方法

1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每个远程服务器名或 IP 地址占用 1 行
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 命令实现

# 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 帮助信息

# 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 install <software>

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

2.1.1.2 非交互式
# zypper -n in <software>

(补充:这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断)

或者:

# zypper --no-gpg-checks --non-interactive install <software>


补充:
1) 这里的 –no-gpg-checks 代表不检验证书
2) 这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断

2.1.2 安装软件的案例

2.1.2.1 交互式
# zypper in httpd

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

或者:

# zypper install httpd

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

2.1.2.2 非交互式
# zypper -n in httpd


补充:
1) 这里以非交互式安装 httpd 软件为例
2) 这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断

或者:

# zypper --no-gpg-checks --non-interactive install httpd


补充:
1) 这里以交互式安装 httpd 软件为例
2) 这里的 –no-gpg-checks 代表不检验证书
3) 这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断

2.2 删除软件

2.2.1 删除软件的格式
2.2.1.1 交互式
# zypper rm <software>

或者:

# zypper remove <software>
2.2.1.2 非交互式
# zypper -n rm <software>

(补充:这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断)

或者:

# zypper --no-gpg-checks --gpg-auto-import-keys --non-interactive remove <software>


补充:
1) 这里的 –no-gpg-checks 代表不检验证书
2) 这里的 –gpg-auto-import-keys 代表自动信任并导入新的签名密钥
3) 这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断

2.2.2 删除软件的案例
2.2.2.1 交互式
# zypper rm httpd

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

或者:

# zypper remove httpd

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

2.2.2.2 非交互式
# zypper -n rm httpd


补充:
1) 这里以非交互式删除 httpd 软件为例
2) 这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断

或者:

# zypper --no-gpg-checks --gpg-auto-import-keys --non-interactive remove httpd


补充:
1) 这里以非交互式删除 httpd 软件为例
2) 这里的 –no-gpg-checks 代表不检验证书
3) 这里的 –gpg-auto-import-keys 代表自动信任并导入新的签名密钥
4) 这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断

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>

(补充:这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断)

或者:

# zypper --non-interactive update <software>

(补充:这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断)

2.6.1.2 升级软件的案例
2.6.1.2.1 交互式
# zypper update nginx

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

2.6.1.2.2 非交互式
# zypper -n update nginx


补充:
1) 这里以非交互式升级 nginx 为例
2) 这里的 -n 代表会通过忽略交互式的步骤从而避免运行中断

或者:

# zypper --non-interactive update nginx


补充:
1) 这里以非交互式升级 nginx 为例
2) 这里的 –non-interactive 代表会通过忽略交互式的步骤从而避免运行中断

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 <software source name/software source URL>
5.2.1.2 删除软件源的案例
# zypper rr 'Main Repository'

或者:

# zypper rr 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 -a

或者:

# 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

或者:

# zypper ls -u

或者:

# zypper repos -d

或者:

# zypper repos -u

或者:

# zypper ls --details

或者:

# zypper ls --uri

或者:

# zypper repos --details

或者:

# zypper repos --uri
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