Linux进程和计划任务

                                                      Linux进程和计划任务

本章内容:

进程相关概念

进程及系统相关工具

计划任务

 

进程概念:

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

process:在内存中运行的程序被称为进程。

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

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

进程的创建:

      centos56中的第一个进程为:init

       进程:都有其父进程创建,COW(写时复制)

 

进程优先级:

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

     0–139:(centos4,5

     0–99 :(centos6

实时优先级:99–0:数值越大优先级越高

nice值:-20–19:对应的系统优先级100-13999

 

进程内存:

     page frame:页框,用存储页面数据,存储page 4k

     LRU:近期最少使用算法,释放内存

     MMU:内存管理单元,负责转换线性和物理地址

 

Linux内核:抢占式多任务

进程类型:

     守护进程:daemon,在系统引导过程中启动的进程,和终端无关的进程。

     前台进程:跟终端相关,通过终端启动的进程。

     注意:两者可以相互转化。

 

进程状态:

运行态:running

就绪态:ready

睡眠态:

     可中断:interruptable

     不可中断:uninterruptable

停止态:stopped,暂停于内存中,但不会被调度,除非手动启动。

僵死态:zombie,结束进程,父进程结束前,子进程不关闭。

 

系统管理工具:

进程的分类:

  CPU-boundCPU密集型,非交互。

  IO-BoundIO密集型,交互。

 

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

     pstreepspidofpgreptophtopglancepmapvmstatdstatkillpkilljobbgfgnohup

 

pstree命令:查看进程树

      pstree  [options]

               -p:可以列出对应进程的PID号;

               -u:列出进程对应的用户名;

               -a:列出完整的命令信息;

 

ps命令:查看静态的进程统计信息

     ps [options]

         a:显示当前终端下的所有进程信息;

         u:使用以用户为主的格式输出进程信息;

         x:显示当前用户在所有终端下的进程信息;

        -e:显示系统内的所有进程信息;

        -l:使用长格式显示进程信息;

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

   执行ps aux”命令后,将以列表的形式输出所有进程信息,其中各字段的含义如下

        USER:启动该进程的用户账号的名称。

        PID:该进程在系统中的PID号,在当前系统时唯一的。

        TTY:表明该进程在哪个终端上运行,“?”表示未知或不需要的终端。

        STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程)l(多线程进程)T(停止状态)D(不可中断休眠)对于僵死状态的进程应该手动终止掉。

        START:启动该进程的时间。

        TIME:该进程占用CPU的时间。

        COMMAND:启动该进程的命令的名称。

        %CPUCPU占用百分比。

        %MEM:内存占用百分比。

        VSZ:占用虚拟内存(swap空间)的大小。

        RSS:占用常驻内存(物理内存)的大小。

 

搜索进程:

      pgrep命令:查询特定进程信息的专用工具。

         pgrep   [options]  patter

                   -u:真正运行命令生效的用户

                   -U:真正发起运行命令的用户

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

                   -l:显示进程名

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

                   -p:显示父进程为此指定的进程的进程列表

        示例:

         [root@centos6 proc]# pgrep -l  bash

         4128 bash

         6761 bash

         6780 bash

         [root@centos6 proc]#

 

pidof命令:查询指定进程的pid号。

示例:

  [root@centos6 proc]# pidof bash

  6780 6761 4128

  [root@centos6 proc]#

 

uptime命令:查看系统的平均负载

      显示当前系统时间,系统已经启动多久,当前登录系统的人数,系统的平均负载(1210分钟的平均负载,一般不会超过1

  系统平均负载:

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

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

      如果Linux主机是1个双内核CPU的话,当load average6的时候说明机器已经被充分使用了。  

      示例:

        [root@centos6 Desktop]# uptime

        10:49:46 up 25 min,  2 users,  load average: 0.14, 0.10, 0.18

        [root@centos6 Desktop]#      (平均负载)

 

top命令:进程管理工具,有许多内置的命令

      选项:

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

          -b:以批次方式显示

          -n#:显示多少批次

 

      排序:

        P:以占据的cpu百分比,%CPU进行排序;

        M:占据内存百分比,%MEM进行排序;

        T:累计占据CPU的时长进行排序;

       

       首部信息显示:

        uptime信息 :按l 键可以“屏蔽/显示” uptime平均负载

        tasksCPU信息:按 t 键可以“屏蔽/显示”tasksCPU信息

        CPU分别显示:按 1(数字)可以把所有CPU单个显示

        memory信息:按 m 键可以“屏蔽/显示”内存和swap的信息

退出top命令:q

修改刷新时间间隔: s键 后跟上要间隔的刷新时间(以秒为单位)

终止指定的进程:k

保存文件:W

 

栏位信息简介:

    us:用户空间

    sy:内核空间

    ni:调整nice时间

    id:空闲

    wa:等待IO时间

    hi:硬中断

    si:软中断

    st:被虚拟机偷走的时间

 

htop命令:进程管理工具,需从Fedora-EPEL源安装

     选项:

        -d#:指定延迟时间

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

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

 

vmstat命令:显示虚拟内存信息

     vmstat  [options]  [delay[count]]

              -s:显示内存的统计数据

示例: 每秒刷新一次,显示5

 [root@centos6 Desktop]# vmstat 1 5

procs ———–memory———- —swap– —–io—- –system– —–cpu—–

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 1  0     0 270616  70172 278980    0    0    12     1   47   66  0  0 99  1  

 0  0     0 270536  70172 279012    0    0     0     0  109  131  1  0 100  0  0

 0  0     0 270536  70172 279012    0    0     0     0  110  148  1  1 99  0  0

 0  0     0 270536  70172 279012    0    0     0     0   93  118  1  0 100  0  0

 0  0     0 270536  70172 279012    0    0     0     0   96  133  0  0 100  0

[root@centos6 Desktop]#

 

pmap命令:查看进程的内存映射

pmap  [options] pid

         -x:显示详细格式的信息

另一种查看方式是:

 #cat  /proc/PID/maps

示例:

[root@centos6 Desktop]# pgrep bash

3290

[root@centos6 Desktop]# pmap -x 3290

3290:   /bin/bash

Address           Kbytes     RSS   Dirty Mode   Mapping

0000000000400000     852     536       0 r-x–  bash

00000000006d4000      36      36      36 rw—  bash

00000000006dd000      24      24      24 rw—    [ anon ]

00000000008dc000      36       8       0 rw—  bash

0000000001f5a000     264     248     248 rw—    [ anon ]

0000003f24400000     128     112       0 r-x–  ld-2.12.so

…………………………………………………………………………….

[root@centos6 Desktop]#

 

glances命令:系统监控工具 (需要从EPEL源安装)

     示例:

     [root@centos6 Desktop]# glances

     C/S模式下运行glances 可以实现远程监控其他主机,适用于局域网内;

     服务器端设置:

        glances  -s  -B IPADDR

                -s:指明是服务器端

                -B:绑定要监控的服务器的IP地址

     客户端模式:

        glances  -c  IPADDR

                -c:指明是客户端

           IPADDR:指明要监控的服务端地址

 

     示例:

      测试环境说明:

       centos 7 为服务器端,IP地址为:192.168.3.10

       centos 6 为客户机端,IP地址为:192.168.3.2

 

      服务器模式配置:

        [root@centos7 Desktop]# glances  -s  -B 192.168.3.10

     

      客户机端模式端,监控centos7

        [root@centos7 Desktop]# glances  -c   192.168.3.10

 

dstat命令:系统资源统计

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

                 -c:显示CPU相关的信息

                 -d:显示disk相关的信息

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

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

                 -n:显示network相关的统计信息

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

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

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

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

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

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

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

 

     示例:每隔1秒统计一次,一共统计5

     [root@centos6 Desktop]# dstat 1 5

     —-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–

     usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw

     0   0  99   1   0   0|  25k 1837B|   0     0 |   0     0 |  93   132

     0   0 100   0   0   0|   0     0 |   0     0 |   0     0 |  87   123

     1   1  99   0   0   0|   0     0 |   0     0 |   0     0 | 127   143

     2   1  97   0   0   0|   0     0 |   0     0 |   0     0 | 179   183

     1   2  97   0   0   0|   0     0 |   0     0 |   0     0 | 149   148

     1   1  98   0   0   0|   0     0 |   0     0 |   0     0 | 112   124

[root@centos6 Desktop]#

 

killkillallpkill命令:终止进程

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

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

       常用信号:

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

        2SIGINT:终止正在运行的进程,相当于ctrl+c

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

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

       18SIGCONT:继续运行

       19SIGSTOP:后台休眠

      指定信号的方法:

         1)信号数字识别:1,2,3….

         2)信号的完整名称:SIGHUP

         3)信号的简写名称:HUP

 

 kill命令:

     使用kill命令终止进程时,需要使用进程的PID号作为参数;无特定选项信号时,kill命令将给该进程发送终止信号并正常退出,若该进程已经无法响应终止信号,则可以结合“-9”选项强行杀死进程。

       示例:

       [root@centos6 ~]# pgrep  -l  vim

       5031 vim

       [root@centos6 ~]# kill 5031

       [root@centos6 ~]# pgrep  -l  vim

       [root@centos6 ~]#

 

