目录

一、进程管理

进程管理简介和作用

进程的查看

杀死进程

修改进程优先级

二、工作管理

工作管理简介

工作管理方法

后台命令脱离工作终端执行

三、系统资源查看

四、系统定时任务

at一次执行

crontab循环定时任务

系统的crontab设置

anacron配置


本文为慕课网Tony老师视频笔记,Tony老师的课通俗易懂,幽默风趣,Linux入门或巩固基础的话,推荐看一下!https://www.imooc.com/u/279399/courses?sort=publish

一、进程管理

进程管理简介和作用

进程简介:

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占有一定的系统资源

进程管理的作用:

判断服务器健康状态

查看系统中所有进程

杀死进程

进程的查看

ps aux
#查看系统中所有的进程,使用BSD操作系统格式(没有-只是符合BSD格式,加-也可以)
ps -le
#查看系统中所有的进程,使用Linux标注命令格式
选项
-a:显示一个终端的所有进程,除了会话引线
-u:显示进程的归属用户和内存使用情况
-x:显示没有控制终端的进程
-l:长格式显示,显示更加详细的信息
-e:显示所有进程,和-A作用一致

STAT字段:进程状态
常见状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
START字段:进程的启动时间
TIME字段:该进程占用CPU的运算时间,注意不是系统时间
COMMAND字段:产生该进程的命令名

pstree[选项]:显示进程树
选项:
-p:显示进程的PID
-u:显示进程的所属用户

top[选项]:查看系统健康状态
选项:
-d:秒数,指定top命令每隔几秒更新,默认是3秒
-b:使用批处理模式输出。一般和"-n"选项合用
-n次数:指定top命令执行的次数,一般和"-b"选项合用
在top命令的交互模式当中可以执行的命令:
?或h:显示交互模式的帮助
P:以CPU使用率进行排序默认就是此项
M:以内存使用率进行排序
N:以PID排序
q:退出top

第一行信息为任务队列信息(不过这里的load average的大小是按系统的核数来看,双核就是2,四核就是4,不过可能即使满足了这个数值,CPU和MEM还可以接受的话也不一定就超出了负载):

第二行为进程信息 

第三行为CPU状态

第四行为物理内存信息 (缓冲的作用:加速了数据的写入)

第五行为交换分区信息(缓存的作用:加速了数据的读取)

杀死进程

kill -l
#查看可用的进程信号

killall[选项][信号]进程名
#按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死这个进程
-I:忽略进程名大小写

pkill[选项][信号]进程名
#按照进程名终止进程
选项:
-t终端号:按照终端号踢出用户
w命令:查看已登录用户的信息(TTY字段就是终端号)

pkill -9 -t pts/1
#强制杀死从pts/1终端登录的进程

修改进程优先级

进程的优先级:
Linux操作系统是一个多用户、多任务的操作系统,Linux系统中通知运行着非常多的进程
但是CPU在同一个时钟周期内只能运行一个指令。进程的优先级决定了每个进程处理的先后顺序

进程信息中的PRI字段代表Priority(不能直接修改),NI字段代表Nice(可以修改)
这两个值都是优先级(最终是PRI和NI相加),数字越小,代表进程优先级越高

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

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

renice[优先级]PID
#修改已存在进程的NI值
例如:
renice -10 2125

二、工作管理

工作管理简介

工作管理是指在单个登录终端中(也就是登录的shell界面中)同时管理多个工作的行为

注意事项:
1、当前的登录终端只能管理当前终端的工作,而不能管理其他登录终端的工作
2、放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
3、放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行

工作管理方法

tar -zcf etc.tar.gz /etc &
#把命令放入后台并在后台执行

top
#在命令执行过程中,按下ctrl+z快捷键,放在后台暂停

jobs[-l]:查看后台的工作
选项:
-l:显示工作的PID
注意:"+"号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作
"-"号代表倒数第二个放入后台的工作

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

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

后台命令脱离工作终端执行

把命令放入后台只能在当前登录终端(当前Bash)执行,一旦退出或关闭终端后台程序就会停止

