nmcli命令:

command - line tool for controlling NetworkManager

格式:nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS: = {

-t [erse]

-p [retty]

-m [mode] tabular | multiline

-f [ields] <field1,field2,...> | all | common

-e [scape] yes | no

-v [ersion]

-h [elp]

}

OBJECT: connection | device

device - show and manage network interfaces

COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }

status: 状态显示

connection - start,stop,and manage network connections

start: 启动

stop: 停止

manage: 管理

COMMAD := { show | up | down | add | edit | modify | delete | reload | load }

示例: nmcli general status 状态显示

modify: 改文件

reload: 重新加载

load: 加载

show: 显示所有网络连接的属性信息

up|down: 启动或禁用指定的网络连接

add: 添加新的网络连接

autoconnect yes|no: 是否自动启动此连接,在配置文件中添加ONBOOT=yes|no;

ifname IF_NAME: 指定要创建连接的目标网络接口设备名称;

con-name CON_NAME: 为指定的网络接口设备创建一个连接名称;

type TYPE: 指定网络设备的接口类型;

示例:

# nmcli connection add sutoconnect yes ifname eno67109432 con-name eno666 type ethernet

delete: 删除指定的网络连接

#nmcli connection delete CON_NAME

示例:

#nmcli connection delete eno666

reload: 不重启网络接口,但重新加载其配置文件中的配置信息;

modify:

modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>

<setting>:

802-3-ethernet.mtu

connection.autoconnect

ipv4.addresses

ipv4.dns

ipv4.gateway

ipv4.method

示例:

# nmcli connection modify "系统\ eno50332208" ipv4.addresses 1.2.3.4/8 ipv4.dns 202.202.222.222 ipv4.gateway 1.1.1.1

nmtui:

nmtui - Text User Interface for controlling NetworkManager

CentOS6:

system-config-network[-tui]

setup --> 网络配置

注意: 上述命令虽然可以使用简单的图形界面,但都是修改了配置文件,所以需要重启网络接口才能使配置生效;

网络组(Network Teaming)

网络组: 是将多个网络接口设备聚合在一起的方法,其目的是实现冗余容错以及提高可用性和吞吐量;

网络组与以往的Bonding技术相比,具有更好的性能以及更好的扩展性;

在CentOS7中,网络组是由内核中的一个内核驱动和一个名为teamd的守护进程来实现的;

网络组可以实现多个工作模式,被称为"运行器(runner)";

broadcast

roundrobin

activebackup

loadbalance

lacp(IEEE 802.3ad,Link Aggregation Control Protocol,链路聚合控制协议)

网络组连接的特点:

1.启动网络组接口并不会自动启动网络组中的其他port接口;

2.启动网络组终端port接口,也不会自动启动网路组接口;

3.禁用网络组接口,则会立即禁用网络组中的port接口;

4.对于没有port接口的网络接口而言,只能配置静态IP地址,不能设置从DHCP获取; 如果设置了,网络组接口就会一直等待port接口的加入;

创建网络组接口的方法:

nmcli connection add type team con-name TEAM_COM_NAME ifname IF_NAME config JSON

JSON是用来指定runner的方式,其格式:

'{"runner": {"name": "METHOD"}}'

示例:

# nmcli connectin add type team con-name class17 ifname class17config '{"runner": {"name": "loadbalance"}}'

# nmcli connection modify class17 ipv4.addresses 172.16.203.205/16

# nmcli connection modify class17 ipv4.method manual

创建port接口

nmcli connection add type team-slave [con-name CON_NAME] ifname IF_NAME master TEAM_NAME

注意: 如果不指定con-name,则默认的con-name为team-slave-IF_NAME

示例:

# nmcli connectin add type team-slave con-name eno67109432 ifname eno67109432 master class17

# nmcli connectin up class17

# nmcli connectin up eno67109432

# nmcli device disconnect eno67109432