killall命令:

     使用killall命令可以通过进程名来杀死进程,当需要结束系统中多个相同名称的进程时,使用killall命令将更加方便,效率更高。killall命令也同样可以结合“-9”选项以强制结束进程。

     示例:

     [root@centos6 ~]# vim f1

 

     [1]+  Stopped                 vim f1    //crtl+z挂起至后台

     [root@centos6 ~]# pgrep -l vim

     5297 vim

     [root@centos6 ~]# killall -9 vim

     [root@centos6 ~]# pgrep -l vim

     [1]+  Killed                  vim f1    //已杀死vim进程

     [root@centos6 ~]#

 

pkill命令:

使用pkill命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,如“-U”指定用户,“-t”指定终端等。

示例:

 1)终止用户zheng所在的终端:使用选项“-t

    [root@centos6 ~]# who

zheng    tty2         2016-09-17 19:28

root     tty1         2016-09-17 10:25 (:0)

root     pts/1        2016-09-17 17:36 (:0.0)

[root@centos6 ~]# pkill -9 -t tty2

[root@centos6 ~]# who

root     tty1         2016-09-17 10:25 (:0)

root     pts/1        2016-09-17 17:36 (:0.0)

[root@centos6 ~]#

2)终止用户zheng所在的终端:使用选项“-U

   [root@centos6 ~]# who

   zheng    tty2         2016-09-17 19:32

   root     tty1         2016-09-17 10:25 (:0)

   root     pts/1        2016-09-17 17:36 (:0.0)

   [root@centos6 ~]# pkill -9 -U zheng

   [root@centos6 ~]# who

   root     tty1         2016-09-17 10:25 (:0)

   root     pts/1        2016-09-17 17:36 (:0.0)

   [root@centos6 ~]#

 

