Linux系统管理

目录
一、进程管理
二、工作管理
三、系统资源查看
四、系统定时任务

 一、简介与分类

1、进程管理简介
2、进程的查看 -ps命令和pstree命令
3、进程的查看 -top命令
4、杀死进程
5、修改进程优先级

1.1进程简介
#正在运行中的程序,所有的程序都产生进程,正在执行的进程或命令
默认是400,可改成2048
service httpd star

1.2进程管理的作用
#判断服务器健康状态
#查看系统中所有进程
#杀死进程

2.1进程的查看 -ps命令和pstree命令
ps aux #查看系统中所有进程,使用BSD操作系统格式
ps -le #查看系统中所有进程,使用Linux标准命令格式
#选项
-a:显示一个终端的所有进程,除了会话引线
-u:显示进程的归属用户及内存的使用情况
-x:显示没有控制终端的进程
–l:长格式显示,显示更加详细的信息
–e:显示所有进程,和-a作用一致
PS命令的输出
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用率高,进程越耗费资源
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
USZ:该进程占用虚拟内存的大小,单位是KB
RSS:该进程占用实际物理内存的大小,单位是KB
TTY:该进程是在哪个终端中运行的,其中tty1–tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。
pts/0-255代表虚拟终端,远程终端
STAT:进程状态,常见的状态有
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
START:该进程启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间,时间越长,越耗费资源
COMMAND:产生此进程的命令名

查看进程树
pstree 【选项】
#选项
-p:显示进程的PID
-u:显示进程的所属用户

3.1进程的查看 --top命令
top 【选项】
#选项
-d秒数:指定top命令每隔n秒更新,默认为3秒
-b:使用批处理模式输出,一般和“-n”选项合用
-n次数:指定top命令执行的次数,一般和“-b”合用
#在top命令的交互模式当中可以执行的命令?或h:显示交互模式的帮助
P:以CPU使用率排序,默认为此选项
M:以内存的使用率排序
N:以PID排序
q:退出top

第一行信息为任务队列信息
内容 说明#
12:26:46 #系统当前时间
up 1 day,13:32 #系统运行时间,本机已经运行1天13小时32分钟
2 users #当前登录了两个用户
Load average:0.00 #系统在之前1分钟,5分钟,15分钟
0.00,0.00 #平均负载,一般默认为小于1小时,

第二行为进程信息
内容 说明#
Tasks:95 total #系统中的进程总数
1 running #正在运行的进程数
94 sleeping #睡眠的进程
0 stopped #正在停止的进程
0 zombie #僵尸进程,如果不是0,需要手动检查僵尸进程

第三行为CPU信息
内容 说明#
CPU(s):0.1%us #用户模式占用的CPU百分比
0.1%sy #系统模式占用的CPU百分比
0.0%ni #改变过优先级的用户进程占用的CPU百分比
99.7%id #空闲CPU的百分比
0.1%wa #等待输入/输出的进程的占用CPU百分比
0.0%hi #硬中断请求服务占用的CPU百分比
0.0%si #软中断请求服务占用的CPU百分比
0.0%st #st(steal time)虚拟时间百分比,就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比

第四行为物理内存信息
内容 说明#
Mem:625344k total #物理内存的总量,单位KB
571504k used #已经使用的物理内存数量
53840k free #空间的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存,
65800K buffers #作为缓冲的内存数量

第五行为交换分区(swap)信息
内容 说明#
Swap:524280K total #交换分区(虚拟内存)的总大小
ok used #已经使用的交互区大小
524280k free #空闲交换分区大小
409280k cached #作为缓存的交互分区大小

*1、系统15,5,1分钟
*2、CPU空闲率
*3、内存空闲
*4、Swap free 空闲

4.1杀死进程
1、kill 命令
kill -l #查看可用的进程信号
信号代号 信号名称* 说明#
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 2235 #重启进程
kill -9 2336 #强制杀死进程

2、killall 命令
killall 【选项】【信号】 进程名 #按照进程名杀死进程
*选项:
-i: 交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
例:killall -9 httpd

3、pkill 命令
pkill 【选项】【信号】进程名 #按照进程名终止进程
*选项:
-t 终端号:按照终端号踢出用户
w :使用w命令查询本机已登录用户
pkill -9 -t pts/1 #强制杀死从pts/1虚拟终端登录的用户

5.1修改进程优先级
1、进程优先级简介
Linux操作系统时一个多用户-多任务的操作系统,Linux系统中同时运行着非常多的进程,但是CPU在同一个时钟周期内只运算一个指令,进程优先级决定每个进程处理的先后顺序
ps -le
PRI代表priority,NI代表nice,这两个值都是优先级,数字越小,代表该进程优先级越高

2、修改NI值时有n个注意事项
#NI值得范围是-20到19
#普通用户调整NI值得范围是0到19,而且只能调整自己的进程
#普通用户只能调高NI值,而不能降低,如原本NI值为0,则只能调整大于0
#root用户才能设定进程NI值为负值,而且可以调整任何用户的进程
#PRI(最终值)=PRI(原始值)+NI
#用户只能修改NI的值,不能直接修改PRI

