[步骤] Linux 图形桌面的安装 (GNOME 版) (openSUSE & SLES 版)

步骤一:系统环境要求

服务器系统要配置好可用的软件源

步骤二:显示 openSUSE & SLES 可安装的软件包组

# zypper se -t pattern

步骤三:安装 GNOME 图形桌面

3.1 安装 GNOME 图形桌面

# zypper in -t pattern gnome

3.2 将系统默认的图形桌面设置为 GNOME 图形桌面

# vim /etc/sysconfig/displaymanager

将以下内容:

......
DISPLAYMANAGER_XSERVER="Xorg"

修改为:

......
DISPLAYMANAGER_XSERVER="gdm"

步骤四:进入图形桌面

4.1 设置系统开机进入图形桌面

# systemctl set-default graphical.target

4.2 立刻进入图形桌面

# startx

或者:

# init 5

[步骤] bond 网卡捆绑组的添加(CentOS Linux & RHEL 版)

步骤一:显示现有的网卡有哪些

# nmcli connection show

步骤二:添加网卡捆绑组

2.1 添加网卡捆绑组

2.1.1 添加网卡捆绑组的格式
# nmcli connection add type bond con-name <connection name of network card binding group> ifname <name of network card binding group> mode <network card binding group type> miimon <delay time>
2.1.2 添加网卡捆绑组的案例
# nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup miimon 100

(补充:这里以创建连接名为 bond0 设备名为 bond0 延迟为 100 毫秒的网卡捆绑组为例)

2.2 添加网卡捆绑组的子网卡

2.2.1 添加网卡捆绑组子网卡的格式
# nmcli connection add type bond-slave con-name <network card connection name> ifname <subnet card name> master <network card binding group type>
2.2.2 添加网卡捆绑组子网卡的案例
# nmcli connection add type bond-slave con-name bond0-eth0 ifname eth0 master bond0
# nmcli connection add type bond-slave con-name bond0-eth1 ifname eth1 master bond0

(补充:这里以将设备名为 eth0 和 eth1 的网卡添加到 bond0 网卡捆绑组,同时指定名称为 bond0-eth0 和 bond1-eth1 为例)

(注意:这里的 con-name 和 ifname 最好不要设置成一样的,否则后面不好管理)

步骤三:给网卡捆绑组配置 IP 地址

# nmcli connection modify bond0 ipv4.addresses 192.168.100.5/24 ipv4.gateway 192.168.100.1 autoconnect yes ipv4.method manual

(补充:这里给 bon0 网卡捆绑组添加 192.168.100.5/24 IP 地址,192.168.100.1 网关 IP 地址,开机自动启动并且把网卡设置成静态 IP 地址为例)

步骤四:启动网卡捆绑组

4.1 显示现有的网卡捆绑组和对应的子网卡有哪些

# nmcli connection show

4.2 启动网卡捆绑组里的子网卡

4.2.1 启动网卡捆绑组里子网卡的格式
# nmcli connection up <subnet card name>
4.2.2 启动网卡捆绑组里的子网卡
# nmcli connection up bond0-eth0
# nmcli connection up bond0-eth1

(补充:这里以重启 eth0 或者 eth1 为例)

或者:

# nmcli connection reload

4.3 启动网卡捆绑组

4.3.1 启动网卡捆绑组的格式
# nmcli connection up <connection name of network card binding group>
4.3.2 启动网卡捆绑组的案例
# nmcli connection up bond0

(补充:这里以启动 bond0 网卡组为例)

步骤五:确认网卡捆绑组的 IP 地址配置成功

# ip address show 

(补充:如果网卡组里出现了我们配置的 IP 地址,则代表 IP 地址配置成功)

步骤六:显示网卡捆绑组的子网卡

6.1 显示网卡捆绑组的成员格式
# cat /proc/net/bonding/<bond name>
6.2 显示网卡捆绑组的成员的案例
# cat /proc/net/bonding/bond0

(补充:这里以显示网卡组 bond0 的子网卡为例)

[步骤] Linux 网络的设置 (禁用 KVM 虚拟 IP)

步骤一:现象分析

安装 REHL 和 CentOS 系统时,系统可能会自动附带安装 libvirtd,并且启动其中的虚拟 IP

步骤二:显示是否有虚拟 IP

# ip -4 addr

(如果在输出的结果中包含的有以 virbr 开头的网卡信息,则代表虚拟网卡是启动的)

步骤三:删除 KVM 虚拟 IP

3.1 禁用虚拟网卡

# ifconfig virbr0 down

3.2 删除虚拟网桥

# brctl delbr virbro

步骤四:禁止 libvirtd 开机自启

# systemctl disable libvirtd

[命令] Linux 命令 systemctl (程序单元启动和管理)

内容一:受 systemctl 管理的单元列表

1.1 受 systemctl 管理的所有单元列表

1.1.1 列出所有 systemctl 可用单元以及是否开机自启
# systemctl list-unit-files

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.2 列出所有 systemctl 正在运行的单元
# systemctl list-units

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.3 列出所有 systemctl 运行失败的单元
# systemctl --failed

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.2 受 systemctl 管理的目标单元列表

1.2.1 列出所有受 systemctl 管理的目标单元
# systemctl list-units --all --type target


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.2 列出所有正在运行的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --typer=target --state=running


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.3 列出所有开机自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=active


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.4 列出所有开机不自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=inactive


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3 受 systemctl 管理的目标单元列表

