系统学习记录7

一、进一步学习Linux:

1、学习管道pipe:

①我们把一个进程链接到另一个进程的一个数据流称为一个"管道";

② ps -aux | grep root:

"ps -aux" 命令是列出当前的进程,grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,ps与grep命令之间的 " | " 符号是,其实是一个管道,将ps命令输出的数据通过管道流向grep,在这里就打开了两个进程, ps命令本应该在终端输出信息的,但是它通过管道将输出的信息作为grep命令的输入信息, 然后通过搜索之后将合适的信息显示出来,这样就形成了我们在终端看到的信息;

③虽然管道的实现形态上是文件,但是管道本身并不占用磁盘或者其他外部存储的空间, 它占用的是内存空间,因此Linux上的管道就是一个操作方式为文件的内存缓冲区而已;

④管道的分类:

匿名管道PIPE:匿名管道(PIPE)是一种特殊的文件,但虽然它是一种文件,却没有名字, 因此一般进程无法使用open()来获取他的描述符。匿名管道最常见的形态就是在shell操作中最常用的" | "。它的特点是只能在父子进程中使用, 父进程在产生子进程前必须打开一个管道文件,然后fork产生子进程, 这样子进程通过拷贝父进程的进程地址空间获得同一个管道文件的描述符, 以达到使用同一个管道通信的目的。此时除了父子进程外,没人知道这个管道文件的描述符, 所以通过这个管道中的信息无法传递给其他进程。另外,匿名管道不同于一般文件的显著之处是:它有两个文件描述符,而不是一个,一个只能用来读, 另一个只能用来写,这就是所谓的“半双工”通信方式,而且它对写操作不做任何保护, 即:假如有多个进程或线程同时对匿名管道进行写操作,那么这些数据很有可能会相互阻塞。 最后,匿名管道不能使用lseek()来进行所谓的定位, 因为他们的数据不像普通文件那样按块的方式存放在诸如硬盘、flash等块设备上;

⑤命名管道FIFO:命名管道(FIFO)与匿名管道(PIPE)是不同的,命名管道可以在多个无关的进程中交换数据(通信)。 匿名管道只能在”有血缘关系”的进程中进行数据交互, 这给在不相关的的进程之间交换数据带来了不方便,因此产生了命名管道,来解决不相关进程间的通信问题。

命名管道不同于无名管道之处在于它提供了一个路径名与之关联,以一个文件形式存在于文件系统中, 这样,即使与命名管道的创建进程不存在“血缘关系”的进程,只要可以访问该命名管道文件的路径, 就能够彼此通过命名管道相互通信,因为可以通过文件的形式,那么就可以调用系统中对文件的操作, 如打开(open)、读(read)、写(write)、关闭(close)等函数,虽然命名管道文件存储在文件系统中, 但数据却是存在于内存中的,支持多写者同时进行写操作而数据不会互相践踏,遵循先进先出(First In First Out)原则,最先被写入 FIFO的数据,最先被读出来。

2、学习bond:

①bond的基本概念

Bond是在Linux系统中提供的一种网络链路聚合技术,它可以将多个物理网络接口绑定成一个逻辑接口,以提高网络连接的可靠性和带宽。通过bond,可以实现网络接口的冗余和负载均衡,从而确保数据传输的稳定性和效率。

②bond的主要功能

提高可靠性:通过多个物理接口的冗余,当其中一个接口出现故障时,数据传输可以自动切换到其他正常的接口上,从而确保网络连接的连续性。

增加带宽:在支持负载均衡的模式下,bond可以将数据流量分散到多个物理接口上,从而提高整体的网络带宽。

简化管理:将多个物理接口绑定成一个逻辑接口后,可以简化网络配置和管理,降低维护成本。

③bond的工作模式

Bond支持多种工作模式,包括以下几种常见的模式:

balance-rr(轮询模式):在多个物理接口之间轮流发送数据包,实现负载均衡。这种模式适用于所有接口带宽相同的情况。

active-backup(主备模式):只有一个接口处于活动状态,其他接口作为备份。当活动接口出现故障时,备份接口会自动接管数据传输。

balance-xor(异或模式):根据数据包的源和目的MAC地址的异或值来选择发送接口,实现负载均衡。

broadcast(广播模式):在所有接口上发送数据包,虽然可以提高可靠性,但会增加网络带宽的消耗。

802.3ad(LACP模式):基于IEEE 802.3ad标准的链路聚合协议,需要交换机支持LACP协议。在这种模式下,bond会自动与交换机协商并建立链路聚合组。

④bond的配置方法

在Linux系统中配置bond,通常需要通过修改网络配置文件或使用命令行工具来完成。以下是一个基于命令行工具的配置示例:

加载bonding模块:

使用modprobe bonding命令加载bonding模块。

创建bond接口:

使用ip link add bond0 type bond mode active-backup命令创建一个名为bond0的bond接口,并设置其工作模式为active-backup。

将物理接口添加到bond接口:

使用ip link set eth0 master bond0和ip link set eth1 master bond0命令将eth0和eth1接口添加到bond0接口中。

配置bond接口的IP地址:

使用ip addr add 192.168.1.1/24 dev bond0命令为bond0接口配置IP地址。

启动bond接口:

使用ip link set bond0 up命令启动bond0接口。

⑤bond的常用命令

在Linux系统中,可以使用以下命令来查看和管理bond接口:

查看bond接口状态:

使用cat /proc/net/bonding/bond0命令查看bond0接口的状态和配置信息。

重启bond接口:

使用ip link set bond0 down && ip link set bond0 up命令重启bond0接口。

修改bond接口配置:

修改网络配置文件或使用命令行工具来修改bond接口的配置,如更改工作模式或添加/删除物理接口。

3、学习yum:

①yum(全称为Yellowdog Updater, Modified)是一个在Fedora、RedHat Enterprise Linux(RHEL)、CentOS等基于RPM(Red Hat Package Manager)的Linux发行版中广泛使用的包管理工具。

②yum的基本概念

yum是一个Shell前端软件包管理器,它基于RPM包管理,能够自动处理依赖性关系,并且一次安装所有依赖的软件包。yum使用仓库(repository)来管理软件包,这些仓库可以是网络服务器上的远程仓库,也可以是本地目录中的本地仓库。

③yum的主要功能

安装软件包:yum可以从远程仓库中下载并安装所需的软件包,同时自动处理依赖关系。

卸载软件包:yum可以卸载系统中的已安装软件包,同时自动处理相关依赖关系。

更新软件包:yum可以更新系统中已经安装的软件包到最新版本,确保系统的安全性和稳定性。

查询软件包:yum提供软件包的信息查询功能,包括可用软件包、已安装软件包的信息,甚至查看某个软件包的文件列表。

管理仓库:yum通过配置文件管理不同的远程仓库,指定软件包的来源。

④yum的工作原理

获取软件包:yum首先需要根据配置文件中定义的仓库来获取软件包。这些配置文件通常位于/etc/yum.repos.d/目录下,每个.repo文件代表一个仓库的配置。

下载元数据:当用户执行yum命令(如安装、更新等)时,yum会首先去配置的仓库中下载元数据。元数据包含了软件包的信息,如名称、版本、依赖关系等。

解析依赖关系:yum在下载元数据后,会解析软件包的依赖关系。它会检查软件包所依赖的其他软件包是否已经安装,如果没有,则会自动下载和安装这些依赖的软件包。

下载软件包:一旦依赖关系解析完毕,yum将根据用户的请求从仓库中下载所需的软件包。如果软件包已经存在于本地缓存中,则yum会直接使用缓存中的软件包,以避免不必要的下载。

执行安装或更新操作:下载完成后,yum将执行安装或更新操作。如果软件包已经安装,yum将检查其版本并进行必要的更新。

⑤yum的常用命令

安装软件包:使用yum install命令,后跟要安装的软件包名称。例如,yum install httpd用于安装Apache Web服务器。

更新软件包:使用yum update命令来更新已安装的软件包。例如,yum update用于更新所有已安装的软件包。

搜索软件包:使用yum search命令来搜索可用的软件包。例如,yum search mysql用于搜索名为“mysql”的软件包。

删除软件包:使用yum remove命令来删除已安装的软件包。例如,yum remove httpd用于删除Apache Web服务器软件包。

清理缓存:yum会在系统中保存已安装的软件包的副本,可以使用yum clean命令来清理这些缓存文件。例如,yum clean all用于清理所有yum缓存。

⑥yum的配置文件

yum的配置文件主要包括全局配置文件(如/etc/yum.conf)和仓库配置文件(位于/etc/yum.repos.d/目录下的.repo文件)。

全局配置文件(yum.conf):该文件包含了yum的全局性设置,如缓存目录、日志文件位置、包的策略、发行版信息、重试次数等。

仓库配置文件(.repo文件):这些文件用于指定软件包的来源,包括仓库的名称、描述、基础URL、是否启用GPG校验等。每个.repo文件都代表一个仓库的配置,通过[serverid]来区分不同的仓库。

⑦yum的插件扩展

yum支持插件扩展,可以通过安装和配置插件来增强yum的功能。常见的yum插件包括fastestmirror插件(用于加速软件包下载)、yum-plugin-priorities插件(用于设置优先级)等。

总之,yum是一个功能强大的软件包管理器,它简化了软件包的管理过程,提高了系统管理员的工作效率。通过学习和熟悉yum的使用方法,可以更好地管理和维护Linux系统中的软件包。

4、学习通过OPS使用zabbix(基于Linux系统)的常用命令:

①Zabbix监控相关命令

zabbix_get

用于从Zabbix agent获取数据。

示例:zabbix_get -s <agent_ip> -p <agent_port> -k <item_key>

-s:指定Zabbix agent的IP地址。

-p:指定Zabbix agent的端口号(默认为10050)。

-k:指定要获取的监控项的key。

zabbix_agentd

Zabbix agent的主程序,负责收集数据并发送给Zabbix server。

常用命令:

systemctl start zabbix-agent2:启动Zabbix agent服务。

systemctl stop zabbix-agent2:停止Zabbix agent服务。

