进程和计划任务

进程概念

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

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

相关推荐

  • 浅谈netbios及其相关内容

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/141086        Netbios想必大家都有接触。对于netbios的理解,我以前…

    Linux干货 2015-03-26
  • N25_第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell [root@EASTED ~]# grep -E "(root|fedora|user1)" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:o…

    Linux干货 2017-01-10
  • LAMP

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (…

    Linux干货 2016-12-14
  • HAProxy初探及简单案例_Net21_第二周

    前言 随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性的要求越来越高,高可用集群、负载均衡集群成为一种热门的系统架构解决方案。在众多的负载均衡解决方案中,有基于硬件的负载均衡设备,例如F5、Big-IP等,也有基于软件的负载均衡产品,如LVS、Nginx以及本文介绍的HAProxy等。在软件的负载均衡产品中,又分为两种实现方式,分别是基…

    Linux干货 2016-07-22
  • 系统启动这块的一些实验及基本内容–下

    下面我来讲下grub,grub在编辑的时候可以进入一种模式就是单用户模式,就是当grub.conf文件未写入密码时,普通用户将直接忽略系统密码进入系统,所以这可以称为一个捷径,也可以成为一个漏洞,当然linux的前辈们不可能连这个都想不到,他们也有自己的办法,这就是我们grub的两层加密机制,在选定登陆界面之前可以设置一次,启动内核时也可以设置一次,密码也可…

    Linux干货 2016-09-13
  • shell脚本之测试命令(test、[])

    话不多说,直接开车 在编写shell脚本中,我们经常需要判断命令执行的正确与否,从而进行不同的操作。首先我们来介绍下条件性的执行操作符:根据退出状态而定,命令可以有条件地运行。其中,利用echo的话方便我们对测试结果的查看。 (1)&& 代表条件性的AND THEN 可以理解为短路与:当&&前面命令为真时,执行&am…

    Linux干货 2017-08-05