第13章,进程和计划任务

时间:2018-05-13 16:54:53   收藏:0   阅读:1394
更多内容请点击:

Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) 

http://blog.51cto.com/13683480/2095439

 

第13章,进程和计划任务

 

本章内容:

               进程相关概念

               进程及系统相关工具

               计划任务

        

进程概念:

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

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

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

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

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

                     存在生命周期

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

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

               进程创建:

                     init/systemd:  第一个进程

                     进程都是由其父进程创建, CoW 写时复制机制

                             fork()生成子进程,clone()生成子进程或者兄弟进程

 

               进程的基本状态:

                     创建状态:

                             进程在创建时需要申请一个空白PCB(process  control block进程控制块)

                             向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法

                             完成,比如资源无法满足,就无法被调度运行、把此时进程所处状态称为

                            创建状态

                     就绪状态:

                             进程已准备好,已分配到所需资源,只要分配到CPU旧能够立即运行

                     执行状态:

                             就绪状态被调度后,进程进入执行状态

                     阻塞状态:

                             正在执行的进程由于某些事件(io请求,申请缓存区失败)而暂时无法运行,

                             进程受到阻塞。在满足请求时进入就绪状态等待系统调用

                     终止状态:

                             进程结束,或出现错误,或被系统终止,进入终止状态,无法再执行

                    

                     ------       许可        ------             时间片完 ------    释放           ----

                  | 创建  |    ————————>> | 就绪  |<<=============>>| 执行 |————————>> |终止|

                     ------                         ------    进程调度           ------                        ----

                     o                                   |                                              |

                     o                                   |    I/O完成   ------    I/O请求|

                     o                                 <<————————| 阻塞 |<<————————

 

                      就绪状态无法直接变成阻塞状态,先执行

                      阻塞状态无法直接变成执行状态,先就绪

 

进程优先级:

               系统优先级:

                     0-139     centos4 5

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

                     0-98,99   centos6

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

               nice值:-20到19,对应系统优先级100-139(centos45) 或99(centos6)

               

               Big O:时间复杂度,用时和规模的关系

                     O(1),O(logn),O(n)线性,O(n^2)抛物线,O(2^n)

                    

               进程优先级调整:

                     静态优先级:100-139

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

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

 

nice:    

               nice [option][cmd [arg]]

                     如:nice -n 10 vim & 将vim的优先级降低10

                            nice -n -15 vim     将vim的优先级提高15并执行

               

renice:

               renice [-n] priority

               如:

                     renice 0|5|-5 -p 93074  将pid为93074的ni 设为0|5|-5

                     renice 10 -u root         将用户root的进程ni设置为10

                    

进程相关概念:

               进程内存:

                            Page  Frame:页框,分页存储,Page 4K

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

                            MMU: Memory  Management Unit 负责转换线性和物理地址

                            TLB:Translation Lookaside Buffer 翻译后备缓冲器,用户保存虚拟地址

                                    和物理地址关系的缓存

                            IPC: Inter Process  Communication     进程间通信

                                    同一主机:

                                                  signal:信号

                                                  shm:shared memory 共享内存

                                                  semaphore:信号量,一种计数器

                                    不同主机:

                                                  socket: IP和端口号

                                                  RPC:     remote procedure call

                                                  MQ:        消息队列,kafka,ActiveMQ

               

               进程类型:

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

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

                             注意:两者可相互转化

               

               进程状态

                            运行态:        running

                            就绪态:        ready

                            睡眠态:      

                                    可中断:    interruptable

                                    不可中断:uninterruptable

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

                            僵死态:       zombie,僵死进程

               

               进程分类:

                             CPU-Bound:       cpu密集型,非交互,如加密解密

                             IO-Bound:   IO密集型,交互

                             

系统管理工具:

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

                     pstree,ps,pidof,top,htop,glance,pmap,vmstat,

                     dstat,kill,pkill,job,bg,fg,nohup

               

pstree:

               pstree -p

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

               

