网络配置与进程管理

一、网络配置

1、ifconfig命令

 ifconfig [IFACE]
     显示所有启动的网络接口信息,包括网卡别名;指明网络接口时,显示指定网络接口信息
 ifconfig -a
     显示所有网络接口的信息,包括未启动的网卡接口。
 ifconfig IFACE [up|down]
     启动或关闭网络接口
 ifconfi IFACE [-]promisc
     启用混杂模式
 ifconfig IFACE IP/mask [up]
 ifconfig IFACE IP netmask MASK
     临时配置网络接口,立即生效
    注意:立即生效,但不会永久有效

    ifup/ifdown IFACE
        启用或禁用网络接口

2、route命令
    route -n
          查看路由表    
    route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]
        添加路由条目
    route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]
        删除路由条目
    route del default
           删除默认路由
       route add default gw target
        添加默认路由

 注:配置动态路由
        通过守护进程获取动态路由
        安装quagga包,支持多种格式的RIP、OSPF和BGP
        命令vtysh配置

练习:
   route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
   route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
   route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
   route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
   route add default gw 172.16.0.1
   route del -host 192.168.1.3
   route del -net 192.168.0.0 netmask 255.255.255.0
 
3、netstat命令
(1)显示网络连接
    netstat        
      -t: tcp协议相关
      -u: udp协议相关
      -w: raw socket相关
      -l: 处于监听状态
      -a: 所有状态
      -n: 以数字显示IP和端口;
      -e:扩展格式
      -p: 显示相关进程及PID

   常用组合:
       -tan, -uan, -tnl, -unl

(2)显示路由表
    netstat
      -r: 显示内核路由表
      -n: 数字格式,不解析成主机名

(3)显示接口统计数据:
    netstat
       -i
       -I IFACE

4、ip命令
   ip {link|addr|route}
(1)ip link
         set dev IFACE {up|down}:激活或禁用指定接口
         show [dev IFACE]:显示指定接口信息,没有指定时显示所有启动接口

(2) ip addr
       ip addr {add|del} IFADDR dev STRING
        [label LABEL]:添加地址时指明网卡别名
        [scope {global|link|host}]:指明作用域
            global: 全局可用,默认;
            link: 仅链接可用;
            host: 本机可用;
        [broadcast ADDRESS]:指明广播地址

     ip addr show -look at protocol addresses
        [dev DEVICE]
        [label PATTERN]
        [primary and secondary]

    ip addr flush [dev DEVICE]
        清空协议地址,没有指明接口时,清空所有协议地址

  练习:
    ip addr add 172.16.100.13/16 dev eth0 label eth0:0
    ip addr del 172.16.100.13/16 dev eth0 label eth0:0
    ip addr flush dev eth0 label eth0:0

(3) ip route
          list|show
               查看路由表
          add NETWORK/MASK via GW [dev IFACE] [src SOURCE_IP]
             添加路由条目
          add default via GW [dev IFACE]
               添加默认路由
          delete NETWORK/MASK
               删除路由条目
          flush [dev IFACE] [via PREFIX]
              清空路由表

  练习:
    ip route add 192.168.0.0/24 via 172.16.0.1
    ip route add 192.168.1.13 via 172.16.0.1
    ip route add default via 172.16.0.1
    ip route flush dev eth0

5、ss命令
    netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。
    选项:
    -t: tcp协议相关
    -u: udp协议相关
    -w: 裸套接字相关
    -x:unixsock相关
    -l: listen状态的连接
    -a: 所有状态
    -n: 数字格式
    -p: 相关的程序及PID
    -e: 扩展的信息
    -m:内存用量
    -o:计时器信息

  常用组合:
      -tan, -tanl, -tanlp, -uan

 TCP的常见状态:
    LISTEN: 监听
    ESTABLISHED:已建立的连接
    FIN_WAIT_1
    FIN_WAIT_2
    SYN_SENT
    SYN_RECV
    CLOSED
UDP无状态

FILTER := [ state TCP-STATE ] [ EXPRESSION ]
EXPRESSION:
    dport=
    sport =