Nice 命令
nice 【选项】 命令
#nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值
*选项:
-n NI值:给命令赋予NI值
例如: nice -n -5 service httpd start

renice 命令
renice 【优先级】 PID
#renice命令是修改已经存在进程的NI值命令
例如: renice -10 2125

二、工作管理

目录
1、工作管理简介
2、工作管理方法
3、后台命令脱离登录终端执行

1.1 工作管理简介
#工作管理指的是在单个登录终端中(也就是登录的shell页面中)同事管理多个工作的行为
注意事项
#当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
#放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
#放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行

2.1工作管理方法

1、把进程放入后台
tar -zcf etc.tar.ga /etc & # &把命令放入后台,并在后台执行
top #按下ctrl+z快捷键,放入后台暂停

2、查看后台工作
jobs 【-l】
选项:
-l:显示工作的PID
注:+号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作。“-”号代表倒数第二个放入后台的工作

3、将后台暂停的工作恢复到前台执行
fg % 工作号
*参数
-%工作号:%号可以省略,但是注意工作号和PID的区别

4、把后台暂停的工作恢复到后台执行
bg %工作号
注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行

3.1后台命令脱离登录终端执行
简介:
#把命令放入后台,只能在当前登录终端执行,一旦退出或关闭终端,后台程序就会停止

后台命令脱离登录终端执行的方法:
1、把需要后台执行的命令加入 /etc/rc.local 文件
2、使用系统定时任务,让系统在指定的时间执行某个后台命令
3、使用nohup命令