Linux的作业控制:

     前台作业:通过终端启动,且启动后一直占据终端;

     后台作业:可以通过终端启动,但启动后即转入后台运行

     如何让作业运行与后台?

     1)运行中的作业可以执行:ctrl+z

     2)未启动的作业可以执行:#command &

      以上此类后台作业虽然被送往后台运行,但其依然与终端相关,退出终端,将关闭后台作业,如果希望送往后台后剥离与终端的关系可以执行以下命令:

      #nohup command &     #screen;command

      示例: 使用nohup命令剥离后台命令ping与终端的关系,即使断网也会继续运行。

       [root@centos6 ~]# nohup ping 127.0.0.1 &

       [1] 5886

       [root@centos6 ~]# nohup: ignoring input and appending output to `nohup.out'

 

     jobs命令:查看所有与终端相关的后台运行的作业

         jobs  -l  :查看所有后台运行的作业;

       示例:

         [root@centos6 ~]# vim f1 &

         [1] 5905

         [root@centos6 ~]# jobs -l  //查看所有后台运行的作业;

         [1]+  5905 Stopped (tty output)    vim f1

         [root@centos6 ~]#

 

     fg命令:可以将后台的进程任务重新调入终端前台执行;只需指定后台任务对应的顺序编号,可以通过jobs命令获取。

        示例:将后台的vim f1调到前台工作

         [root@centos6 ~]# jobs -l

         [1]+  5905 Stopped (tty output)    vim f1

         [root@centos6 ~]# fg 1

 

     bg命令:让送往后台的作业在后台继续运行;

         示例:

         [root@centos6 ~]# ping 127.0.0.1

         PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

         64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.046 ms

         64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.041 ms

         64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.054 ms

         ^Z                    //ctrl+z 调到后台

         [2]+  Stopped                 ping 127.0.0.1

         [root@centos6 ~]# bg 2   //把在后台停止的ping在后台运行起来

         [2]+ ping 127.0.0.1 &

         64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.127 ms

         [root@centos6 ~]# 64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.055 ms

 