示例:'( dport= :sshor sport = :ssh)'  显示所有已建立的SSH连接
      '( dport = :smtp or sport = :smtp )'  显示所有已建立的SMTP连接
      '( dport = :http or sport = :http )'  显示所有已建立的HTTP连接

本地解析器  /etc/hosts
  解析器执行正向和逆向查询
    本地主机名数据库和IP地址的映像
    对小型独立网络有用
    通常,在使用DNS前检查
    getent hosts 查看/etc/hosts 内容

dns解析器  /etc/resolv.conf
    nameserverDNS_SERVER_IP1
    nameserverDNS_SERVER_IP2
    nameserverDNS_SERVER_IP3

本地解析器与dns解析器的检查顺序/etc/nsswitch.conf
    一般/etc/hosts相比优先于DNS

正解:FQDN–>IP
     dig -t A FQDN
     host -t A FQDN
反解:IP–>FQDN
     dig -x IP
     host -t PTR IP

路由配置文件
/etc/sysconfig/network-scripts/route-IFACE
  注意:需service network restart生效
两种风格:
    (1) TARGET via GW
    (2) 每三行定义一条路由
    ADDRESS#=TARGET
    NETMASK#=mask
    GATEWAY#=GW
 注:两种风格不能同时使用,只能使用一种风格

查看网卡驱动:
    ethtool -i IFACE
卸载网卡驱动:
    modprobe -r e1000
    rmmod e1000
装载网卡驱动:
    modprobe e1000

网卡名称
centos6
    网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化。
    网络接口识别并命名相关的udev配置文件:
        /etc/udev/rules.d/70-persistent-net.rules