ps:

               ps [option]...           查看进程状态信息

               支持三种风格选项:

                            UNIX选项     -A  -e

                            BSD选项              a u  x

                            GNU选项              --help

               ps:        默认显示当前终端中的进程

                            a                                  所有终端中的进程

                            x|-x                       所有非终端进程

                            u                                  显示进程所有者的信息

                            f|--forest              显示进程树

                             k|--sort  [-]属性      对属性排序,-表示倒序

                                                                       centos6不支持%cpu %mem排序

                            o 属性1,属性2..        指定需要显示的信息

                                    如:pid,cmd,%cpu,%mem

                            L                                  支持的属性列表

                    

                            -C cmd1,cmd2,..            指定命令

                            -L                                显示线程

                            -e|-A                           显示所有进程

                            -f                                 显示完成格式进程信息

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

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

                            -u userlist                    指定有效的用户ID或名称 euid

                            -U userlist                    指定真正的用户ID或名称 ruid

                            -g gid或groupname   指定有效的gid或组     egid

                            -G gid或groupname    ruid

                            -p pid                          显示pid的进程

                            --ppid pid                   显示pid的子进程信息

                            -M|Z                            显示SElinux的信息,相当于Z

                            -C cmd -o pid=           通过cmd查看pid

                            -p pid -o comm=        通过pid查看comm

               

               alias ps1='ps xo user,pid,%cpu,%mem,vsz,rss,tty,stat,start,time,pri,nice,cmd'        

               

               输出属性:

                            VSZ:     Virtual memmory  size,虚拟内存集,线性内存

                            RSS:     Rdsident Size,     常驻内存集,实际占用内存

                            STAT:   进程状态

                                   R:           running

                                    S:          interrupttable sleeping 可中断睡眠

                                    D:         uninterrupttable sleeping     不可中断睡眠

                                    T:          stopped         停止

                                    Z:          zombie

                                   +            前台进程

                                   l             多线程进程

                                   L            内存分页并带锁

                                   N            低优先级进程

                                   <            高优先级进程

                            ni: nice值

                            pri:       priority优先级

                            psr:      processor      CPU编号

                            rtprio:  实时优先级

               

               示例:

                            ps axo pid,cmd,psr,ni,pri,rtprio

                     常用组合:

                            aux  -ef    -eFH

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

                            axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

               

                     显示指定用户名(RUID)或用户ID的进程

                            ps -fU  apache

                            ps -fU 48      

                                    此处貌似用-u 也不错,因为apache是系统用户,结果一样

                     显示指定用户名(EUID)或用户ID的进程

                            ps -fu  wang

                            ps -fu     1000

                                    这里用-U,结果就有可能不一样了

                     查看以root用户权限(实际和有效ID)运行的每个进程:

                            ps -U root -u  root

                     列出某个组拥有的所有进程(实际组ID:RGID  或名称)ps

                            ps -fG  nginx

                       列出有效组名称(或会话)所拥有的所有进程:

                            ps -fg  mysql

                            ps -fg  27

                     通过进程id来显示所属的进程:

                            ps -fp 1234  

                     以父进程ID来显示其下所有的进程,如显示父进程为1154的所有进程:

                            ps  -f/l --ppid  1154

                     显示中PID的多个进程

                            ps -lp 6507 6508  6509...

                     要按tty 显示所属进程

                            ps -lt  pts/4

                     以进程树显示系统中的进程如何相互链接

                            ps -e --forest      ps auxf

                     以进程树显示指定的进程

                            ps f -f -C  sshd

                            ps -ef --forest  |grep -v grep |grep sshd

                      要显示一个进程的所有线程,将显示LWP(轻量级进程)以及NLMP(轻量级进程数)列:

                            ps -fL -C  httpd

                     要列出所有格式说明符:

                            ps  L

                    

                     查看进程的PID ppid 用户名 和命令

                            ps -eo pid,ppid,user,cmd

                     自定义格式显示文件系统组,ni值开始时间和进程的时间

                            ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime

                     使用其PID查找进程名称

                            ps -p 1234 -o  comm=

                      要以其名称选择特定进程,显示其所有子进程

                            ps -C sshd,bash

                     查找指定进程名所有的所属PID,在编写需要从std输出或文件读取PID的脚本

                     时,这个参数很有用

                            ps -C httpd,sshd -o pid=

                    

                     检查一个进程的执行时间

                            ps -eo comm,etime,user|grep nginx

                     查找占用最多内存和cpu的进程

                            ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem  |head

                            ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu  |head

                     显示安全信息:

                            ps  -eM

                            ps  --context

                      使用以下命令以用户定义的格式显示安全信息

                            ps -eo euser,ruser,suser,fuser,f,comm,label

                     使用watch使用程序执行重复的输出以实现对进程进行实时的监视,如

                     下面的命令显示每秒钟的监视:

watch                   watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu f -mem%|head'

                    

                    

搜索进程:----------------------------------------------------------------

               ps 选项 | grep等其他命令

               按预定义的模式:pgrep