并行运行:

      让两个或多个脚本同时运行,需写脚本的绝对路径,后必须加&”符。

      示例:

      编写3个循环脚本

        [root@centos6 testdir]# cat f1.sh f2.sh f2.sh

        #!/bin/bash

        while true;do

        echo "f1.sh"

        sleep 1

        done

        #!/bin/bash

        while true;do

        echo "f2.sh"

        sleep 1

        done

        #!/bin/bash

        while true;do

        echo "f2.sh"

        sleep 1

        done

        [root@centos6 testdir]#

   第一种并行运行脚本方法:

        [root@centos6 testdir]# (/testdir/f1.sh&);(/testdir/f2.sh&);(/testdir/f3.sh&)

   

   第二种并行运行脚本方法:

        [root@centos6 testdir]{ /testdir/f1.sh&/testdir/f2.sh&/testdirf3.sh& }

   

   第三种并行运行脚本方法:

        编写一个脚本,把f1f2f3脚本放进去。

        [root@centos6 testdir]# cat all.sh

        #!/bin/bash

        #

        /testdir/f1.sh&

        /testdir/f2.sh&

        /testdir/f3.sh&

        [root@centos6 testdir

      执行all.sh脚本并行处理f1f2f3脚本

        [root@centos6 testdir]# source all.sh

 

nice命令:调整进程优先级

       示例:

        [root@centos6 testdir]# nice -n -10 ping 127.0.0.1

       查看设定的优先级:

        [root@centos6 testdir]# ps axo  pid,comm,ni

 

renice命令:重新设定进程优先级

        renice   [-n]  priority   pid

 

计划任务管理:

     Linux系统中,通过atdcrond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过atcrontab命令进行计划任务的设定。

     使用at命令设置的计划任务只在指定的时间点执行一次,有一个前提是,对应的系统服务at必须运行。

     使用crontab命令设置的计划任务可以按预设的周期重复执行,可以大大减轻重复设置系统管理任务的操作。有一个前提是,对应的系统服务crond必须运行。

 

     at 命令:

      at  [options]  TIME

        常用选项:

            -q:队列

            -l:查看当前系统中设置的at计划任务列表,相当于atq

            -d:删除指定任务编号的作业,相当于atrm

            -c:查看具体的作业任务。

            -f:从指定的脚本文件中读取任务

            -m:强制at发邮件表示执行完毕

        TIME

            HH:MM  [yyyy-mm-dd]

            noon  midnight  teattime

            tomorrow

            now+#{minutes  hours  days weeks}

 

            ctrl+d:提交一次性计划任务

 

at一次性计划任务:

 

          执行方式:

             1)交互式  2)输入重定向  3at  -f  scriptsfile

          依赖atd服务,需要启动才能实现at一次性计划任务

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

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

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

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

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

 

       at命令:执行的一次性计划任务是存放在/var/spool/at目录下的

           示例:

             [root@centos6 at]# at 15:22

             at> wall hello

             at> <EOT>

             job 6 at 2016-09-18 15:22

             [root@centos6 at]# pwd

             /var/spool/at

             [root@centos6 at]# ls

             a000060176e77a  spool

             [root@centos6 at]#

        at命令的“-f”选项:从指定的脚本文件中读取任务。

           示例:

            [root@centos7 testdir]# cat sum100.sh

            #!/bin/bash

            echo "==============================="

            i=1

            sum=0

           while [ $i -le 100  ];do

           let  sum=$sum+$i

           let i++

           done

           echo "1 to 100 sum :$sum"

           echo "=============================="

           unset i

           unset sum

           [root@centos7 testdir]#

           [root@centos7 ~]# at 3:45 -f /testdir/sum100.sh

           job 3 at Sun Sep 18 03:45:00 2016

           [root@centos7 ~]#

        注: at的执行结果需去mail邮件中查看。

 

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

    

       示例:

          [root@centos7 ~]# at 3:05

          at> wall da jia hao

          at> echo at test

          at> <EOT>                   //ctrl+d提交计划任务

          job 2 at Sun Sep 18 03:05:00 2016

          [root@centos7 ~]# at -l

          2 Sun Sep 18 03:05:00 2016 a root

          [root@centos7 ~]#

          Broadcast message from root@centos7 (Sun Sep 18 03:05:01 2016):

 

          da jia hao

 

        You have new mail in /var/mail/root //echo执行的结果是标准输出,所以有邮件通知

        [root@centos7 ~]#

 

crontab周期性计划任务

        使用crontab命令设置的计划任务可以按预设的周期重复执行,可以大大减轻重复设置系统管理任务的操作。有一个前提是,对应的系统服务crond必须运行。

               centos7systemctl   status  crond

               centos6service    crond    status

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

          系统crond任务:系统维护计划任务

                /etc/crontab

          用户crond任务:

                crontab命令

          日志:/var/log/cron

     用户自行定义的cron任务将被保存在目录“/var/spool/cron”中,文件名与对应的用户账号同名。

 

