进程和计划任务

进程概念

内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能等

Process:运行中的程序的一个副本,是被载入内存的一个指令集和

    进程ID(Process ID,PID)号码被用来标记各个进程

    UID,GID和SELinux语境决定对文件系统的存取和访问权限

    通常从执行进程的用户来继承

    存在生命周期

task struct:linux内核存储进程信息的数据结构格式

task list:多个任务的task struct组成的链表

进程创建:

    init:第一个进程

        父子关系(之后的都是其子进程)

    进程:都由其父进程创建,CoW(写时复制)

进程优先级

    系统优先级:数字越小,优先级越高

        0-139(CentOS4,5)

            各有140个运行队列和过期队列

        0-98,99(CentOS)

    实时优先级:99-0:值最大优先级最高

    nice值:-20到19,对应系统优先级100-139或者99(-20最大,19最小)

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密集型,交互式

linux系统状态的查看及管理工具:

    pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill

pkill,job,bg,fg,nohup


pstree命令

pstree:以树状图的方式展示进程之间的派生关系,显示效果比较直观

blob.png

-p:显示当前使用进程的进程号和进程ID

blob.png

-a:显示所有进程的详细信息,遇到相同的进程可以压缩显示

blob.png

ps命令

ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断,删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态,进程是否结束,进程有没有僵死,那些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的

Linux系统各进程的相关信息均保存在/proc/PID目录下的个文件中

支持三种选项:

    UNIX选项 如-A -e

    BSD选项  如 a

    GUN选项 如 –help

默认显示当前终端的进程

    a:包括所有终端中进程

    x:包括不链接终端的进程

    u:显示进程属主的信息

    f:显示进程的父进程

blob.png

    o 属性..:显示定制的信息

        属性:pid,comm,%cpu,%mem,state,tty,euser,ruser

blob.png

VAZ:Virtual memory SiZe,虚拟内存集,线性内存

RSS:ReSident Size,常驻内存集

STAT:进程状态

    R:running运行态

    S:interrupatable sleeping (睡眠态可中断)

    D:uninterrupatable sleeping(睡眠态不可中断)

    T:stopped 停止态

    Z:zombie 僵死态

    +:前台进程

    l:多线程进程

    N:低优先级进程

    <:高优先级进程

    s:session leader,会话(子进程)发起者


常用组合:-ef

    -e:显示所有进程

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

blob.png

常规格式:-eFH

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

    -H:以进程层级格式显示进程相关信息

blob.png

常用格式:自定义

ni:nice值

pri:priority 优先级

psr:procrssor CPU编号

rtprio:实时优先级

      -eo pid,tid,clss,rtprio,ni,pri,psr,pcpu,stat,comm

blob.png

    axo atat,euid,ruid,tty,tpfid,sess,pgrp,ppid,pid,pcpu,comm

blob.png

pgrep命令

pgrep命令以名称为依据从运行进程中队列中查找进程,并显示查找到的进程ID,每一个进程ID以一个十进制数表示,通过一个分隔符

和下一个ID分开,默认分隔符为一个新行。对于每一个属性选项,用户可以在命令上指定一个以逗号分隔的可能值的集合

选项:

    -u uid :effective user,进程生效者

    -U uid:real user,真正发起运行命令者

    -t terminal:与指明终端相关的进程

    -l:显示进程名

     -a:显示完整格式的进程名

    -p pid:显示指定进程的子进程

按确切的程序名称:/sbin/pidof

blob.png

blob.png

uptime

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

blob.png

系统平均负载:

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

如果 每个CPU 内核的当前活动进程数不大于3 的话,那么系统的 性能良好。 如果每个CPU 内核的任务数大于5 ,那

么这台机器的性能有严重问题。

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

top

实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,通过top命令所提供的互动式界面,

可以用热键进行管理。

blob.png

top有许多内置命令

排序:

    P:以占据的CPU百分比,%CPU

    M:占据内存百分比。%MEM

    T:累积占据CPU时长,TIME+

首部信息显示:

    uptime信息:l命令

    task及cou信息:t命令

    cpu分别显示:1(数字)

    memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

保存文件:W

栏位信息简介

us:用户空间

sy:内核空间

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

blob.png

栏位信息间接

PID (Process Id): 任务的进程ID

PPID (Parent Process Pid): 父任务的进程ID

RUSER (Real User Name): 任务的所有者真实名称

UID (User Id): 任务所有者ID

USER (User Name): 任务所有者名称

GROUP (Group Name): 任务所有者群组名

TTY (Controlling Tty): 终端