pgrep:

               pgrep [options] pattern

                     -u uid            euid,有效用户为uid的所有进程 的pid

                     -U uid           Ruid,真实用户为uid的所有进程 的pid

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

                     -l                  显示进程名

                     -a                 显示完成进程名(centos6 不支持)

                     -P pid            显示指定进程的子进程

               

pidof       按确切的程序名称查找

               piodof /bin/bash

 

系统工具:---------------------------------------------------------

uptime:    

               显示当前时间,系统已启动的时间,当前上线人数,系统平均负载(1/5/10分钟  )

                    

               系统平均负载:

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

                            通常每个cpu内核的当前活动进程数不大于3,那么系统的性能良好。

                            如果每个cpu内核的任务数大于5,那么次主机的性能有严重问题

                            如果linux主机是1个双核cpu,当load Average = 6  ,说明机器已经被充分使用

 

进程管理工具:------------------------------------------------------------------                             

top:

               内键命令:

                     排序:

                            p           以占据的cpu百分比,%cpu

                            M          占据内存百分比

                            T            累计占据cpu时间,TIME+

                     首部信息显示:

                            l                    uptime信息

                            t                    tasks及cpu信息

                            1(数字)     cpu分别显示

                            m                  memory信息

                     退出命令                     q

                     修改刷新时间间隔       s

                     终止指定进程               k

                     保存文件:                   W

                     显示完成cmd                      c

               栏位信息简介

                     cpu:us 用户空间,sy 内核空间,ni  调整nice时间,id 空闲时间

                             wa 等待IO时间,hi 硬中断,si 软中断,st  被虚拟机偷走的时间

                             

               选线:

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

                            -b          全部显示所有进程

                            -n # 刷新多少次后退出

                    

htop:

               选项:

                     -d #              指定延迟时间

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

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

               排序:P M T

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

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

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

                     t     显示进程数

                     k     结束进程

                     q     退出

kill:

               向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称

               以SIG开头(可省略),不区分大小写

               显示当前系统可用信号

                            kill -l  

                            trap -l   

               常用信号:     man 7 signal

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

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

                     3     SIGQUIT         相当于ctrl+\

                     9     SIGKILL          强制杀死正在运行的进程

                     15    SIGTERM        终止正在运行的进程

                     18    SIGCONT              继续运行

                     19    SIGSTOP        后台休眠

               指定信号的方法

                            数字方式,1,2,9,15

                            信号的完成名称     SIGHUP

                            信号的简写名称    HUP

               

               按PID:

                            kill [-signal]  pid

                            kill -n HUP pid      kill -s SIGHUP  pid

               按名称:

                            killall [-signal]  command

               按模式:

                            pkill [options]  pattern

                                    -signal

                                   -u uid                  euser为pid 的进程

                                   -U uid                  ruser为pid 的进程

                                   -t  terminal            指定终端相关的进程

                                   -l  显示进程名

                                   -P pid                  指定进程的子进程

                             

               

内存工具:-----------------------------------------------------------                  

free:

               free [option] 查看内存空间使用状态

                     -b          以字节为单位

                     -m         以MB为单位

                     -g          以GB为单位

                     -h          human 易读格式

                     -o          不显示-/+  buffers/cache 行

                     -t           显示RAM+swap  的总和

                     -s n       刷新时间为n秒

                     -c n       刷新n次后退出

                    

vmstat:

               vmstat [optins] [delay[count]]      虚拟内存以及磁盘io查询

               vmstat 2 5             表示2秒刷新一次,一共刷5次

                     -m         查看内存具体使用情况非常详细

                     -s          内存统计信息

                     --help    使用帮助

        

               信息显示:     

                     procs:    

                                   r      可运行(正在执行或等待运行)进程的个数,和核心数有关

                                   b    处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

                      memory

                            swpd     交换内存使用总量

                            free 空闲物理内存总量

                            buffers cache  用于buffer/cache的内存总量

                     swap

                            si           从磁盘交换进内存的数据速率(kb/s)

                            so          从内存交换至磁盘的数据速率(kb/s)

                     io

                            bi           从块设备读入数据到内存的速率(kb/s)

                            bo          保存数据至块设备的速率

                     system  

                            in: interrupts   中断速率,包括时钟

                            cs   context switch 进程切换速率

                     cpu

                            us 用户空间,sy 内核空间,id 空闲时间,wa  等待时间 st 偷走时间

                    

iostat:

               统计cpu和设备io信息

               iostat 1 5       刷新显示

               