用户crontab周期性计划任务

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

    /var/spool/cron/USERNAME

 

crontab命令语法:

    crontab  [options]

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

             -e:编辑计划任务;

             -r:删除计划任务;

             -l:显示计划任务列表;

             -i:同“-r”一同使用,已交互模式移除指定的计划任务;

 

  crontab计划任务时间表示法:

       1)特定值:给定时间点有效取值范围内的值

       2*:表示“每”

       3)离散值:###  例如:1,3,5,9

       4)连续值:#-#  例如:2-6

       5)在指定的时间范围上,定义步长 /#:#即为步长,例如:*/5

 

  时间格式:

        @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 * * * *

 

sleep命令:

        sleep  NUMBER [SUFFIX]…

             SUFFIX

                s:秒,默认

               m:分

               h:小时

               d:天

        usleep:微秒;

注意:

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

    command  >  /dev/null

    command  &> /dev/null

对于cron任务来说,%有特殊的用途;如果在命令中要使用%,则需要转义,不过,如果把%放置在单引号中,也可以不用转义。

                

系统cron任务:/etc/crontab

   示例:晚上910分以zheng用户执行一个echo hello

      1 SHELL=/bin/bash

      2 PATH=/sbin:/bin:/usr/sbin:/usr/bin

      3 MAILTO=root

      4 HOME=/

      5

      6 # For details see man 4 crontabs

      7

      8 # Example of job definition:

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

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

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

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

     13 # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

     14 # |  |  |  |  |

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

        10  9  *  *  *   zheng   /bin/echo   “hello”

 

用户cron任务:crontab  -e

    [root@centos6 ~]# crontab -e

    22 20  * * *  /bin/echo "hello"

0  0   * * *  /sbin/shutdown  -h now

 

示例:执行用户计划任务,让其到点休眠1分钟,在执行wall

     [root@centos6 ~]# crontab -e

     16  21 * * * /bin/sleep 1m;/usr/bin/wall "hello"

 

 

  

      

 

 

 

 

       

 

    

     

 

     

 

 

 

 

 

 

 

 

 

 

 

 

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

(0)
zhengyibozhengyibo
上一篇 2016-09-21
下一篇 2016-09-21

相关推荐

  • MogileFS基于Nginx反向代理实现分布式存储与访问

    前言 随着信息社会的发展,越来越多的信息被数据化,尤其是伴随着大数据时代的来临,数据呈爆炸式增长。传统存储在面对海量数据存储表现出的力不从心已经是不争的事实,例如:纵向扩展受阵列空间限制,横向扩展受交换设备限制,节点受文件系统限制等。而分布式存储的出现在一定程度上有效的缓解了这一问题,目前比较流行的分布式文件系统有:GFS、HDFS、GlusterFS、Mo…

    Linux干货 2015-07-08
  • 2017全球运维技术大会第二届12大技术专场等你来!

    去年9月,InfoQ在北京主办了第二届CNUTCon全球容器技术大会,大会邀请了来自Netflix、CoreOS、Docker公司、Mesosphere、阿里巴巴、腾讯、百度、京东、携程、搜狗等公司的技术负责人,共同探讨容器相关的应用场景、技术方案以及架构演进,得到了社区的一致好评。 到今年,CNUTCon已经是第三年了,前两年我们的方向是容器,随着技术的发…

    2017-06-20
  • 大数据计算:如何仅用1.5KB内存为十亿对象计数

    Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K This is a guest post by Matt Abrams (@abramsm), from Clearspring, discussing how they are able to accurat…

    Linux干货 2015-04-08
  • 精解局域网访问及共享(三)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/155109    上一节中的2种情况都是默认的简单共享,下面我们着重分析一下高级共享方式下的各种访问情况。毕竟这种方式用的很普遍,而且在权限…

    Linux干货 2015-03-25
  • ansible学习笔记

    简介:  在日常服务器维护中,从系统安装到程序部署再到发布应用,在大规模的生产环境中,如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作。这就促使了在每个运维层次中出现了不同的自动化运维工具。 常见的自动化运维工具分类有以下几类:  系统安装运维工具(OS Provisioning):    …

    Linux干货 2015-08-17
  • 记事本操作的小小小技巧

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140063       大家在查看文本文件的时候,如果内容很多,想快速到达某一位置可能比较麻烦,这时如果按住shift,再点击右侧…

    Linux干货 2015-03-26