centos7
(1) 网卡命名机制
    systemd对网络设备的命名方式,基于硬件,设备拓扑和设置类型命名
    (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
    (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
    (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
    (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
    (e) 上述均不可用时,则使用传统命名机制

(2) 名称组成格式
        en: Ethernet 有线局域网
        wl: wlan无线局域网
        ww: wwan无线广域网
        o<index>: 集成设备的设备索引号
        s<slot>: 扩展槽的索引号
        x<MAC>: 基于MAC地址的命名
        p<bus>s<slot>: enp2s1

(3)网卡设备的命名过程:
  (a)udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
  (b) biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules
   (c) 通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
        ID_NET_NAME_ONBOARD
        ID_NET_NAME_SLOT
        ID_NET_NAME_PATH

(4) 采用传统命名方式
    (a) 编辑/etc/default/grub
            GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
    (b) 为grub2生成其配置文件
            grub2-mkconfig -o /etc/grub2.cfg
    (c) 重启系统
            reboot
  或
      (a) 直接编辑/boot/grub2/grub.cfg或/boot/grub/grub.conf
              crashkernel=auto rhgb quiet.UTF-8 net.ifnames=0
      (b) 重启系统
              reboot

      注:需要修改相对应的网络接口配置文件

6、nmcli命令
  修改IP地址等属性:
    nmcli connection modify IFACE [+|-]setting.property value
        setting.property:
            ipv4.addresses ipv4.gateway
            ipv4.dns1 ipv4.method manual | dhcp

修改配置文件执行生效:
    systemctl restart network
    nmclicon reload
nmcli命令生效:
    nmcli con down eth0
    nmcli con up eth0

相关工具
网络接口配置tui工具:nmtui
主机名称配置工具:hostnamectl
    status
    set-hostname

NeworkManager是管理和监控网络设置的守护进程
设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效。
(a)显示所有包括不活动连接
    nmcli con show
(b)显示所有活动连接
    nmcli con show –active
(c)显示网络连接配置
    nmcli con show "System eth0“
(d)显示设备状态
    nmcli dev status
(e)显示网络接口属性
    nmcli dev show eno16777736
(f)创建新连接default,IP自动通过dhcp获取
    nmcli con add con-name default type Ethernet ifnameeth0
(g)删除连接
    nmcli con del default
(h)创建新连接static ,指定静态IP,不自动连接
    nmcti con add con-name static ifnameeth0 autoconnectno type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
(i)启用static连接配置
    nmcli con up static
(j)启用default连接配置
    nmcli con up default
(k)查看帮助
    nmcli con add help

练习:
    nmcli con mod “static” connection.autoconnect no
    nmcli con mod “static” ipv4.dns 172.25.X.254
    nmcli con mod “static” +ipv4.dns 8.8.8.8
    nmcli con mod “static” -ipv4.dns 8.8.8.8
    nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

nmcli con mod                                                       ifcfg-* 文件

ipv4.method manual                                             BOOTPROTO=none
ipv4.method auto                                                  BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254”         IPADDR0=192.0.2.1  PREFIX0=24  GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8                                                       DNS0=8.8.8.8
ipv4.dns-search example.com                               DOMAIN=example.com
ipv4.ignore-auto-dns true                                     PEERDNS=no
connection.autoconnect yes                                 ONBOOT=yes
connection.id eth0                                                 NAME=eth0
connection.interface-name eth0                          DEVICE=eth0
802-3-ethernet.mac-address . . .                            HWADDR= . . .

网络配置文件
设备配置被保存在文本文件中:/etc/sysconfig/network-scripts/ifcfg-<name>
  帮助文档列出完整选项列表:/usr/share/doc/initcripts-*/sysconfig.txt

    动态配置                                                    静态配置

    DEVICE=ethX                                           DEVICE=ethX
    HWADDR=0:02:8A:A6:30:45                    HWADDR=0:02:8A:A6:30:45
    BOOTPROTO=dhcp                                 IPADDR=192.168.0.123
    ONBOOT=yes                                           NETMASK=255.255.255.0
    Type=Ethernet                                         GATEWAY=192.168.0.254
                                                                      ONBOOT=yes
                                                                      Type=Ethernet
   
修改连接配置后,需要重新加载配置
    nmcli con reload
    nmcli con down “system eth0” 可被自动激活
    nmcli con up “system eth0”
    nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具  nm-connection-editor

网络组Network Teaming
    网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
    网络组不同于旧版中bonding技术,提供更好的性能和扩展性
    网络组由内核驱动和teamd守护进程实现.
    多种方式runner
        broadcast
        roundrobin
        activebackup
        loadbalance
        lacp(implements the 802.3ad Link Aggregation Control Protocol)

    启动网络组接口不会自动启动网络组中的port接口
    启动网络组接口中的port接口不会自动启动网络组接口
    禁用网络组接口会自动禁用网络组中的port接口
    没有port接口的网络组接口可以启动静态IP连接
    启用DHCP连接时,没有port接口的网络组会等待port接口的加入

创建网络组接口
    nmcli con add type team con-name CNAME ifname INAME [config JSON]
        CNAME连接名,INAME接口名,
        JSON指定runner方式
            格式:'{"runner": {"name": "METHOD"}}'
            METHOD可以是broadcast, roundrobin, activebackup, loadbalance, lacp.

创建port接口
  nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
        CNAME连接名,INAME网络接口名,TEAM网络组接口名,连接名若不指定,默认为team-slave-IFACE.
    nmcli dev dis INAME
    nmcli con up CNAME
        INAME设备名CNAME网络组接口名或port接口

网络组示例
创建网络组nmcli con add con-name team0 type team ifname team0 config "{"runner": {"name": "loadbalance"}}"
添加IP地址nmcli con mod team0 ipv4.addresses 192.168.1.100/24
IP获取方式nmcli con mod team0 ipv4.method manual
添加网卡1 nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
添加网卡2 nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
启动网络组nmcli con up team0
启动接口1 nmcli con up team0-eth1
启动接口2 nmcli con up team0-eth2
查看网络组teamdctl team0 state
关闭接口  nmcli dev dis eth1

管理网络组配置文件
 /etc/sysconfig/network-scripts/ifcfg-team0
    DEVICE=team0
    DEVICETYPE=Team
    TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
    BOOTPROTO=none
    IPADDR0=172.25.5.100
    PREFIX0=24
    NAME=team0
    ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-team0-eth1
    DEVICE=eth1
    DEVICETYPE=TeamPort
    TEAM_MASTER=team0
    NAME=team0-eth1
    ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-team0-eth2
    DEVICE=eth2
    DEVICETYPE=TeamPort
    TEAM_MASTER=team0
    NAME=team0-eth2
    ONBOOT=yes

主机名管理
rhel6之前主机名配置文件:/etc/sysconfig/network
rhel7.0主机名配置文件:/etc/hostname ,默认没有这个文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain

显示主机名信息
    hostname
    hostnamectlstatus
创建并修改文件并生效
    hostnamectl set-hostname desktopX.example.com
删除文件,恢复主机名localhost.localdomain

DNS设置,存放在/etc/resolv.conf文件中
    PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下面命令:
    nmclicon mod “system eth0” ipv4.ignore-auto-dns yes

显示主机名   hostname
测试网络连通性    ping,mtr
显示正确的路由表   iproute
确定名称服务器使用   nslookup,host,dig
跟踪路由   traceroute,Tracepath

网络客户端工具
lftp, ftp, lftpget, wget
 lftp[-p port] [-u user[,password]] SERVER
子命令:
get、mget、ls、help
# lftpgetURL
# ftp
# wget
wget[option]… [URL]…
-q: 静默模式
-c: 断点续传
-O: 保存位置
–limit-rates=: 指定传输速率

进程管理

进程概念
  内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等
  Process: 运行中的程序的一个副本,是被载入内存的一个指令集合

    进程ID(Process ID,PID)号码被用来标记各个进程
    UID、GID、和SELinux语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承,存在生命周期

  task struct:Linux内核存储进程信息的数据结构格式
  task list:多个任务的的task struct组成的链表

进程创建:
    init:第一个进程
    父子关系
    进程:都由其父进程创建,COW
    fork(), clone()
    Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中

进程优先级:
    系统优先级:数字越小,优先级越高
    0-139(CentOS4,5)
    各有140个运行队列和过期队列
    0-98,99(CenOS6)
    实时优先级:99-0:值最大优先级最高
    Nice值:-20,19对应系统优先级100-139或99
    Big O:时间复杂度,用时和规模的关系
    O(1), O(logn), O(n)线性, O(n^2)抛物线, O(2^n)

进程相关概念
    进程内存:
        Page Frame: 页框,用存储页面数据,存储Page 4k
        LRU:Least Recently Used 近期最少使用算法,释放内存
        物理地址空间和线性地址空间
        MMU:Memory Management Unit负责转换线性和物理地址

    IPC: Inter Process Communication
        同一主机上
            signal
            shm: shared memory
            semophore信号量,一种计数器
        不同主机上:
            rpc: remote procedure call
            socket: IP和端口号

进程状态
Linux内核:抢占式多任务
    进程类型:
        守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
        前台进程:跟终端相关,通过终端启动的进程
        注意:两者可相互转化
    进程状态:
        运行态:running
        就绪态:ready
        睡眠态:
            可中断:interruptable
            不可中断:uninterruptable
        停止态:stopped,暂停于内存中,但不会被调度,除非手动启动
        僵死态:zombie,结束进程,父进程结束前,子进程不关闭

进程的分类:
    CPU-Bound:CPU密集型,非交互
    IO-Bound:IO密集型,交互

1、pstree    显示进程树
     -p:显示进程号PID
    
2、ps     查看进程信息
   支持三种选项:
        UNIX选项如-A -e
        BSD选项如a
        GUN选项如–help

   默认显示当前终端中的进程
     a选项包括所有终端中的进程
     x选项包括不链接终端的进程
     u选项显示进程所有者的信息
     f选项显示进程的父进程
     o属性… 选项显示定制的信息:pid、comm、%cpu、%mem、state、tty、euser、ruser

    VSZ: Virtual memory SiZe,虚拟内存集,线性内存
    RSS: ReSidentSize, 常驻内存集
    STAT:进程状态
    R:running 运行态
    S: interruptablesleeping 可中断睡眠
    D: uninterruptable sleeping 不可中断睡眠
    T: stopped 停止态
    Z: zombie 僵尸态
    +: 前台进程
    l: 多线程进程
    N:低优先级进程
    <: 高优先级进程
    s: session leader,会话(子进程)发起者

(1)常用组合:-ef
    -e: 显示所有进程
    -f: 显示完整格式程序信息
(2)常用组合:-eFH
    -F: 显示更完整格式的进程信息
    -H: 以进程层级格式显示进程相关信息
(3)常用组合:自定义
    -eo pid,tid,class,rtprio,ni,pri,psr,    pcpu,stat,comm
    axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni: nice值
      pri: priority,优先级
      psr: processor, CPU编号
      rtprio: 实时优先级

3、pgrep     按预定义的模式搜索进程
    -u uid: effective user,生效者
    -U uid: real user,真正发起运行命令者
    -t terminal: 与指定终端相关的进程
    -l: 显示进程名
    -a: 显示完整格式的进程名
    -P pid: 显示指定进程的子进程

4、pidof     按确切的程序名称找出其进程PID

5、uptime     显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)

系统平均负载:指在特定时间间隔内运行队列中的平均进程数。

如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。

如果linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

6、top:动态查看进程信息
    选项:
        -d #: 指定刷新时间间隔,默认为3秒
        -b: 以批次方式
        -n #: 显示多少批次

    子命令:
        P:以占据的CPU百分比,%CPU
        M:占据内存百分比,%MEM
        T:累积占据CPU时长,TIME+
        q:退出命令
        s:修改刷新时间间隔
        k:终止指定进程
        w:保存文件

    首部信息显示:
        uptime信息:l命令
        tasks及cpu信息:t命令
        cpu分别显示:1 (数字)
        memory信息:m命令

  栏位信息简介
        us:用户空间
        sy:内核空间
        ni:调整nice时间
        id:空闲
        wa:等待IO时间
        hi:硬中断
        si:软中断(模式切换)
        st:虚拟机偷走的时间
        PID:任务的进程ID
        PPID:父任务的进程
        IDRUSER:任务的所有者真实名称
        UID:任务所有者
        IDUSER:任务所有者名称
        GROUP:任务所有者群组名
        TTY:终端
        PR:优先级
        %CPU:CPU使用率
        %MEM:内存使用率
        S:进程状态
        TIME+:CPU时间,精确到秒

7、htop     top的增强版
    选项:
        -d #: 指定延迟时间;
        -u UserName: 仅显示指定用户的进程;
        -s COLUME: 以指定字段进行排序;
    子命令:
        s: 跟踪选定进程的系统调用;
        l: 显示选定进程打开的文件列表;
        a:将选定的进程绑定至某指定CPU核心;
        t: 显示进程树

8、vmstat     虚拟内存信息
    选项:
        -s:将一些事件导致的内存变化列表说明
        -S:后面可以接单位K、M代表bytes的容量
        -d:列出磁盘的读写总量统计表

    vmstat 1 3
    栏位信息简介
    procs:
        r:等待运行的进程的个数,和核心数有关
        b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
    memory:
        swpd: 交换内存的使用总量
        free:空闲物理内存总量
        buffer:用于buffer的内存总量
        cache:用于cache的内存总量
    swap:
        si:从磁盘交换进内存的数据速率(kb/s)
        so:从内存交换至磁盘的数据速率(kb/s)
        io:
        bi:从块设备读入数据到系统的速率(kb/s)
        bo: 保存数据至块设备的速率
    system:
        in: interrupts, 中断速率,包括时钟
        cs: context switch, 进程切换速率
    cpu:
        us:Timespent running non-kernel code
        sy: Time spent running kernel code
        id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
        wa: Time spent waiting for IO. 2.5.41前,包括in idle.
        st: Time stolen from a virtual machine. 2.6.11前, unknown.

9、pmap     进程对应的内存映射
     -x: 显示详细格式的信息;
    另外一种实现:cat /proc/PID/maps

10、glance     系统监控工具
常用选项:
    -b: 以Byte为单位显示网卡数据速率
    -d: 关闭磁盘I/O模块
    -f /path/to/somefile: 设定输入文件位置
    -o {HTML|CSV}:输出格式
    -m: 禁用mount模块
    -n: 禁用网络模块
    -t #: 延迟时间间隔
    -1:每个CPU的相关数据单独显示

    C/S模式下运行glances命令
    服务模式:
         glances -s -B IPADDR
         IPADDR: 指明监听的本机哪个地址
    客户端模式:
         glances -c IPADDR
         IPADDR:要连入的服务器端地址

11、dstat命令     系统资源统计
    选项:
        -c: 显示cpu相关信息
        -C #,#,…,total
        -d: 显示disk相关信息
        -D total,sda,sdb,…
        -g:显示page相关统计数据
        -m: 显示memory相关统计数据
        -n: 显示network相关统计数据
        -p: 显示process相关统计数据
        -r: 显示io请求相关的统计数据
        -s: 显示swapped相关的统计数据
        –tcp:显示tcp套接字的相关统计数据
        –udp:显示udp套接字的相关统计数据
        –unix:显示unix套接字的相关统计数据
        –raw
        –socket
         –ipc
        –top-cpu:显示最占用CPU的进程
        –top-io: 显示最占用io的进程
        –top-mem: 显示最占用内存的进程
        –top-latency: 显示延迟最大的进程

12、kill     向进程发送控制信号,以实现对进程管理
      -l:显示当前系统可用信号

    常用信号:man 7 signal
        1) SIGHUP: 无须关闭进程而让其重读配置文件
        2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
        9) SIGKILL: 杀死正在运行的进程
        15) SIGTERM:终止正在运行的进程
        18) SIGCONT:继续运行
        19) SIGSTOP:后台休眠
        指定信号的方法:
        (1) 信号的数字标识;1, 2, 9
        (2) 信号完整名称;SIGHUP
        (3) 信号的简写名称;HUP