PR (Priority): 优先级

%CPU (CPU usage):CPU 使用率

%MEM (Memory usage (RES)): 内存使用率

S (Process Status): 进程状态

TIME+ (CPU Time, hundredths):CPU

blob.png

选项:

    -d #:指定刷新时间间隔,默认为3秒

    -b:以批次方式

    -n #:显示多少批次

blob.png

htop命令(需Fedora-EPEL安装)

blob.png

选项:

    -d #:指定延迟时间

    -u UserName:仅显示指定用户的进程

    -s COLUME:以指定字段进行排序

交互式子命令:

各种使用命令在交互式界面都有显示,就不介绍了,一目了然!

    s:跟踪选定进程的系统调用;

blob.png

    l:显示选定进程打开的文件列表

blob.png

    a:将选定的进程绑定之某指定CPU核心

    t:显示进程树

blob.png

内存工具

vmstat命令:虚拟内存信息,可以报告关于进程,内存,I/O等系统整体运行状态

vmstat 2 5 (没2秒显示一次,共显示五次)

blob.png    

字段说明:

procs(进程)

    r:运行队列中进程数量,这个值也可以判断是否需要增加CPU(如长期大于1)

    b:等待IO的进程数量

memory(内存)

    swpd:使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能

    free:空闲物理内存大小

    buff:用作缓冲的内存大小

    cache:用作缓存的内存大小,如果cache的值大的时候,说明cache出的文件多,如果频繁访问到的文件

        都能被cache处,那么磁盘读IO bi会非常小

swap

    si:每秒从交换区写到内存的大小,由磁盘调入内存

    so:每秒写入交换区的内存大小,由内存调入磁盘

IO(现在的Linux版本块大小为1kb)

    bi:每秒读取的块数

    bo:每秒写入的块数

system(系统)

    in:每秒中断数,包括时钟中断

    cs:每秒上下文切换数(进程切换频率)

注意:此二选值越大,会看到内核消耗的CPU时间会越大

CPU(以百分比表示)

    us:用户进程执行时间按百分比(user time)

us的值比较高时,说明用户进程消耗CPU时间多,但是如果长期超过50%的使用,那么或许就该考虑优化程序算法

或者进行加速了

    sy:内核系统进程执行时间百分比(system time)

sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,应该检查下原因

    wa:IO等待时间的百分比

wa的值高时,说明IO等待比较严重,这可能由于磁盘大量随机访问造成,也有可能磁盘出现瓶颈(块操作)

    id:空闲时间百分比

    st:Time stolen from a virtual machine. 2.6.11 前, unknown.

选项

    -a:显示活动内页

    -f:显示启动后创建的进程总数

    -m:显示slab信息

    -n:头信息仅显示一次

    -s:以表格方式显示时间计数器和内存状态

    -d:报告磁盘状态

    -p:显示指定的磁盘分区状态

    -S:输出信息的单位(k,K,m,M)

pmap命令

    用于报告进程的内存映射关系,是Linux调试及运维的一个很好的工具

选项

    -x:显示扩展格式

    -d:显示设备格式

    -q:不显示头尾行

    -v:显示指定版本

blob.png


系统监控工具

glances命令(EPEL安装)

blob.png

 glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-t refresh] [-f file] [-o output]

命令选项:

    -b:显示网络连接速度Byte/秒

    -B @IP|HOST:绑定服务器端IP地址或者主机名称

    -c @IP|HOEST:连接glances服务器端

    -C file:配置文件路径默认位置为/etc/glances/glances.conf 

    -d:关闭磁盘I/O模块

    -e:显示传感器温度

    -f file:设置输出文件(格式为HTML或者CSV)

    -m:关闭挂载的磁盘模块

    -n:关闭网络模块

    -p PORT:设置客户端/服务器运行端口(默认为61209)

    -P PASSWORD:设置客户端/服务器密码

    -s:设置glances运行模式为服务器

    -t SECONDS :设置屏幕刷新的时间间隔,单位为秒(默认为3秒),范围为1-32767

    -h:显示帮助信息

    -v:显示版本信息

    -1:每个CPU的相关数据单独显示

glances命令的交互式界面和top命令的相似,操作方法也是类似的,显示字段意义如下:

    CTRT:虚拟内存大小

    RES:进程占用的物理内存值

    %CPU:该进程占用的CPU使用率

    %MEM:该进程占用的物理内存和总内存的百分比

    PID:进程ID号

    USER:进程所有者的用户名

    TIME+:该进程启动后占用的总的CPU时间

    IO_R和IO_W:进程那个的读写I/O速率

    NAME:进程名称

    NI:进程优先级

    S:进程状态,其中S表示休眠,R表示正在运行,Z表示僵死状态

 blob.png