方式一:把需要后台执行的命令加入到/etc/rc.local文件中
方式二:使用系统定时任务,让系统在指定的时间执行某个后台命令
方式三:使用nohup命令,nohup [命令] &

三、系统资源查看

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

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

swap:交换分区的信息字段
si:从磁盘中交换到内存中数据的数量,单位kb
so:从内存中交换到磁盘中数据的数量,单位kb
上面两个数越大,证明数据经常在磁盘和内存之间交换,系统性能越差
io:磁盘读写信息字段
bi:从块设备读入数据的总量,单位是块
bo:写到块设备的数据的总量,单位是块
上面连个数越大,代表系统的I/O越繁忙

system:系统信息字段
in:每秒被中断的进程次数
cs:每秒钟进行的事件切换次数
上面两个数越大,代表系统与接口设备的通信非常繁忙
CPU:CPU信息字段
us:非内核进程消耗CPU运算时间百分比
sy:内核进程消耗CPU运算时间百分比
id:内核CPU的百分比
wa:等待I/O所消耗的CPU百分比
st:被虚拟机所盗用的CPU百分比

dmesg:开机时内核检测信息
dmesg
dmesg | grep CPU

free [-b|-k|-m|-g|-h]:查看内存使用信息
选项:
-b:单位字节
-k:单位KB
-m:单位MB
-g:单位GB
-h:单位自动

cat /proc/cpuinfo:查看CPU信息

uptime:显示系统的启动时间和平均负载,也就是top命令的第一行,w命令也可以看到这个信息

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

file /bin/ls:判断当前系统的操作位数

lsb_release -a:查看当前系统的发行版

lsof [选项]:列出进程打开或使用的文件信息
选项:
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只类出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件

lsof | more:查询系统中所有进程调用的文件
lsof /sbin/init:查询某个文件被哪个进程调用
lsof -c httpd:查看httpd进程调用了哪些文件
lsof -u root:按照用户名,查询某用户的进程调用的文件名

四、系统定时任务

at一次执行

确定at是否安装并启动
chkconfig --list | grep atd
service atd restart

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

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

在两分钟之后执行hello.sh脚本
at now +2 minutes
at>/root/hello.sh >> /root/hello.log

在指定的时间重启
at 02:00 2019-07-25
at>/bin/sync
at>/sbin/shutdown -r now

atq:查询当前服务器上的at工作
atrm[工作号]:删除指定的at任务

crontab循环定时任务

确认crond服务是否安装和启动
service crond restart
chkconfig crond on

访问控制:
1、当系统中有/etc/cron.allow文件是,只有写入此文件的用户可以使用crontab命令
同样如果有此文件,/etc/cron.deny文件会被忽略,/etc/cron.allow文件的优先级更高
2、当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,
没有写入此文件的用户可以使用

crontab [选项]
选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务

crontab -e
进入crontab编辑界面,会打开vim编辑你的工作
*****执行的任务

*号含义

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

系统的crontab设置

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

在/etc/下,有着cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/几个文件,
保存着系统每隔一天一小时一个月一周所要执行的脚本,也可以根据情况加入自己的脚本

执行定时任务的方法
1、手工执行定时任务 crontab -e
2、系统定时任务 
     脚本拷到/etc/下的目录中
     卸载/etc/crontab文件中

anacron配置

anacron是用来保证在系统关机的时候错过的定时任务,可以在系统开机之后再执行

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

注意:
1、在老的CentOS版本中,/etc/cron.{daily,weekly,monthly}这些目录即会被cron调用,也会被anacron调用
     容易反复执行
2、在CentOS 6.x中,则只会被anacron调用,避免了重复执行
3、在CentOS 6.x中,anacron不再是服务而是系统命令

cat /etc/anacrontab 
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 最大随机延迟
RANDOM_DELAY=45
# anacron的执行时间范围
START_HOURS_RANGE=3-22

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