按PID:kill [-SIGNAL] pid…
按名称:killall [-SIGNAL] comm…
按模式:pkill [options] pattern
    -SIGNAL
    -u uid: effective user,生效者
    -U uid: real user,真正发起运行命令者
    -t terminal: 与指定终端相关的进程
    -l: 显示进程名
    -a: 显示完整格式的进程名
    -P pid: 显示父进程为此处指定的进程的进程列表

作业管理
Linux的作业控制
        前台作业:通过终端启动,且启动后一直占据终端;
        后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)

如何让作业运行于后台?
    (1) 运行中的作业:Ctrl+z
    (2) 尚未启动的作业:# COMMAND &

后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台后,剥离与终端的关系
    nohup COMMAND &
    screen;COMMAND

查看所有作业:
  jobs
作业控制:
 fg[[%]JOB_NUM]:把指定的后台作业调回前台;
 bg[[%]JOB_NUM]:让送往后台的作业在后台继续运行;
 kill [%JOB_NUM]:终止指定的作业;

并行运行,同时运行多个进程,提高效率
(1)vi all.sh
        f1.sh&
        f2.sh&
        f3.sh&
(2)(f1.sh&);(f2.sh&);(f3.sh&)
(3){ f1.sh& f2.sh& f3.sh& }

进程优先级
进程优先级调整:
静态优先级:100-139
进程默认启动时的nice值为0,优先级为120
只有根用户才能降低nice值(提高优先性)
nice命令:
nice [OPTION] [COMMAND [ARG]…]
renice命令:
renice[-n] priority pid…
查看:
psaxopid,comm,ni