交互式界面下可以使用的快捷键的功能如下:

    h:显示帮助信息

    q:离开程序退出

    c:按照CPU实时负载对系统进程进行排序  

    m:按照内存使用状况对系统进程排序

    i:按照I/O使用状况对系统进程排序

    p:按照进程名称排序

    d:显示磁盘读写状况

     w:删除日志文件

    l:显示日志

    1:每个CPU的相关数据单独显示

    s:显示传感器信息

    f:显示系统信息

在C/S模式下运行glances命令

服务模式:

    glances -s -B IPADDR 指明监听的本机哪个地址

blob.png

客户端模式

    glances -c IPADDR 指明要连入的服务器端地址 

  

dstat命令:系统资源统计

blob.png

dstat [-afv] [options…] [delay [count]]

    -c:显示cpu相关信息

        -C #,#,…,total

    -d:显示dick相关信息

        -D total,sda,sdb,…

    -g:显示page相关统计数据

    -m:显示memory相关统计数据

    -n:显示network相关统计数据

    -p:显示process相关统计数据

    -r:显示IO请求相关的统计数据

    -s:显示swapped相关的统计数据

blob.png

–tcp

–udp

–unix

–raw

–socket

–ipc

–top-cpu:显示最占用CPU的进程

–top-io:显示最占用io的进程

–top-men:显示最占用内存的进程

–top-latency:显示延迟最大的进程

blob.png

备注:如果要组合使用,后面四项须放在最后

blob.png

kill命令

    向进程发送控制信号,以实现对进程管理

    显示当前系统可用信号:kill -l

blob.png    

1)SIGHUP:无须关闭进程而让其重读配置文件

2)SIGINT:终止正在运行的进程;相当于Ctrl+c

9)SIGKILL:杀死正在运行的进程

15)SIGTERM:终止正在运行的进程

18)SIGCONT:继续运行

19)SIGSTOP:后台休眠

指定信号的方法:

1.信号的数字标识;1,2,9….

2.信号完整名称;SIGHUP

3.信号的简写名称;HUP

blob.png

按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 &

后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台

后,剥离与终端的关系

此处的ping随便有显示输出,但是已经是后台进程了 ,所以使用Ctrl+c无法终止的,正常执行ping命令是可以

使用Ctrl+c终止的

blob.png   

查看所有作业:

    jobs

作业控制:

    fg [[%]JOB_NUM] :把指定的后台作业调回前台;

   bg [[%]JOB_NUM] :让送往后台的作业在后台继续运行;

   kill [%JOB_NUM] :终止指定的作业;

将刚才ping命令调回前台后可以Ctrl+c终止了

blob.png

并行运行

方法一:

vi all.sh

f1.sh&

f2.sh&

f3.sh&

方法二

(f1.sh&);(f2.sh&);(f3.sh&);

方法三

f1.sh& f2.sh& f3.sh& }

blob.png

blob.png

进程优先级

    静态优先级:100-139

    进程默认启动时的nice值为0,优先级为120

    只有根用户才能降低nice值(提高优先级)


nice命令:用于以指定的进程调度优先级启动其他的程序

    nice [OPTION] [COMMAND [ARG]…]

renice 命令:

    renice [-n] priority pid..

查看:

    ps axo pid,comm,ni

blob.png


任务计划

Linux任务计划,周期性任务执行

未来的某时间点执行一次任务

at

at命令用于在指定时间执行命令。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。

假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)

等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 

也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。

指定的日期必须跟在指定时间的后面。

也可使用相对计时发,这对于安排不久就要执行的命令是有很好用处的。指定格式为now + count time,now是指当前时间,time是时间单位,

这里可以是mintues(分钟),hours(小时),days(天),weeks(星期)。count是时间的数量。还可以直接使用today,tomorrow来指定

完成命令的时间。

at [option] TIME

常用选项:

    -V:显示版本信息

    -l:列出指定队列中等待运行的作业;相当于atq

blob.png

    -d:删除指定的作业;相当于atrm

    -c:查看具体作业任务

    -f /path/from/somefile:从指定的文件中读取任务

    -m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

blob.png

blob.png

执行结果:

blob.png

TIME:定义出什么时候进行at这选任务的时间

    HH:MM[yyyy-mm-dd]

    noon,midnight,teatime(4pm)tomorrow

    now +#{minutes,hours,days,OR weeks}

at时间格式  

HH:MM 02:00