pmap     进程对应的内存映射

                     pmap [options] pid..

                            -x    显示详细格式

                     如  pmap -x 1

               另外一种实现:

                     cat  /proc/pid/maps

               

系统监控工具-----------------------------------------------------------

 

glances:

               glaces [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p  port]

                     [-P password] [--password]  [-t refresh] [-f file] [-o output]

               内键命令:

                     排序:    a     自动排序

                                   c     cpu%排序

                                   m   mem%排序

                                   p    按名称排序

                                   i      按IO排序

                                   u    user排序

                                   t     network I/O

                                    

                     显示/隐藏 左侧窗口显示

                                   d    disk 磁盘io信息

                                   f      file system stats,文件系统信息

                                   n    network stats       网络信息

                                   s      Show/hide sensors  stats

                                   y     Show/hide hddtemp  stats

                                   l      Show/hide logs

                     其他:

                                   b    网络信息用bit为单位

                                   w    Delete warning logs

                                   x      Delete warning and critical  logs

                            数字1     分别显示单颗cpu

                                   h    help 帮助界面

                                   q    退出

               常用选线:

                            -b          =b以byte为单位显示网卡数据速率

                            -d          d 关闭磁盘IO模块

                            -f file      设定输入文件位置

                            -t #        延迟时间间隔

               

               C/S模式下云心glances命令

               服务器模式:

                     glances -s -B  IP

               客户端模式:

                     glances -c  IP

                    

dstat:  

               系统资源统计,代替vmstat iostat

               dstat [avf][options] [delay[count]]

               例如:

                     dstat -av 3 5 3秒一次刷新 一共刷新5次

               选项:    -c           cpu相关

                            -d          disk相关

                            -g          page相关

                            -m         mem相关

                            -n          net相关

                            -p          proc相关

                            -r          io 相关

                            -s          swap相关

               长选项     

                     --tcp  --udp  --unix   --raw  --socket  --ipc

                    

                      --top-cpu

                      --top-io

                      --top-mem

                     --top-latency 延迟最大的进程

                    

iotop:

               用来监视磁盘I/O使用状况的top类工具,具有与top相似的UI,其中包括

               PID、用户、IO、进程等相关信息,可查看每个进程是如果使用io

               

               iotop输出信息:

                     第一行:       read 和write的速率总计

                     第二行:       实际的read和write速率

                     第三行:

                            TID/PID   :       线程id,按p转换为pid

                            PRIO:          优先级

                            USER:          用户

                            DISK  READ: 磁盘读速度

                            DISK  WRITE:磁盘写速度

                            SWAPIN:     swap使用百分比

                            COMMAND:  进程命令

               选项:     

                            -o --only                    只显示正在产生IO的进程, 运行中按o生效

                            -b --batch           非交互模式,一般用户记录日志

                            -d # --delay=              刷新间隔默认1s  可以为小数 比如1.5

                            -n # --iter=          检测次数,默认无限

                            -p PID   --pid=           指定检测的进程

                            -u USER --user=         指定检测某个用户产生的IO

                            -P --processes            仅显示进程,默认iotop显示所有线程

                            -a  --accumulated 显示累计的IO,而不是带宽       交互a键

                            -k --kilobytes              使用KB单位

                            -t --time       加上时间戳,非交互式

                            -q --quit              禁止头几行,非交互式,有三种指定方式

                                   -q          只在第一次检测时显示列名

                                   -qq        永远不显示列名

                                   -qqq      用户不显示i/o汇总

                             

               交互式按键:

                            r                    反向排序

                            o                  切换至选线only

                            p                   切换至processes选线

                            a                   速率/带宽切换

                            q                  退出

                            i                    改变线程的优先级

 

作业管理--------------------------------------------------------------------

               linux的作业控制:

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

                            后台作业:     可通过终端启动,但启动后即转入后台运行(释放终端)

               让作业运行与后台:

                             1     运行中的作业:    ctrl+z

                            2     尚未启动的作业    cmd &

               后台作业虽然被送往后台运,但其依然与终端相关,退出终端,将关闭后台作业

               如果希望送往后台后,剥离与终端的关系

                     nohup cmd  &>/dev/null &

                     screen;cmd

               查看当前终端所有作业:

                     jobs

               作业控制:

                     fg [[%]num]    把指定的后台作业调回前台

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

                     kill [%num]     终止指定的作业

 