nohup 命令
nohup 【命令】 &
举例:
vi for.sh #!/bin/bash
for((i-0;-<=100;i++)
do
echo 11 >> /root/for.log
sleep 10s
done
*noup /root/for.sh &

三、系统资源查看

1、vmstat命令监控系统资源
*vmstat 【刷新延时 刷新次数】
例如:
vmstat 1 3
*procs:进程信息字段
-r:等待运行的进程数,数量越大,系统越繁忙
-b:不可被唤醒的进程数量,数量越大,系统越繁忙
*memory:内存信息字段
-swpd:虚拟内存的使用情况,单位KB
-free:空闲的内存容量,单位KB
-buff:缓冲的内存容量,单位KB
-cache:缓存的内存容量,单位KB

缓存和缓冲的区别
#简单来说缓存(cache)是用来加速数据从硬盘中“读取”,而缓冲(buffr)是用来加速数据“写入”硬盘的

*swap:交换分区的信息字段
-si:从磁盘中交换到内存中数据的数量,单位KB
-so:从内存中交换到磁盘中数据的数量,单位KB。此两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差
*io:磁盘读写信息字段
-bi:从块设备读写数据的总量,单位是块
-bo:写到块设备的数据总量,单位是块,此两个数越大,
*system:系统信息字段
-in:每秒被中断的进程次数
-cs:每秒钟进行的事件切换次数,此两个数越大,代表系统与接口设备的通信非常繁忙。
*CPU:CPU信息字段
-us:非内核进程消耗CPU运算时间的百分比
-sy:内核进程消耗CPUYU运算时间的百分比
-id:空闲CPU的百分比
-wa:等待I/O所消耗的CPU百分比
-st:被虚拟机所盗用的CPU百分比

2、dmesg开机时内核检测信息
dmesg
*dmesg | grep CPU

3、free命令查看内存使用状态
free 【-b -k -m -g】
选项:
-b:以字节为单位显示
-k:以KB为单位显示,默认
-m:以MB为单位显示
-g:以GB为单位显示
#第一行:total是总内存数,used是已经使用的内存数,free是空闲的内存数,shared是多个进程共享的内存总数
#第二行:/buffers/cache的内存数,相当于第一行的free+buffers+cached
#第三行:total是swap的总数,used是已经使用的swap数,free是空闲的swap数,默认是KB

4、查看CPU信息
cat /proc/cpuinfo

5、uptime 命令
uptime #显示系统的启动时间和平均负载,也就是top命令的第一行。

6、查看系统与内核相关信息
uname 【选项】
选项:
-a:查看系统所有相关信息
-r:查看内核版本
-s:查看内核名称

7、列出进程打开或使用的文件信息
lsof 【选项】 #列出进程调用或打开的文件信息
选项:
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只列出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
lsof /more #查询系统中所有进程调用的文件
lsof /sbin/init #查询某个文件被哪个进程调用
lsof -c httpd #查看httpd进程调用了哪些文件
lsof -u root #按照用户名,查询某用户的进程调用的文件名

四、系统定时任务

目录
1、at 一次性定时任务
2、crontab 循环定时任务
3、系统的crontab设置
4、anacron配置

1.1、at 一次性定时任务
*chkconfig --list | grep atd #at服务是否安装
*service atd restart #at服务的启动

1.2、 at的访问控制
#如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略)
#如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件。那么只有写入/etc/at.dent(黑名单)中的用户不能使用at命令,对root不起作用
#如果系统中这两个文件都不存在,那么只有root用户可以使用at

1.3、at命令
at 【选项】 时间
选项:
-m:当at工作完成后,无论是否命令有输出,都用email通知执行at命令的用户
-c 工作号:显示该at工作的实际内容
时间:
HH:MM 例:02:30
HH:MM YYYY-MM-DD 例:02:30 2019-05-07
HH:MM[am/pm] [month] [date] 例:02:30 July 25
HH:MM[am/pm] [minutes/hours/days] 例:now+5mintes

1.4、例子
1、at now +2 minutes #在两分钟之后执行hello.sh脚本
at > /root/hello.sh >> /root/hello.log
2、at 02:00 2019-05-07 #在指定的时间重启
at > /bin/sync
at > /sbin/shutdown -r now

1.5、其他at管理命令
atq #查询当前服务器上的at工作
atrm 【工作号】 #删除指定的at任务

2.1、crontab循环定时任务
1、crond服务管理与访问控制
service crond restart
chkconfig crond on
访问控制
#当系统中有/etc/cron.allow文件时,只有写入文件的用户,可以使用crontab命令,没有写入的用户则不能使用。同样如果此文件,/etc/cron.deny文件会被忽略,/etc/cron.allow文件的优先级更高
#当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用。

2、用户的crontab设置
crontab 【选项】
选项:
-e:编辑crontab定时任务
-l :查询crontab任务
-r :删除当前用户所有的crontab任务
crontab -e #进入crontab编辑页面,会打开vim编辑你的工作
(执行任务)* * * * *
项目 含义# 范围
第一个* # 一小时当中的第几分钟 0-59
第二个* #一天当中的第几小时 0-23
第三个* #一月当中的第几天 1-31
第四个* #一年当中的第几月 1-12
第五个* #一周当中的星期几 0-7(0和7都代表星期日)

特殊符号 含义
*:代表任何时间,比如第一个 * 就代表一小时中每分钟都执行一次
,:代表不连续的时间,比如“08,12,16 * * *” 代表每天8点0分,12点0分,16点0分都执行一次
-:代表连续的时间范围,“05 * * 1-6” 代表每周一倒周六的凌晨5点0分执行
/n:代表每隔多久执行一次,“/10 * * * *” 代表每隔10分钟执行一次

时间 含义#
45 22 * * * :在22点45分执行
0 17 * * 1 :每周一的17点0分执行
0 5 1,15 * * :每月1号,15号,凌晨5点0分执行
40 4 * * 1-5 :每周一到周五凌晨4点40分执行
*/10 4 * * * :每天凌晨4点,每隔十分钟执行一次
0 0 1,15 * 1 :每月1号5号,每周一0点0分执行

3.常用命令
crontab -1 #查看root用户的crontab任务
crontab -r #删除root用户所有的定时任务

4、crontab注意事项
#选项不能为空,必须填写,如果不确定使用 * 代表任意时间
#crontab定时任务,最小有效时间是分钟,最大时间范围是月
#在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都是以天作为单位,非常容易让管理员混乱
#在定时任务中,不管是直接写命令,还是在脚本中写命令,都用绝对路径

3.1 系统的crontab设置
系统的定时任务
“crontab -e ”是每个用户执行的命令,也就是说不同的用户身份可以执行自己的定时任务,可是有些定时任务需要系统执行,这时我们就需要编辑/etc/crontab这个配置文件

cent os 5中的配置文件
vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

run-parts

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
41 4 1 * * rot run-parts /etc/cron.monthly

执行系统的定时任务的方法
#第一种是把需要定时执行的脚本复制到/etc/cron.{daily,weekly,monthly}中的任意一个
#第二种是修改/etc/crontab配置文件
#手工定时 #系统定时

4.1、anacron配置
anacron是什么
#anacron是用来保证在系统关机的时候错过的定时任务,可以在系统开机只有在执行

anacron检测周期
anacron会使用一天,七天,一个月作为检测周期
#在系统的/var/spool/anacron/目录中存在cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间
#和当前时间做比较,若两个时间的差值超过了
anacron的指定时间差值,证明有cron任务被执行

centos 6.x的区别
#在老的centos版本中,/etc/cron.{daily,weekly,monthly}这些目录会被cron调用,也会被anacron调用,容易重复执行。
#在cents 6.x中只会被anacron调用,避免了重复执行。
#在cents 6.x中,anacron不是服务,而是系统命令

4.1 anacron配置文件
vi /etc/anacrontab
RANDOM_DELAY=45 #最大随机延迟
START_HOURS_RANGE=3-22 #anacron的执行时间范围3:00-22:00
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
#天数 强制延迟(分) 工作名称 实际执行的命令
cron.daily工作来说明执行过程
#首先读取/var/spool/abacron/cron.daily中的上一次anacron执行时间
#和当前时间比较,如果两个时间的差值超过1天,就执行cron.daily工作
#执行这个工作只能在03:00-22:00之间
#执行工作时强制延迟时间为5分钟,在随机延迟0-45分钟的时间
#使用nice命令指定默认优先级,使用run-parts脚本执行 /etc/cron.daily目录中的所有可执行的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值