创建网络组也可以直接改对应的连接的配置文件:

网络组接口:

DEVICE=class17

TEAM_CONfig="{\"runner\": {\"name\": \"activebackup\"}}"

DEVICETYPE=Team

BOOTPRORO=noe

NAME=class17

ONBOOT=yes

IPADDR=172.16.203.205

PREFIX=16

port接口:

NAME=team-slave-eno33554984

DEVICE=eno33554984

ONBOOT=yes

TEAM_MASTER=class17

DEVICETYPE=TeamPort

进程管理

在进程管理中,经常会需要进行保存现场和恢复现场

保存现场: 将数据和状态保存

恢复现场: 将数据和状态恢复

在linux中进程和线程基本无差别

在windows中划分明显,一个cpu只能执行一个进程;

写时复制: 即在数据发生改变时,对数据进行复制;

所谓进程: process,一个活动的程序实体的副本;

生命周期可能包含一个或多个执行流;

创建进程:

每个进程的组织结构是一致的;

内核在正常启动并且全面接管硬件资源之后,会创建一个Init的进程; 而这个名叫init的进程负责用户空间的进程管理;

CentOS5及以前: SysV Init,Classic Init

有缺陷: 在启动系统时,Init通过写脚本的方式来创建各个子进程; 利用shell来实现,因此其执行速度非常慢; 导致系统的启动速度和进程的创建速度都非常慢;

CentOS6: upstart,由Ubuntu研发的新型的Init进程; 可以并行的启动某些有关联的服务进程; 在创建进程的时候,可以多创建进程; 如果有多个cpu或这个多颗cpu核心的话,其进程的创建速度会有比较明显的变化; 第一个进程名称仍然是init;

CentOS7: Systemd(系统的守护神),参考了MAC OS的启动逻辑开发的一款新款的init程序; 其可以自身独立完成整个操作系统的启动工作; 也就是说,在开机并加载内核之后,只需要启动一个systemd进程就可以将其他各服务进程启动起来,从而引导整个系统启动;

除了init进程之外,其他的各个进程都是由其父进程创建的;

由fork()系统调用来实现的;

每个父进程通过fork()系统调用,复制自身的数据给子进程使用; 这种复制方式不是立即复制,而是写时复制(CoW);

终止进程:

任何父进程创建的子进程都必须由父进程亲自销毁;

任何的进程的父子关系都保存在task struct中;

进程优先级:

0-139个等级;

0保留没用

实则1-139

1-99: 实时优先级,数字越大优先级越高; 在系统启动时启动的进程;

100-139: 静态优先级,数字越小优先级越高;

在用户执行某些应用程序的时候启动的进程;

nice值:

-20~19: 默认的nice值0;

只有管理员才能使用负整数的nice值,以提升进程的优先级;

而普通用户只能使用正整数的nice值,以降低进程的优先级;

划分了140个进程队列;

Big O标准:

O(1),O(logN),O(N),O(N^2),O(2^N)

进程的类型:

按照进程的启动方式:

守护进程:

Daemon,通常是在系统引导的过程被启动的,与任何的终端无关; 也可以通过终端启动;

用户进程:

用户登录到系统之后,通过终端启动的进程;

按照进程的运行位置:

前台进程:

在进程启动之后,进程一直占用标准输出或者标准输入或者同时占用标准输出和标准输入;

后台进程:

在进程启动之后,进程不占用标准输出和标准输入;

按照进程对于资源消耗:

cpu-Bond: 非交互式的进程;

IO-Bond: 编辑器等各种交互式进程;

Linux系统上与进程有关的命令(查看命令和管理类命令):

pstree,ps,pidof,pgrep,pkill,top,htop,glances,dstat,pmap,vmstat,bg,fg,jobs,kill,killall,nohup,nice,renice,......

pstree:

pstree - display a tree of processes

ps

ps - report a snapshot of the current pocesses.

ps [options]