作业1:路由器配置

    host1
        IP:192.168.100.10/24
        GW:192.168.0.1

    route1
        IP1:192.168.100.1
        IP2:192.168.0.1
        GW:192.168.0.2

        echo 1 > /proc/sys/net/ipv4/ip_forward

        iptables -F

    route2
        IP1:192.168.0.2
        IP2:192.168.200.1

        GW:192.168.0.1

        echo 1 > /proc/sys/net/ipv4/ip_forward

        iptables -F

    host2
        IP:192.168.200.10
        GW:192.168.0.2

作业2:网络组配置

nmcli con add con-name team0 type team ifname team0 config "{"runner": {"name": "loadbalance"}}"
nmcli con mod team0 ipv4.addresses 192.168.0.100/24
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0

    /etc/sysconfig/network-scripts/ifcfg-team0
        DEVICE=team0
        TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
        DEVICETYPE=Team
        BOOTPROTO=none
        NAME=team0
        ONBOOT=yes
        IPADDR=192.168.0.100
        PREFIX=24

    /etc/sysconfig/network-scripts/ifcfg-team0-port1
        NAME=team-prot1
        DEVICE=eth1
        ONBOOT=yes
        TEAM_MASTER=team0
        DEVICETYPE=TeamPort

    /etc/sysconfig/network-scripts/ifcfg-team0-port2
        NAME=team-prot2
        DEVICE=eth2
        ONBOOT=yes
        TEAM_MASTER=team0
        DEVICETYPE=TeamPort

    nmcli connection up team0
    nmcli connection up team-port1
    nmcli connection up team-port2

    nmcli connection show

    teamdctl team0 state

    nmcli dev disconnect eth1

    nmcli dev disconnect eth2