在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务

HH:MM YYYY-MM-DD 04:00 2016-09-20

规定在某年某月的某一天的特殊时刻进行该项任务

HH:MM[am|pm] [Month] [Date]

    04pm March 17

    17:20 tomorrow

HH:MM[am|pm] + number [minutes|hours|days|weeks]

在某个时间点再加几个时间后才进行该项任务

    now + 5 minutes

    04pm + 3 days

执行方式:

    1)交互式 2向 )输入重定向 3 )at –f  文件

依赖与atd 服务, 需要启动才能实现at 任务

at 队列存放在/var/spool/at 目录中

/etc/at.{allow,deny} 控制用户是否能执行at 任务

    白名单:/etc/at.allow  默认不存在,只有该文件中的用户才能执行at 命令

     黑名单:/etc/at.deny 行 拒绝该文件中用户执行 at 命令, 而没有在 在at.deny

文件中的使用 者则可执行

    如果两个文件都不存在有 ,只有root行可以执行at 

注意事项:

    以下不包含root用户

    白名单优先级高于黑名单

    当白名单文件生成后,不在白名单的用户都没权限使用at了

    没有白名单文件时,在黑名单的用户都没权限使用at

    如果白名单和黑名单文件都不存在,则是任何人都没权限使用at 

batch:系统自行选择空闲时间去执行此处指定的任务


周期性运行某任务cron

    相关的程序包:

    cronie:主程序包,提供crond守护进程及相关辅助工具

    cronie-anacron:cronie的补充程序;用于监控cronise任务执行状况;

如cronie中的任务在过去该运行的实际带你未能正常运行,则anacron会随后启动一次此任务

    crontabs:包含CentOS提供系统维护任务


计划任务

确保crond守护处于运行状态:

    CentOS 7 :

        systemctl status crond

blob.png

    CentOS 6 :

        service crond status

blob.png

计划周期性执行的任务提交给crond,到指定时间会自动运行

    系统cron任务:系统维护作业

        /etc/crontab

    用户cron任务:

        crontab

日志:/etc/log/cron

系统cron 任务:/etc/crontab

注释行以 # 开头

详情参见 man 5 crontab

# Example of job definition:

# .—————- minute (0 – 59)

# | .————- hour (0 – 23)

# | | .———- day of month (1 – 31)

# | | | .——- month (1 – 12) OR jan,feb,mar,apr …

# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR

sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

blob.png

时间表示法:

1.特定值:

    给定时间有效取值范围内的值

2.*

    给定时间点上有效取值范围内的所有值

    表示 “每…..”

3.离散取值:

    #,#,#

4.连续取值:-

    #-#

5.在指定时间范围内,定义步长:

    /#:#即步长(表示每…)

例如:每3小时执行一次echo命令

    0 */3 * * * centos /bin/echo “howdy”

时间格式

@reboot Run once after reboot.(每次重启执行)

@yearly 0 0 1 1 (每年执行一次)

@annually 0 0 1 1 *()

@monthly 0 0 1 * *(每月执行一次)

@weekly 0 0 * * 0(每周执行一次)

@daily 0 0 * * *(每天执行一次 )

@hourly 0 * * * *(每小时执行一次)

系统的计划任务:

/etc/crontab

/etc/cron.d/  配置文件

/etc/cron.horuly/  脚本

/etc/cron.daily/   脚本

/etc/cron.weedly/ 脚本

/etc/cron.monthly/  脚本


anacron系统

运行计算机关机时cron 不运行的任务, ,CentOS6 以后 版本取消

    anacron 服务,由crond 服务管理。

假设计算机没有一直开机

对笔记本电脑、台式机、工作站及其它不一直开机的系统很重要

对偶尔要关机的服务器很有用

配置文件:/etc/anacrontab ,负责执行/etc/ cron.daily

    /etc/cron.weekly /etc/cron.monthly 中系统任务。

    /etc/cron.hourly/ 由/cron.d/0hourly 执行

       字段1 :如果在这些日子里没有运行这些任务……

       字段2 :在重新引导后等待这么多分钟后运行它

      字段3 :任务识别器,在日志文件中标识

       字段4 :要执行的任务

当执行任务时,更新/var/spool/anacron/ 中文件的时间戳

管理临时文件

CentOS6使用/etc/cron.daily/tmpwatch定时清除临时文件

CentOS7使用systemd-tmpfiles-setup服务实现

配置文件:

/etc/tmpfiles.d/*.conf

/run/tmpfiles.d/*.conf

/usr/lib/tmpfiles/*.conf

/usr/lib/tmpfiles.d/tmp.conf

    d /tmp 1777 root root 10d

    d /var/tmp 1777 root root 30d

命令:

    systemd-tmpfiles –clean|remove|create configfile


计划任务

用户cron: :

crontab 命令定义,每个用户都有专用的cron 任务文件:

    /var/spool/cron/USERNAME

crontab 命令:

    crontab [-u user] [-l | -r | -e] [-i]

        -l:  列出所有任务;

blob.png

        -e:  编辑任务;

blob.png

        -r:  移除所有任务;

        -i :同-r 一同使用,以交互式模式移除指定任务

        -u user:  仅root 可运行,指定用户管理cron 任务

控制用户执行计划任务 :

    /etc/cron.{allow,deny}

allow是白名单,dengy是黑名单

    以下不包含root用户

    白名单优先级高于黑名单

    当白名单文件生成后,不在白名单的用户都没权限使用了

    没有白名单文件时,在黑名单的用户都没权限使用

    如果白名单和黑名单文件都不存在,则是任何人都没权限使用 

at和crontab比较

一次性作业使用at

重复性作业使用crontab

blob.png

备注:没有被重定向的输出或被mail给用户

    root用户能够修改其他用户的作业

    运行结果的标准输出和错误会以邮件的通知给相关用户

        1.command > /dev/null

        2.command &> /dev/null

   对于cron任务来讲,%有特殊用途;如果在命令中要使用%,需要转义;但是如果把%放置在单引号中,

可以不用转义。

练习

1 、每天的2 点和12 点整,将/etc 备份至/testdir/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz”

    使用crontab -e命令 编辑,输入命令

0 2,12 * * *  /usr/bin/tar -Jcf  /testdir/backup/etcbak-`date +\%F-%\d`.tar.xz  /etc/

2 、每周2, 4, 7 备份/var/log/messages 文件至/logs 目录中,文件名形如“messages-yyyymmdd”

    使用crontab -e命令 编辑,输入命令

0 23 * * 2,4,7 /usr/bin/cp -a /var/log/messages  /logs/messages-`date +\%Y\%m\%d`

3 、每两小时取出当前系统/proc/meminfo 文件中以S 或M开头的信息追加至/tmp/meminfo.txt 文件中

     使用crontab -e命令 编辑,输入命令

0 */2 * * *  /usr/bin/grep "^[SM].*" /proc/meminfo  >>/tmp/memuinfo.txt

4 、工作日时间,每10 分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80% ,就执行wall

    使用crontab -e命令 编辑,输入命令

*/10 * * * *  /root/bin/test.sh

test.sh脚本如下

  1 #!/bin/bash
  2 
  3 disk=`df |grep "sd"|egrep -o "[[:digit:]]*%"|cut -d "%" -f1|sort -n|tail -n1`
  4 
  5 [[ $dick -gt 80 ]]&&wall "dick will be full"

blob.png

blob.png




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

(0)
上一篇 2016-09-13 15:19
下一篇 2016-09-13 15:32

相关推荐

  • nmcli及网络配置

    2017-09-10
  • 数组

    一.数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 索引:编号从0 开始,属于数值索引  注:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0 版本之后开始支持,bash 的数组支持稀疏格式(索引不连续) 二.数组的声明 declare -a ARRAY_NAME decla…

    Linux干货 2016-11-23
  • 正则表达式简述

    bashshell中的正则表达式         俗话说,工欲善其事,必先利其器。由于很多Linux的文本处理工具普遍使用到了正则表达式,因此,不理解正则表达式就无法愉快的从事Linux日常系统管理。那什么是正则表达式呢?         正则表达式(Regu…

    Linux干货 2015-05-23
  • Linux基础知识点(一)

    此篇博客只是记录第一周未掌握或不熟悉的知识点,用来加深印象。

    2018-03-13
  • 利用keepalived实现nginx七层负载均衡器双主模型高可用集群

    nginx通过ngx_http_upstream_module可以实现七层http服务的负载均衡,同时还自带RS的健康监测功能,但是也有弊端,nginx负载均衡器如果发生故障则整个集群失效,此文通过keepalived构建nginx负载均衡器的高可用集群。 一、实验环境: 实验需要4台服务器: nginx负载均衡器1:192.168.11.100 nginx…

    2017-07-03
  • MHA

    1.关于MHA MHA是一款开源的mysql的高可用程序,它为mysql主从复制架构提供了automating master failover功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其他从节点获取额外的信息来避免不一致性的问题。MHA还提供了master节点的在线切换…

    2016-11-26