1. UNIX options,which may be grouped and must be preceded by a dash.

2. BSD options,which may be grouped and must not be used with a dash.

3. GNU long options,which are preceded by two dashes.

常用选项:

BSD风格的选项:

a: 显示所有与终端相关的进程;

x: 显示所有与终端无关的进程;

u: 显示发起进程的用户的账户名称;

常用的选项组合之一: aux

ps aux命令显示的结果中各字段的含义:

USER: 进程的所有者

PID: 进程标识符

%cpu: 进程占用的cpu处理时间的百分比;

%MEM: 进程占用的物理内存的百分比;

VSZ: 虚拟内存集(可交换内存集)

RSS: 常驻内存集

TTY: 进程与哪个终端相关; ? 表示与终端无关

STAT

R: running,正在运行的进程;

S: interuptible sleeping,可中断的睡眠状态;

D: uninteruptible sleeping,不可中断的睡眠状态; disk Block;

T: Trace/STOPPED,被跟踪/已停止; (通常是子进程在等待父进程将其杀死)

Z: Zombie,僵死态;

+: 前台进程

l: 包含多线程的进程

<: 高优先级进程

N: 低优先级进程

s: session leader,由子进程的父进程;

START: 进程开始执行的时候时间戳

TIME: 进程累计的cpu占用时间

COMMAND: 启动进程的命令行参数

UNIX风格的选项:

-e: 显示所有进程;

-f: 显示完整格式的进程信息

-F: 显示完整格式的进程信息,与-f几乎相同;

常用的选项组合之二: -ef

PPID: 父进程PID

C: 表示进程占用的cpu时间的百分比

常用的选项组合之二: -eF

SZ: 虚拟内存集

RSS: 常驻内存集

PSR: 表示此进程在哪个cpu核心上运行;

-H: 以层级结构显示进程的父子关系;

常用的选项组合之四: -eFH

o|-o field1,...: 以自定义字段的方式显示进程相关信息;

field: pid,ppid,ni,rtprio,psr,pcpu,stat,comm,user,tty,vsz,RSS,......

常用的选项组合之五: -eo | axo field1,...

pgrep,pkill:

pgrep,pkill - look up or signal processes based on name and other attributes

根据进程名称或其他属性查看进行或向进程发送信号;

pgrep [options] pattern

pkill [options] pattern

常用选项:

-u uuid: 显示进程的有效用户;

-U uid: 显示进程的真实用户;

-t TERM: 显示指定的终端相关的进程;

-l: 显示进程名称;

-a: 显示进程的完整的命令行参数;

pidof:

显示指定进程名称对应的进程ID;

top:

top - display Linux processes

top首部:

第一行: uptime信息:

当前系统时间

系统的运行时长

当前登录系统的用户总数

过去1分钟,5分钟,15分钟的在cpu上等待运行的进程队列的长度;

第二行:

系统中运行的进程总数;

正在运行的进程数;

处于睡眠状态的进程数

已停止的进程数

僵死态的进程数

第三行: cpu时间占用百分比

us: user space,用户空间的进程占用的cpu时间的百分比

sy: system,内核空间的内核进程占用的cpu时间的百分比

ni: nice,使用nice值调整了进程优先级之后额外多占用的cpu时间百分比;

id: idle,cpu空闲时间的百分比

wa: waiting,等待IO完成所消耗的cpu时间的百分比

hi: hardware interupting,处理硬件中断时间所消耗的cpu时间的百分比;

si: software interupting,处理软件中断时间所消耗的cpu时间的百分比;

st: stolen,被虚拟化程序等偷走的cpu时间的百分比

第四行: 以KB为单位显示物理内存空间的使用情况;

total: 物理内存空间的总大小

free: 空闲的物理内存空间大小

userd: 已经被使用的物理内存空间大小

buffer/cache: 缓冲区和缓冲区消耗的物理内存空间大小

auail mem: 真正可用的内存空间大小;