systemctl restart zabbix-agent2:重启Zabbix agent服务。

systemctl status zabbix-agent2:查看Zabbix agent服务的状态。

zabbix_server

Zabbix server的主程序,负责处理来自Zabbix agent的数据,并触发相应的动作。

常用命令与Zabbix agent类似,但服务名称为zabbix-server。

②Linux系统管理相关命令

系统资源监控命令

top

实时显示系统的CPU、内存、进程等使用情况。

常用交互命令:h(显示帮助)、q(退出)、k(终止进程)等。

free

显示系统的内存使用情况。

常用选项:-m(以MB为单位显示)、-g(以GB为单位显示)等。

df

显示磁盘空间的使用情况。

常用选项:-h(以可读性较高的方式显示)等。

iostat

显示CPU和磁盘I/O的统计信息。

常用选项:-x(显示扩展的I/O统计信息)等。

网络管理命令

ifconfig

配置和显示网络接口的参数。

示例:ifconfig eth0 192.168.1.100 netmask 255.255.255.0(配置网络接口eth0的IP地址和子网掩码)。

注意:在现代Linux发行版中,ifconfig已被ip命令取代。

ip

显示/操作路由、设备、策略路由和隧道等。

示例:ip addr show(显示网络接口的地址信息)。

netstat

显示网络连接、路由表、接口统计信息等。

常用选项:-tuln(显示TCP和UDP的监听端口)等。

注意:在现代Linux发行版中,netstat已被ss命令取代。

ss

用于查看socket统计信息。

示例:ss -tuln(显示TCP和UDP的监听端口)。

日志管理命令

tail

用于查看文件的最后几行内容。

示例:tail -f /var/log/syslog(实时查看系统日志文件)。

grep

用于在文件中搜索指定的字符串。

示例:grep "error" /var/log/syslog(在系统日志文件中搜索包含"error"的行)。

系统维护命令

systemctl

用于管理系统的服务(service)。

示例:systemctl start httpd(启动httpd服务)、systemctl stop httpd(停止httpd服务)等。

yum/dnf

用于安装、更新、删除和管理软件包。

示例:yum install httpd(安装httpd软件包)、dnf update(更新所有软件包)等。

注意:yum是Red Hat系列发行版(如CentOS、RHEL)的包管理器,而dnf是Fedora及其衍生版的包管理器。

时间同步命令

ntpdate

用于与网络时间服务器同步系统时间。

示例:ntpdate ntp.aliyun.com(与阿里云的时间服务器同步时间)。

③Zabbix Server相关命令

启动和停止Zabbix Server

启动Zabbix Server:systemctl start zabbix-server 或 /etc/init.d/zabbix-server start

停止Zabbix Server:systemctl stop zabbix-server 或 /etc/init.d/zabbix-server stop

重启Zabbix Server:systemctl restart zabbix-server 或 /etc/init.d/zabbix-server restart

查看Zabbix Server状态

systemctl status zabbix-server:查看Zabbix Server服务的当前状态。

Zabbix Server运行时控制

zabbix_server -R <runtime-option>:根据配置的选项执行管理功能。

config_cache_reload:重新加载配置缓存。

housekeeper_execute:立即执行Housekeeper操作(如删除历史数据等)。

log_level_increase[=target]:提升日志级别。

log_level_decrease[=target]:降低日志级别。

④Zabbix Proxy相关命令

启动和停止Zabbix Proxy

与Zabbix Server类似,使用systemctl或/etc/init.d/zabbix-proxy来启动、停止或重启Zabbix Proxy服务。

查看Zabbix Proxy状态

使用systemctl status zabbix-proxy来查看Zabbix Proxy服务的当前状态。

Zabbix Proxy运行时控制

zabbix_proxy -R <runtime-option>:与Zabbix Server类似,根据配置的选项执行管理功能。

⑤Zabbix Agent相关命令

启动和停止Zabbix Agent

使用systemctl或/etc/init.d/zabbix-agent(或zabbix-agent2,取决于安装版本)来启动、停止或重启Zabbix Agent服务。

查看Zabbix Agent状态

使用systemctl status zabbix-agent(或zabbix-agent2)来查看Zabbix Agent服务的当前状态。

Zabbix Agent运行时控制和测试

zabbix_agentd -R <runtime-option>:根据配置的选项执行管理功能,如提升或降低日志级别。

zabbix_agentd -p:显示输出已知的监控项信息。

zabbix_agentd -t <item-key>:测试单个监控项,以验证其是否能正确返回数据。

⑥其他常用命令

查看Zabbix版本

使用zabbix_server -V、zabbix_proxy -V、zabbix_agentd -V或zabbix_agent2 -V来查看相应组件的版本信息。

查看帮助信息

使用-h或--help参数来查看任何Zabbix命令的帮助信息,例如zabbix_server -h。

配置文件管理

使用-c或--config参数来指定配置文件的路径,以取代默认的配置文件。这对于在不同环境或场景下使用不同的配置文件非常有用。

5、进一步学习脚本:

深入学习了CentOS7操作系统安装完后执行的shell脚本,内容过多保存到了飞书文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值