目录结构
一、进程管理
1. Linux进程管理的作用
2. 进程的查看:ps
1)查看所有进程
2)ps命令输出的字段含义
3)查看进程树
3. 进程的查看:top
1)查看系统健康状态
2)top命令输出信息的含义分析
3)buffer与cache比较
4)使用top查看所有进程的资源占用数据
4. 终结进程
1)kill命令
2)killall命令
3)pkill命令
5. 修改进程的优先级
二、工作管理
1. 工作管理简介
1)工作管理简介
2. 工作管理方法
1)把进程放入后台,并在后台执行
2)查看后台的工作
3)将后台暂停的工作恢复到前台执行
4)把后台暂停的工作恢复到后台执行
3. 后台命令脱离终端
三、系统资源查看
1. 监控系统资源的命令:vmstat
2. 开机时内核检测信息:dmesg
3. 查看内存使用状态:free
4. 查看CPU信息
5. uptime命令
6. 查看系统与内核相关的信息
7. 列出进程打开or使用的文件信息
四、系统定时任务
1. at一次执行
1)确定at是否安装
2)at的访问控制
3)at命令
4)其他的at管理命令
5)案例应用:利用at服务控制在指定时间执行指定的任务
2. crontab循环定时任务
1)crond服务管理与访问控制
2)用户的crontab设置:定时服务配置
3)crontab常用命令
4)crontab配置-注意事项
3. 系统的crontab设置
4. anacron配置
1)anacron检测周期:
2)anacron配置文件
一、进程管理
进程:系统中正在运行的程序or命令,至少会产生1个进程,进程会占用一定的系统资源(%CPU、%MEM),同时会耗费一定的CPU的运算时间(TIME)
1. Linux进程管理的作用
进程管理作用:
① 判断服务器的健康状态:CPU使用情况、内存使用(物理内存、空闲内存)
② 查看系统中的所有进程:进程的资源占用情况(CPU、Memory);合法or非法进程
③ 终止进程:常规方式无法关闭程序时,再使用终止进程;对于非法进程,将其对应程序完全清理,达到重启系统不再出现非法进程
2. 进程的查看:ps
1)查看所有进程
# 查看系统中所有进程(使用BSD操作系统格式)
ps aux
选项:
a 显示一个终端的所有进程(不包括会话引线)
u 显示进程的归属用户及内存的使用情况
x 显示没有控制终端的进程
PS:以上进程中的PID=1的 /sbin/init
是系统的父进程,首先启动这个进程,作为其他进程启动的基础
# 查看系统中所有进程(使用Linux标准命令格式)
ps -le
选项:
-l 长格式显示(显示更加详细的信息)
-e 显示所有进程
-A 显示所有进程
2)ps命令输出的字段含义
USER:产生进程的用户
PID:进程的ID号(系统根据PID识别不同进程)
%CPU:进程的CPU资源使用占比,其值越高,表明进程越耗费资源
%MEM:进程的物理内存使用占比,其值越高,表明进程越耗费资源
VSZ:进程占用虚拟内存的大小(单位KB)
RSS:进程占用实际物理内存的大小(KB)
TTY:产生进程的终端。tty1-tty7为本地控制台终端,tty1-tty6位本地字符界面终端,tty7位图形终端,pts/0-255为虚拟终端,"?"表示非终端启动的进程,而是由内核自动启动的进程(系统进程)
STAT:进程状态。R-运行,S-睡眠,T-停止状态,s-包含子进程,"+"-位于后台
START:进程的启动时间
TIME:进程占用CPU运算所耗费的时间(非系统时间)。若耗费时间越长,则说明进程越耗费的资源越多
COMMAND:产生进程的命令名。通过该字段中显示的进程名来判断系统中运行的有哪些程序
3)查看进程树
pstree [选项]
选项:
-p 显示进程的PID
-u 显示进程的所属用户
以上pstree在Linux的Shell/Bash当中通过远程工具进程调用远程服务所产生的进程
显示进程的归属层级结构、PID、所属用户:
3. 进程的查看:top
1)查看系统健康状态
top命令监控资源:
top [选项]
选项:
-d 时长(s) 指定top命令刷新的频率:1次/时长(s)。默认是1次/3s
-b 使用批处理模式输出。一般和"-n"选项联用
-n 次数 指定top命令执行的次数。一般和"-b"选项联用
top交互模式:
在top命令的交互模式当中可执行的命令:
?/h 显示交互模式的帮助
P 以CPU使用率[%CPU]排序(默认方式)
M 以内存使用率[%MEM]排序
N 以PID排序
q 退出top
2)top命令输出信息的含义分析
【1】第1行:任务队列信息
内容 | 含义 |
---|---|
top - 05:33:05 | 当前系统时间 |
up 11:36 | 系统的运行时长 |
2 users | 当前登录的用户数 |
load average: 0.00, 0.00, 0.00 | 系统在之前1min、5min、15min的平均负载。 一般情况(非绝对,需要联合%CPU、%MEM分析): load average < 1,负载较小;load average ≥1,系统已经超出负荷 |
【2】第2行:进程信息
内容 | 含义 |
---|---|
Tasks: 93 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
92 sleeping | 睡眠的进程数 |
0 stopped | 正在停止的进程数 |
0 zombie | 僵尸进程数。 可能出现的情形:某些进程所依赖的底层进程被终止,导致上层进程被卡起。若持续出现其值≠0,则手工排查僵尸进程并根据需要而终止对应进程 |
【3】第3行:CPU信息
内容 | 含义 |
---|---|
Cpu(s): 0.0%us | 用户模式的CPU占比(被用户占用的CPU百分比) |
0.3%sy | 系统模式的CPU占比(被系统占用的CPU百分比) |
0.0%ni | 改变过优先级的用户进程的CPU占比 |
98.7%id |
空闲CPU占比(比较关键的指标)。 一般不能低于20%id,即需要%CPU≤80%;若%CPU>80%,则可能产生性能瓶颈 |
0.8%wa | 等待输入/输出的进程的CPU占比 |
0.0%hi | 硬中断请求服务的CPU占比 |
0.1%si | 软中断请求服务的CPU占比 |
0.0%st | 虚拟时间占比。st(Steal Time),虚拟CPU等待实际CPU的时间占比 若处于一个系统管理程序下的虚拟机环境中,系统管理程序会耗费一定的CPU处理时间 |
【4】第4行:Memory信息
内容 | 含义 |
---|---|
Mem: 597192k total | 物理内存的整体大小 |
486092k used | 已使用的内存 |
111100k free | 空闲的内存 |
99316k buffers | 作为缓冲的内存(缓冲可加速数据写入) |
【5】第5行:交换分区信息
内容 | 含义 |
---|---|
Swap: 2064376k total | 交换分区(虚拟内存)的整体大小 |
0k used | 已使用的交换分区 |
2064376k free | 空闲的交换分区 |
232040k cached | 作为缓存的交换分区(缓存可加速数据的读取) |
3)buffer与cache比较
- buffer:缓冲,加速数据写入到硬盘。
当系统不繁忙时,保存和写入数据到硬盘可以同步;当系统繁忙时,不断的写入数据,数据保存时可能首先保存到作为缓冲的内存中,当达到一定数量时,再集中写入硬盘,这样可以减少对硬盘的写操作 - cache:缓存,加速数据从硬盘读取。
较多数据放置在硬盘上,CPU需要不断从硬盘读取数据进行运算,导致硬盘较慢、系统变卡、效率变低。先把需要不断读取的数据放在作为缓存的内存(cache Memory)中,然后直接从cache中读取的速度则要比直接从硬盘读取快(运算速度:硬盘<<内存<
4)使用top查看所有进程的资源占用数据
# -b:使用批处理(允许输出重定向)
# -n 1:刷新1次数据后,导入指定文件中保存
top -b -n 1 > /root/top.log
PS:top命令本身也会占用较多的资源,刷新的频率保持默认的1次/3s即可,不建议将刷新频率设置过快
4. 终结进程
1)kill命令
# 查看可用的进程信号
kill -l
常用的信号有:1-SIGHUP、9-SIGKILL
进程信号&作用:
信号代号 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 该信号让进程立即关闭,然后重新读取配置文件之后重启 |
2 | SIGINT | 程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键 |
8 | SIGFPE | 在发生致命的算术运算错误时发出,不仅包括浮点运算错误,还包括溢出及除数为0等其它所有的算术的错误 |
9 | SIGKILL | 用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制终止进程 |
14 | SIGALRM | 时钟定时信号,计算的是实际的时间或时钟时间.alarm函数便用该信号 |
15 | SIGTERM | 正常结束进程的信号,kill命令的默认信号。有时如果进程已经发生问题,这个信号是无法正常终止进程的,才会尝试SIGKILL信号,也就是信号9 |
18 | SIGCONT | 该信号可以让暂停的进程恢复执行,本信号不能被阻断 |
19 | SIGSTOP | 该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号不能被阻断 |
# 重启进程(平滑重启)
kill -1 PID
kill -HUP PID
# 强制终结进程
kill -9 PID
以上,信号1(SIGHUP)的作用是平滑重启,重新加载配置文件,不会把服务已登录的用户剔除掉(应用在修改配置文件后需要重启生效,且不影响已登录用户的场景)
2)killall命令
# 按照进程名终结进程
killall [选项][信号] 进程名
选项:
-i 交互式,询问是否要终结某个进程
-I 忽略进程名的大小写
3)pkill命令
# 按照进程名终结进程
pkill [选项][信号] 进程名
选项:
-t 终端号 按照终端号踢出用户
按照终端踢出用户:
# 查询本机已登录的用户(包含终端名称)
w
# 强制终结指定的虚拟终端登录的进程(登录用户)
pkill -9 -t 进程名(终端名称)
kill、killall、pkill 比较:
kill是终结单一进程,其后跟PID号;killall、pkill则是终结一组进程,其后跟进程名
5. 修改进程的优先级
Linux是多用户、多任务的操作系统,可同时运行较多的进程,但CPU同一个时刻只会运算一个指令,进程优先级决定了每个进程的处理先后顺序(CPU本身运算较快,人为并不容易感受到不同进程优先级的区别)
执行命令:ps -le
PRI 和 NI 含义说明:
(1)PRI取值表示优先级:PRI (Priority) 和 NI (Nice)都关联优先级,其值越小则进程优先级越高。PRI(最终值)= PRI(原始值)+ NI(调控值)
。PRI为最终生效的优先级,通过修改NI值来使得PRI值发生变化,不能直接修改PRI值
(2)用户可调整NI值的范围:① 普通用户调整NI值的范围为[0,19],且只能调整自己的进程(普通用户只能调高NI值,不能降低);② root用户调整NI值的范围为[-20,19],且可调整任何用户的进程
renice命令
# 修改已存在进程的 NI值
renice [优先级] PID
二、工作管理
1. 工作管理简介
1)工作管理简介
工作管理:在单个登录终端中(登录的shell界面)同时管理多个工作(jobs),把程序放置于Linux后台来执行,从而利于当前需要操作的程序or服务可以正常稳定使用
注意事项:
① 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
② 放入后台的命令必须可以持续运行一段时间,才能扑捉和操作这个工作
③ 放入后台执行的命令不能和前台用户有交互or需要前台输入,否则放入后台只是暂停状态,不能是运行状态
2. 工作管理方法
1)把进程放入后台,并在后台执行
方式1:在命令后加 "&",放入后台是运行状态。如:tar -zcf etc.tar.gz /etc &
方式2:组合键【Ctrl+Z】,放入后台是暂停状态
适用场景:
① 复制:如复制较大容量的文件,耗费时间较长的情形
② 打包、压缩、解压缩:处理较大容量or数量的文件的情形
③ 搜索:如大范围搜索,将会耗费较多时间的情形
......
2)查看后台的工作
jobs [-l]
选项:
-l 显示工作的PID
"+"表示最近一个放入后台的工作,工作恢复时默认也将恢复该工作;"-"表示倒数第二个放入后台的工作;没加符号的表示是较早放入后台的工作
3)将后台暂停的工作恢复到前台执行
fg %工作号
以上%可省略,工作号≠PID
4)把后台暂停的工作恢复到后台执行
bg %工作号
PS:后台恢复执行的命令,是不能和前台有交互的命令,否则不能恢复到后台执行
3. 后台命令脱离终端
把命令放入后台,只能在当前登录终端执行。一旦退出or关闭终端,后台程序就会停止运行。若为守护进程(deamon),则不会因关闭终端而停止运行,如:mysqld。
后台命令脱离登录终端执行的方法:
- 方法1:把需要在后台执行的命令加入
/etc/rc.local
文件,即可随系统启动而加载 - 方法2:使用系统定时任务,让系统在指定的时间执行某个后台命令
- 方法3:使用
nohup
命令
# 让命令脱离终端依然运行
nohup [命令] &
案例:
vim nohup-test.sh
#!/bin/bash
# 循环1000次,每次循环间隔10s,输出自增量 i的值追加到指定文件中
for ((i=1;i<=1000;i=i+1))
do
echo $i >> /root/for.log
sleep 10s
done
chmod 755 nohup-test.sh
nohup /root/nohup-test.sh &
执行命令:ps aux
可查看到进程 /root/nohup-test.sh在终端中运行,退出终端后再次登入终端,依然可以查看到该进程在运行
输出的日志文件:
若要终止进程,则执行:kill -9 PID,本次为 kill -9 13113
三、系统资源查看
1. 监控系统资源的命令:vmstat
# 每隔指定时间间隔刷新一次,一共刷新设置的次数
vmstat [刷新间隔时间 刷新次数]
如每隔1s刷新一次,共刷新3次:vmstat 1 3
每刷新一次即会生成一行最新的数据,直至刷新完成,如下:
vmstat命令整合了系统的进程、内存、交换分区、磁盘读写、系统通信、CPU的信息,具体如下:
- procs(进程信息字段)
r:等待运行的进程数。其值越大,说明系统越繁忙
b:不可被唤醒的进程数量。其值越大,系统越繁忙 - memory(内存信息字段)
swpd:虚拟内存使用容量(KB)
free:空闲内存容量
buff:缓冲的内存容量
cache:缓存的内存容量 - swap(交换分区的信息)
si:从磁盘中交换到内存中数据的容量
so:从内存中交换到磁盘中数据的容量
[ si、so对应的值越大,说明数据需要在磁盘-内存之间交换,资源耗费多,系统性能越差 ] - io(磁盘读写信息)
bi:从块设备读取数据的容量(读磁盘)
bo:写入到块设备的数据的容量(写磁盘)
bi、bo对应的值越大,说明系统的I/O越繁忙 - system(系统信息)
in:每秒被中断的进程次数
cs:每秒进行的时间切换次数
[ in、cs对应的值越大,说明系统与接口设备的通信越繁忙 ] - CPU
us:非内核进程消耗CPU运算时间的占比
sy:内核进程消耗CPU运算时间的占比
id:空闲CPU的占比
wa:等待I/O所消耗的CPU占比
st:被虚拟机所盗用的CPU占比
2. 开机时内核检测信息:dmesg
# 查询服务器的硬件信息
dmesg
# 查看服务器硬件中CPU的信息
dmesg | grep "CPU"
3. 查看内存使用状态:free
free [-b|-k|-m|-g]
选项:
-b 以字节为单位显示
-k 以KB为单位显示(默认即以KB为单位显示)
-m 以MB为单位显示
-g 以GB为单位显示
第1行:
total:总内存数
used:已使用的内存数
free:空闲内存数
shared:多个进程共享的内存总数
buffers:缓冲内存数
cached:缓存内存数
第2行:
-/buffers/cache的内存数:
+/buffers/cache的内存数:
第3行:
total:Swap的总数
used:已使用的Swap数
free:空闲的Swap数
------------------------------------
PS:以上默认单位为:KB
4. 查看CPU信息
cat /proc/cpuinfo
/proc/目录存放内存相关的信息,CPU信息也保存在内存中
5. uptime命令
# 显示系统的启动时间&平均负载
uptime
uptime
展示的也是top
命令的第1行数据,w
命令亦可查看此行数据
若只查看某个时刻静态的平均负载(load average),则从减少资源耗费的角度,建议使用uptime或w命令,因top命令相对会占用更多资源
6. 查看系统与内核相关的信息
uname [选项]
选项:
-a 查看系统所有相关选项
-r 查看内核版本
-s 查看内核名称
判断当前系统的位数(使用某个外部命令查看操作系统位数):file /bin/ls
查询当前Linux系统的发行版本:lsb_release -a
若系统提示"-bash: lsb_release: command not found",则需要安装lsb:
CentOS6为:yum -y install lsb
CentOS7为:yum -y install redhat-lsb
7. 列出进程打开or使用的文件信息
lsof [选项]
选项:
-c 字符串 只列出以字符串开头的进程打开的文件
-u 用户名 只列出某个用户的进程打开的文件
-p PID 列出某个PID进程打开的文件
通过进程调用文件,查看相关信息:
# 查询系统中所有进程调用的文件
lsof | more
# 查询某个文件被调用的进程
lsof 文件名
# 查询某个进程调用的文件
lsof -c 进程名
# 按照用户名查询某个用户的进程调用的文件
lsof -u root
四、系统定时任务
1. at一次执行
1)确定at是否安装
# 查看at服务是否安装
chkconfig --list | grep "atd"
# 查看at服务的运行状态
service atd status
# 重启at服务
service atd restart
服务名其后的字母"d"表示守护进程,即系统的服务,在系统后台运行
2)at的访问控制
① 若系统中有/etc/at.allow文件,则只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略)
② 若系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令(对root无限制作用)
③ 若系统中这两个文件都不存在,则只有root用户可以使用at命令
3)at命令
at [选项] 时间
选项:
-m 当at工作玩抽,用email通知执行at命令的用户
-c [jobid] 显示该at工作的具体内容;jobid为工作号
时间:
HH:MM
HH:MM YYYY-MM-DD
HH:MM[am|pm] [month][date]
HH:MM[am|pm]+[minutes|hours|days|weeks]
4)其他的at管理命令
# 查询当前服务器上的 at工作
atq
# 删除指定的 at任务
atrm [jobid]
5)案例应用:利用at服务控制在指定时间执行指定的任务
案例:
通过at服务控制某个时间开始执行工作任务:将shell脚本运行的结果追加到指定文件中存放
编写脚本:vim hello.sh
#!/bin/bash
echo "hello atd !" >> /root/hello.log
1min之后执行at工作任务:at now + 1 minutes
进入at服务交互模式,指定具体执行的操作:at> /root/hello.sh >> /root/hello.log
保存并退出at服务交换模式:组合键【Ctrl+D】
2. crontab循环定时任务
1)crond服务管理与访问控制
# 查看是否安装有crond服务
chkconfig --list | grep "crond"
# 查看crond服务的运行状态
service crond status
# 重启crond服务
service crond restart
# 设置crond服务为开启状态
chkconfig crond on
访问控制:
① 若系统中有/etc/cron.allow文件,则只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令(/etc/cron.deny文件会被忽略,即/etc/cron.allow文件的优先级更高)
② 若系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab命令
2)用户的crontab设置:定时服务配置
crontab [选项]
选项:
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
PS:以上操作是以当前登录用户的身份执行操作,若为普通用户则不能执行超出权限的命令
定时任务设置格式:
# 进入crontab编辑界面,即可编辑需要执行的工作
# "*"控制定时时间,执行任务可为命令or脚本
* * * * * 执行的任务
符号 | 作用 | 控制范围 |
---|---|---|
第1个* |
每小时中的:第 x 分钟 | 0-59 |
第2个* |
每天中的:第 x 小时 | 0-23 |
第3个* |
每月中的:第 x 天 | 1-31 |
第4个* |
每年中的:第 x 月 | 1-12 |
第5个* |
每周中的:星期 x | 0-7 0、7:星期天 1:星期一 |
特殊符号 | 含义 |
---|---|
* | 任何时间 第1个 * :每小时中的每分钟都执行一次注:第1个 * 使用时要慎重,若每分钟都执行占用大量资源的场景时可能会引起服务器异常 |
, | 不连续的时间0 8,12,16 * * * :每天的8:00,12:00,16:00都执行一次 |
- | 连续的时间范围0 5 * * 1-6 :星期1-6的凌晨5:00都执行 |
*/n | 每隔多久执行一次*/10 * * * * :每隔10min就执行一次 |
每个月的1,10,15号的凌晨05:00执行一次备份任务:
0 5 1,10,15 * * /root/sh/auto-bak.sh
3)crontab常用命令
# 查看root用户的crontab任务
crontab -l
# 删除root用户的所有定时任务
crontab -r
4)crontab配置-注意事项
【1】定时任务中的6个选项不能为空,为必填项
【2】定时任务关联的执行命令,建议用绝对路径
【3】系统所能识别的最小时间为min,最大时间为month。如:从09:01:59到09:02:00,系统所能识别的分钟数已经发生变化(01-->02),不一定是60s才会发生变化
【4】不建议同时配置星期x和每月中的第y天的具体数字(系统认为是只要满足其中之一即会执行,非同时满足条件才执行),以免引起人为逻辑理解的混乱
3. 系统的crontab设置
系统定时任务:
crontab-e
是每个用户执行的命令,不同的用户身份可以执行各自的定时任务,但有的定时任务需要系统执行,此时需要编辑配置文件/etc/crontab
进行配置不同身份的操作命令权限
执行系统定时任务的方法:
方法1:手工执行定时任务
方法2:设置系统定时任务:
方式① 把需要定时执行的脚本复制到
/etc/cron.{hourly, daily, weekly, monthly} 目录中的任意一个
方式② 修改 /etc/crontab配置文件
如每个月的1,10,15号的凌晨05:00执行一次备份任务:0 5 1,10,15 * * root /root/sh/auto-bak.sh
4. anacron配置
anacron:用来保证在系统关机时错过的定时任务,可在系统开机之后再执行。在指定的任务时间服务器未开机,系统重新开机后anacron能够自动检测和判断并执行漏掉的定时任务,anacron调用以上 /etc/cron.{hourly, daily, weekly, monthly}文件中配置的定时任务
1)anacron检测周期
① anacron会使用1d、7d、1month作为检测周期(能识别的最小时间为:天)
② 在系统的/var/spool/anacron/目录中存在cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间
③ 和当前时间做比较,若两个时间的差值超过了anacron指定的时间差值,说明有cron任务被漏执行
④ 把定时任务配置在 /etc/cron.{hourly, daily, weekly, monthly}文件中,可被anacron调用
2)anacron配置文件
vim /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
# 最大随机延迟:45min
RANDOM_DELAY=45
# the jobs will be started during the following hours only
# anacron执行时间范围为 3:00-22:00
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
# 天数 强制延迟(min) 工作名称 实际执行命令
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
备注说明:
① 调用过程描述:
daily任务
:首先读取/var/spool/anacron/cron.daily中的上一次anacron执行的时间
和当前时间比较,若超过1d,则强制延迟5min,然后45min以内随机延迟,其后run-parts脚本开始调用/etc/cron.daily
weekly任务
:超过7d,强制延迟25min,...,run-parts脚本调用/etc/cron.weekly
monthly任务
:超过一个月,强制延迟45min,...,run-parts脚本调用/etc/cron.monthly
② 使用nice命令指定默认优先级,使用run-parts脚本(Shell脚本)执行/etc/cron.{daily, weekly, monthly}目录中的所有可执行文件
③ 延迟的作用是避免在同一时间内多次执行任务,以免服务器资源占用及其压力过大
④ 对于CentOS6,/etc/crontab不对/etc/cron.{daily, weekly, monthly}调用,但/etc/anacrontab默认是会对/etc/cron.{daily, weekly, monthly}进行调用,故可将定时任务配置在/etc/cron.{daily, weekly, monthly}中可生效