原创文章,作者:anonymous,如若转载,请注明出处:http://www.178linux.com/44584

(0)
anonymousanonymous
上一篇 2016-09-07
下一篇 2016-09-08

相关推荐

  • 一个不想被打断腿的人的学习宣言

    听说不晒学习宣言的会被某人打断腿,忍了好几天,思考了好几天,想了想,还是腿比较重要。废话就不多说了。上图~~!  生命中总要去经历一些,好让自己在老的时候回忆起来,不至于说:“哎,怎么就没有去拼一下呢!”

    Linux干货 2016-10-27
  • nginx+tomcat+memcached构建session共享集群

    一、安装配置tomcat 配置前说明: 系统为centos7 m1.xsllqs.com地址为192.168.1.107 c1.xsllqs.com地址为192.168.1.114 c2.xsllqs.com地址为192.168.1.113 安装tomcat需要配合JDK使用,JDK有oracle JDK和open JDK两种 oracle JDK8的下载地…

    Linux干货 2016-06-26
  • linux命令 kill命令详则

    kill命令 kill用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息(默认)为SIGTERM(15),可经指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。 语法 kill(选项)(参数) 选项 -a:当处理当前进程时,不限制命令名和进程号的对应关系; &…

    2017-08-21
  • SHELL脚本编程之变量的种类

    变量 在进行脚本编程的时候,经常会使用到不同类型的变量,根据变量的生效范围,可大致分为以下的几类: 本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程,包括当前shell进程的子shell进程都是无效的,它的作用域就是当前shell进程 环境变量:生效范围是当前shell进程及其子进程 局部变量:生效范围是当前shell进程中某…

    Linux干货 2016-08-12
  • Linux基础学习总结(一)

    Linux 安装运行步骤: 进入\\172.16.0.1\python10          用户名:python10          密码:python10magedu 进入目录   ftp://172.16.0.1/pub/ISOs/ 下载linux系统镜像文件           CentOS-6.9-x86_64-bin-DVD1.iso     …

    Linux干货 2018-03-16
  • Linux文件权限管理及目录文件的深入理解。

    文件权限及目录 初学Linux,感觉这个东西该复杂,而且逻辑非常的强。难~! 自己根据学习到的理论和实践,得出的对文件权限,进程,以及特殊权限的深入理解。希望能解决初学者对于权限的困惑。如有错误请指正。 文件的权限,指定的是什么? 是文件的权限位上的权限,针对三类用户,任何用户都必须是三类用户中的一种,属主属组和其他人的权限rwx   &…

    Linux干货 2016-08-10

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 08:27

    对网络管理类命令总结的很详细,如果能有一些效果展示会更直观了,文章内容也会更加饱满。