1.3.1 列出所有受 systemctl 管理的服务单元
# systemctl list-units --all --type service


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.2 列出所有正在运行的受 systemctl 管理的服务单元
# systemctl list-units --typer=service --state=running


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.3 列出所有开机自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=active


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.4 列出所有开机不自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=inactive


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

内容二:单元的状态显示

2.1 单元的状态显示 (按标准格式显示)

# systemctl status <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

2.2 单元的状态显示 (显示所有内容)

# systemctl status -l <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

内容三:单元的启动管理

3.1 启动某 1 个单元

# systemctl start <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.2 停止某 1 个单元

# systemctl stop <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 重启某 1 个单元

# systemctl restart <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 显示某 1 个单元是否正在运行

3.3.1 使用 is-active 参数显示某个单元是否正在运行
# systemctl is-active <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3.2 使用 list-unit-files 参数显示某个单元是否正在运行
3.3.2.1 使用 list-unit-files 参数显示某个单元是否正在运行的格式
3.3.2.1.1 显示某个 systemctl 的服务在 systemctl 中的文件名的格式
# ll /usr/lib/systemd/system/<unit>
3.3.2.1.2 显示某个 systemctl 文件名的状态的格式
# systemctl list-unit-files | grep ^<file name>
3.3.2.2 使用 list-unit-files 参数显示某个单元是否正在运行的案例
3.3.2.2.1 显示某个 systemctl 的服务在 systemctl 中的文件名的案例
# ll /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx 1 root root 13 May 19 06:56 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target


补充:
1) 这里以显示 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为例
2) 从这里的输出结果可以看出 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为 reboot.target

3.3.2.2.2 显示某个 systemctl 文件名的状态的案例
# systemctl list-unit-files | grep ^reboot.target
reboot.target                                                             disabled        disabled

(补充:这里以显示 systemctl 的 reboot.target 文件名为例)

3.4 启动并将某 1 个单元设置为开机自启

# systemctl enable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.5 停止并将某 1 个单元取消开机自启

# systemctl disable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容四:单元的开机自启管理

4.1 让某一个单元开机自启

# systemctl enable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.2 取消某一个单元的开机自启

# systemctl disable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.3 显示某一个单元是否是开机自启

# systemctl is-enabled <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容五:单元的锁定管理

5.1 锁定某一个单元(禁止其启动)

# systemctl mask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

5.2 取消某一个单元的锁定(让它可以启动)

# systemctl umask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容六:重新加载某 systemctl 的配置文件

# systemctl daemon-reload

[命令] Linux 命令 iotop (显示某一个进程占用 IO 的情况) (转载)

记一次iotop分析磁盘占用io问题

问题描述    

                 某一台服务器上面 程序在每小时内偶尔丢包 排查服务器所有性能瓶颈之后发现一个奇怪的问题 程序丢包前后 会有IO过高的情况 于是使用iotop命令排查是哪个程序偶尔占用过高的磁盘IO

所用命令  

                 iotop

相关参数 

    -o:只显示有io操作的进程

    -b:批量显示,无交互,主要用作记录到文件

    -n NUM:显示NUM次,主要用于非交互式模式

    -d SEC:间隔SEC秒显示一次

    -p PID:监控的进程pid

    -u USER:监控的进程用户

排查方法

        iostat命令 只能看出每个盘符的IO情况 不能看到是具体哪个进程使用的IO 所以 我们需要使用iotop命令 但是这次的IO情况并不是一直出现 而是偶尔不规律出现 如果用肉眼去一直盯着终端看 显然不可行 于是我们可以用iotop的-b参数 让结果以非交互的方式输出 这样我们便可以用awk去处理 打印出我们需要的IO列以及相应的进程

命令

iotop -b | awk -F'%' '{if($(NF-1) > 0.2 && $(NF-1) ~ /[0-9]/ && $0 !~ /DISK/)printf "TIME: %s,IO:%s%,COMMAND:%s\n",strftime("%F %T"),$(NF-1),$NF}'

输出结果

[root@localhost ~]# iotop -b | awk -F'%' '{if($(NF-1) > 0.2 && $(NF-1) ~ /[0-9]/ && $0 !~ /DISK/)printf "TIME: %s,IO:%s%,COMMAND:%s\n",strftime("%F %T"),$(NF-1),$NF}'
TIME: 2018-03-21 18:04:23,IO:  0.23 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:04:35,IO:  0.44 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:04:47,IO:  0.22 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:04:58,IO:  0.39 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:05:08,IO:  0.68 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:05:22,IO:  0.52 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:05:34,IO:  0.24 %,COMMAND: [kworker/0:2]
TIME: 2018-03-21 18:05:45,IO:  0.26 %,COMMAND: [kworker/0:2]

        输出结果类似上面 这里只是简单举个例子 打印出IO大于0.2%的进程 并根据客户需求打印除相应的时间 这里的时间打印 利用awk自己的函数 strftime()
————————————————
版权声明:本文为CSDN博主「why_me310」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/why_me310/article/details/79643352

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
 iotop 还有以下参数
-k, --kilobytes 在非交互的模式下,以 kb 为单位显示
-t, --time 在非交互的模式下,加上时间戳
-q, --quiet 在交互的模式下,禁止头几行,它有三种指定方式
    -q 只有在第一次显示时显示列名
    -qq 永远不显示列名
    -qqq 永远不显示 I/O 汇总的总量