Linux_系统管理相关推荐

  1. Linux_进程相关概念

    Linux_进程相关概念 冯诺伊曼体系 我们现在常见的计算机,如笔记本,我们不常见的,如服务器,他们都遵循着冯诺依曼体系 截至到目前为止,我们所认识到的所有计算机,都是由一个个硬件组成 输入单元:包括 ...

  2. Linux_套接字(C++_TCP回显服务器——多进程/线程池(生产者消费者模型)处理多链接请求)

    文章目录 1.多进程版本 服务端 启动服务端 客户端 启动客户端 本地测试 2.多线程版本 3.模板线程池版本 线程池代码: 设计任务Task.h 服务端代码 1.多进程版本 这里选择创建子进程,让子 ...

  3. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)

    本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...

  4. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  5. Linux必学的系统管理命令

    对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进 ...

  6. 网络系统管理之静态路由配置

    下面,我们主要讨论一下网络系统管理中静态路由配置的问题.公司用的服务器种类繁多,有FreeBSD8.1-64bit.windows2003_R2-64bit和cetnos5.5-64bit,而规划的网 ...

  7. Hyper-V Server 2008系统管理实战

    老方发表在[url]www.it168.com[/url]的文章    如需转载,请经我充许后方可.By RickyFang/下里巴人 [IT168 专稿]Hyper-V Server 2008发布有 ...

  8. Linux用户root登录shell时,linux系统管理-定制root用户的Shell环境

    案例需求 --为了更便于对各种系统服务进行管理,并了解服务器的相关运行参数,管理员(root)希望对自己的Shell环境进行定制,以提高系统管理和维护效率,以实验案例来演示: 需求描述 将root用户 ...

  9. 任务管理 linux指令qsub,Linux_前一个投的任务跑完再跑另一个任务_qsub_-hold_jid

    Linux_前一个投的任务跑完再跑另一个任务_qsub_-hold_jid perl program_1.pl input_1.file output_1.file perl program_2.pl ...

最新文章

  1. BZOJ5415:[NOI2018]归程(可持久化并查集,最短路)
  2. vim插件自动补齐_VIM自动补全插件:deoplete
  3. Linux内核源码分析方法
  4. knn 机器学习_机器学习:通过预测意大利葡萄酒的品种来观察KNN的工作方式
  5. 计算机专业实践试题,计算机专业实践综合试题答案..doc
  6. Java代理设计模式(Proxy)的具体实现:静态代理和动态代理
  7. IDEA配置插件,插件使编程更快速
  8. ssh日志审计_linux查看ssh用户登录日志与操作日志
  9. LOL云顶弈记牌易语言源码
  10. 最好的余生:有家回,有人等,有饭吃
  11. 金彩教育:店铺装修色彩怎么搭配
  12. 健身网站php,基于WEB的健身网站的设计与实现
  13. 信息传递(带权并查集求最小环
  14. Exercise – SE Technical Boot Camp Hands-on Exercises
  15. win11桌面出现“了解此图片”如何删除
  16. 基于物联网流量指纹的安全威胁轻量级检测方法
  17. cordova在使用jqmobile中出现的问题(使用$(window).on与window.addEventListener)
  18. flask项目之5:短信验证码发送
  19. scrapy学习笔记(三)-关于动态加载网页的爬取(序)
  20. MODBUS通讯协议和RS232以及RS485通讯协议有什么区别

热门文章

  1. 求二维数组每行元素之和
  2. 2022最新软件测试面试题
  3. 基于安卓平台,客户端视频监控的实现(三)
  4. PBFT -Golang实现详解
  5. 网站商务通与百度商桥的区别
  6. 安卓中dumpsys命令使用
  7. 2001-2022年全国各城市风速数据(逐日、逐月、逐年)
  8. 广东省重点农业龙头企业补贴奖励金及申报条件,补贴50万
  9. 支持生僻字且自动识别utf-8编码的php汉字转拼音类,支持生僻字且自动识别utf-8编码的php汉字转拼音类...
  10. Oracle数据库系统结构一(存储结构)