第五行: 以KB为单位显示swap空间的使用情况

交互式命令:

1: (数字) 显示或隐藏cpu核心信息

P: 根据cpu占用百分比进行排序

M: 根据物理内存占用百分比进行排序

T: 根据累计cpu占用时间进行排序

l: (字母)关闭或显示uptime信息

t: 关闭或显示第二,第三行信息

m: 关闭或显示第四,第五行信息

q: 退出top交互模式

s: 修改top的刷新时间间隔

k: 终止某个指定PID的进程的运行

常用的选项:

-d #: 指定top刷新的时间间隔,默认是3秒;

-b: 按批次显示进程信息

-n #: 通常与-b选项一起使用,表示显示多少批;

CentOS中的网络管理+进程管理的更多相关文章

  1. Html5页面二次分享的实现

    这篇文章主要介绍了Html5页面二次分享的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. xcode – 在界面构建器中遇到Apple TV视图问题

    我正在开发一个TvOS应用程序并且遇到界面构建器的问题,当我拖动按钮,标签,段等对象时……当前视图没有显示任何内容!接口构建器有什么问题?XcodeVersion7.1,OSXversion:10.11.1在屏幕截图的顶部有一个错误.“Aninternalerroroccurred.Editingfunctionalitymaybelimited”解决方法方案:我已将所有文件通过TransferAssistant从旧mac转移到新的,所以我认为这可能会导致问题!不幸的是,更新到Xcode7.1.1没有任何

  4. ios – Objective C接口,委托和协议

    所以我试图围绕Objctive-C接口,代理和协议.所以我有一个问题:委托是否必须在单独的文件中,或者它是否是您班级中定义的方法?协议就像java接口吗?

  5. 为什么Xcode 7 iOS模拟器冻结?

    在Xcode7模拟器中,特别是在滚动或执行其他GPU密集型任务时,我会得到60秒以上的冻结.问题似乎是模拟器作为一个整体,而不是我的应用程序.如果我跟踪仪器中的cpu时间,50秒的实时显示为我的应用程序cpu时间的0.5s以下.这是怎么回事?解决方法我运行BetterSnapTool进行窗口管理.退出此应用程序会立即修复问题,即使SIM卡处于冻结状态.不知道为什么,但更好的SnapTool似乎正在干扰iOSSimulator对GPU的使用.

  6. ios – watchOS错误:控制器的接口描述中的未知属性

    解决方法创建IBOutlet作为WKInterfacePicker的属性,您将不会收到消息.

  7. 泛型 – MonoTouch和支持变体通用接口

    如果是这样,MonoTouch中针对这种情况的推荐解决方法是什么?解决方法这实际上取决于编译器而不是Mono版本.IOW有些东西可能适用于Mono2.10而不适用于MonoTouch6.x.当前版本的MonoTouch附带了smcs编译器和基于2.1的配置文件.较新的功能,如协方差,需要一个完整的4.0编译器和运行时.未来版本的MonoTouch将提供4.0/4.5运行时和编译器.

  8. ios – 用于 – 在Counterparts中的ViewController.swift(接口)文件是什么

    有人可以这么善良并解释这个文件的目的是什么?

  9. ios6 – 检测UIViewController上的接口旋转,即使未在 – (NSUInteger)supportedInterfaceOrientations中定义

    解决方法尝试使用UIDevice实例来检测设备物理方向的变化.要开始接收通知,您可以使用类似的内容:要取消注册接收设备旋转事件,请使用此选项:这是deviceDidRotate函数的一个例子:

  10. 接口和扩展

    classSimpleClass:ExampleProtocol{String="Averysimpleclass."varanotherProperty:Int=120funcadjust(){simpleDescription+="Now100%adjust."}funcadd(){simpleDescription+="Now50%add."}}vara=SimpleClass()a.adjust()letaDescription=a.simpleDescriptionstructSimpleStr

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部