并行运行:

               同时运行多个进程,提高效率

               方法1:

                     vim all.sh  

                            f1.sh  &

                            f2.sh  &

                            f3.sh  &

                      all.sh

               方法2:

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

               方法3:

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

               

计划任务:

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

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

                     at

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

               周期性运行某任务

                     cron

                    

                             

centos设置时间同步

               需有一台用于同步时间的服务器,提供同步IP

               centos6:

                            vim  /etc/ntp.conf

                            添加一行:

                                   server IP  iburst

                            chkconfig ntpd  on

                            service ntpd  star

                            ntpdate  ip

               centos7

                            vim  /etc/chrony.conf

                            添加一行:server ip iburst

                            systemctl start  chronyd

                            systemctl enable  chronyd

                            ntpdate  ip

                             

at任务:

               at [option] TIME

               常用选项:

                            -V         显示版本信息

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

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

                            -c          查看具体作业任务

                            -f file      从指定的文件中读取任务

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

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

               

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

                            HH:MM [yyyy-mm-dd]       

                            noon,midnight,teatime(4pm)

                             tomorrow

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

                    

                     HH:MM 如 2:00  

                            在今天2:00进行,若今天时间已过,则明天此时执行任务

                     HH:MM YYYY-MM-DD  如  2:00  2019-09-20

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

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

                            04pm March 17            3月17号下午4点

                            17:20 tomorrow                 明天17.20

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

                            now + 5  minutes|min

                            02pm + 3 days     第一个下午2点之后在加3天

                             

               执行方式:

                     1     交互式

                     2     输入重定向

                     3     at -f file

               

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

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

               

               权限控制:

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

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

                            黑名单/etc/at.deny 默认存在,

                                           如果白名单存在,黑名单无效

                                           如果白名单不存在,在除黑名单中之外的用户可以使用at命令

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

               

cron:

               周期性任务计划:cron

               相关的程序包:

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

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

                                   如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会

                                    随后启动一起此任务

                             crontabs:包含centos提供系统维护服务

               

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

                     centos7:      systemctl status  crond

                     centos6:  service crond stadus

               

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

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

                                    /etc/crontab

                     用户cron任务:

                                   crontab  命令

                     日志:/var/log/cron

               

               系统cron任务:/etc/crontab

               时间格式: * * * * *

                     分(0-59) 小时(0-23)  day(1-31) month(1-12) week(0-6  或者1-7,周天是0或者7)

                    

               时间表示法:

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

                            2     *                   每。。。

                            3     离散取值       #,#,#

                            4     连续取值       #-#

                            5     /#                  指定步长,比如 0 /2 * * * 表示每2小时执行一次

                     特殊格式:    @reboot        开机执行      

                                           @yearly         每年 = 0 0 1 1 *

                                          @annually           

                                           @monthly    

                                           @weekly

                                           @daily

                                           @hourly

                     在etc下有相关脚本执行     /etc/cron.daily

                                                                /etc/cron.hourly

                                                                /etc/cron.monthly

                                                                /etc/cron.weekly

                                                                /etc/crontab

/usr/bin/run-parts  dir                      运行目录下所有可执行脚本                                           

               anacron系统:

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

                            有crond服务管理

                                           

用户计划任务:

crontab:

               每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME

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

                     -l            列出所有任务

                     -e           编辑任务

                     -r          移除所有任务

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

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

               控制用户执行计划任务

                      /etc/cron.allow

                      /etc/cron.deny

                     规则同at

 

注意事项:

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

               对于cron任务来讲,%有特殊用途;如果在计划任务命令中要使用%。需要转义,

               或者放置在单引号中(貌似无效)

               或者将命令放在单独脚本中,计划任务中执行脚本即可

               

               也可以将写好的计划任务脚本放在/etc/cron.d/ 下,系统自动执行

               

 

练习:

               1、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式

               为“etcbak  -yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

                     vim  /root/bin/etcbackup.sh

                            #!/bin/bash

                            tar -Jcvpf  /backup/etcbak-`date +%F-%H`.tar.xz  /etc

                     chmod +x  /root/bin/etcbackup.sh

                     crontab  -e

                            30 1 * * 1-5  /root/bin/etcbackup.sh

                             

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

               /tmp/meminfo.txt文件中

                     crontab  -e

                     0 */2 * * * cat  /proc/meminfo|grep -Ei '^s|^m' >> /tmp/meminfo.txt

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

               于80%,就执行wall警报     

               

               

实验作业:

        添加@reboot root reboot 计划任务之后修复

 



 


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!