20170915 linux系统管理培训
- 进程管理
程序:通常为二进制程序放在存储媒介中(如光盘、硬盘、软盘、磁带等),以物理文件的形式存在;
进程:正在运行当中的程序,程序被触发后,执行者的权限与属性、程序的程序代码与所有数据等都会被加载到内存中,操作系统并给予这个内存单元一个标识符(PID)。
如图:
那么查看进程请使用命令:ps aux
所有的程序都会产生进程
锁定相关的命令:
ps aux | grep http
#相对的来说,就是grep + 服务名称
- 子进程和父进程
也就是“衍生出来的进程”,当我们登陆系统后,会取得一个bash的shell,然后使用这个bash提供的接口再去执行另一个命令,如/usr/bin/passwd或者touch等,那些另外的命令也会被触发成为PID,这个后来执行命令产生的PID就是“子进程”
例如:
那么如何来做进程管理?
首先进程管理有什么作用?
n 判断服务器的健康状态,了解服务器CPU,内存的占用情况等。
n 查看系统中的所有进程
n 杀死进程
进程的查看ps 和pstree 命令
查看所有进程的命令:
n Ps aux 或者 ps –le
#查看系统中所有进程
n Man ps
#查看命令解释
n Logout
#正常退出用户登录
如何理解ps aux 命令输出的信息
l USER: 该进程是由那个用户产生的。
l PID: 进程的ID号;
l %CPU: 该进程占用CPU资源的百分比,占用越高,进程越消费资源
l %MEM: 该进程占用物理内存的百分比,占用越高,进程越消费资源
l VSZ: 该进程占用虚拟内存的大小,单位KB
l RSS: 该进程占用实际物理内存的大小,单位KB
l TTY: 该进程是在哪个终端中运行的,其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形界面,pts/0-225代表虚拟终端
l STAT: 进程状态,常见的状态有:
R: 运行
S: 睡眠
T: 停止状态
s: 包含子进程
+: 位于后台
l START: 该进程的启动时间
l TIME: 该进程占用CPU 的运算时间,注意不是系统时间
l COMMAND: 产生此进程的命令名
注意:
/sbin/init 的PID 一定是1,它是系统启动运行的第一个进程。(你使用的linux系统不同,文件名称和路径会有区别)
TTY 为? 可以理解为系统进程,因为没有终端
那么在了解一下更简单的命令:pstree
n Pstree 是显示进程树形结构
-p : 查看包括子进程部分,也就是每个进程的PID号
-u : 显示进程的用户
进程的查看-top 命令
Top命令是查看系统健康的重要命令
n 默认每3秒钟,会自动刷新进程状态
选项:
-d 秒数: 指定top命令每隔几秒更新,默认是3秒
-b :使用批处理模式输出,一般和“-n”选项合用
-n次数:指定top命令执行的次数,一般和“-b”选项合用
在top命令的交互模式中可以执行的命令:
?或h:显示交互模式的帮助
P : 以CPU使用率排序,默认就是此项
M : 以内存的使用率排序
N : 以PID排序
q : 退出top
这些选项的用法例如shift + P 才有效果,这是因为命令功能区分大小写
Top 命令下第一行的描述内容:
第一行信息为任务队列信息
12:26:46 是系统当前时间
Up 86 days,13:32 是系统运行时间,本机已经运行了86天13小时32分钟
2 users 表示登录了两个用户
Load average: 0.00,0.00,0.00 表示系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小,如果大于1,系统已经超出负荷。(这里需要注意的是这个1 是单核数,如果是双核则不大于2,以此类推,当内核为4,就不能大于4)
第二行
Tasks:95 total 表示系统中的进程总数
1 running 表示正在运行的进程数
94 sleeping 表示睡眠中的进程
0 stopped 表示正在停止的进程
0 zombie 表示僵尸进程,如果不是0,需要手工检查僵尸进程
第三行
Cpu(s): 0.1%us 表示用户模式占用的CPU百分比
0.1%sy 表示系统模式占用的CPU百分比
0.0%ni 表示改变过优先级的用户进程占用的CPU百分比
99.7%id 表示空闲CPU的CPU百分比
0.1%wa 表示等待输入/输出的进程的占用CPU百分比
0.0%hi 表示硬中断请求服务占用的CPU百分比
0.1%si 表示软中断请求服务占用的CPU百分比
0.0%st 表示st(Steal time)虚拟机时间百分比,就是当有虚拟机时,虚拟机CPU
等待实际CPU的时间百分比
第四行
Mem:625344k total 表示物理内存总量,单位KB
571504k used 表示已经使用的物理内存数量
53840k free 表示空闲的物理内存数量,注意如果使用的是虚拟机就要注意虚拟机被分配的多少
65800K buffers 作为缓冲的内存数量
第五行
交互分区的信息
Swap:524280K total 表示交换分区(虚拟内存)的总大小
0k used 表示已经使用的交互分区的大小
524280k free 表示空闲交换分区的大小
409280k cached 表示作为缓存的交互分区的大小
Top 只能看到部分的进程内容
要想看到所有的进程情况,可以使用
命令:top –b –n 1 > /root/top.log
把top的内容写出到top.log中
# top –b 表示批量模式输出,-n表示使用top 刷新多少次。
命令:vi top.log
#查看文本内容
#输入点击insert,进入输入内容
# esc 退出输入命令
#保存文本 命令:w
#退出文本编辑器使用 命令: :q
一.杀死进程
- kill 命令
kill –l
#查看所有信号
例如使用:kill -1 2235
#重启进程
Kill -9 2236
#强制杀死单一进程
Kill -15 2234
#以正常的步骤结束一项工作
- killall [选项][信号] 进程名
#按照进程名杀死进程
选项:
-i 交互式,询问是否要杀死某个进程
-I 忽略进程名的大小写
- pkill
pkill -9 –t pts/1
#强制杀死从pts/1虚拟机终端登录的进程
按照终端号踢出用户
命令W
#使用w命令查询本机已经登录的用户
三,进程优先级的修改。
- 启动服务是设置优先级
- 修改已经存在的进程的优先级
但是这部分对于一般的系统管理员来说,不太涉及
命令:ps –le
#查询所有进程优先级
PRI代表Priority,Ni代表Nice,两个值都代表优先级,数字越小代表该优先级越高。
NI的值的范围是-20 到19
普通用户调整NI值得范围为0到19
Root用户才能设定进程NI值为负值,也可以调整任何用户的进度。
一.工作管理
命令:jobs
#把进程放入后台
命令tar –zcf etc.tar.gz /etc &
#把命令放入后台,并在后台执行
命令 top
#按下ctrl+z快捷键,放入后台暂停
比如说可以把能持续一段时间的命令放入后台,
例如:我把top命令放入后台执行
命令 top &
命令jobs –l
#显示工作的PID
但是状态是停止的,以为top命令是给用户看的,会有交互动作
注意:“+”号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-”号代表倒数第二个放入后台的工作。
如何把后台的工作放入前台
命令: fg %工作号
参数:
-% 工作号:% 号可以省略,但是注意工作号和PID的区别
恢复到后台运行
命令:bg %工作号
控制台记不住自己文件的路径,可以使用命令find 进行查找
命令 find / -name uwsgi
#查找,根下面名称为uwsgi的文件
例如:
如果让命令脱离终端运行?
比如说我开了一个终端A,后台执行了一个top命令
那么我再开一个终端B,可以查询到之前的那个命令,如果我把终端A 关闭,那么top命令的任务就会也被结束掉
有三种办法可以让命令脱离终端
- 把需要后台执行的命令写入/etc/rc.local文件
- 使用系统定时任务,让系统在指定的时间执行某个后台命令
- 使用nohup命令
来写一个.sh可执行命令文件,里面增加for循环内容(这里可以讲解一下Shell脚本)
文件一类。
输出就分为了两类:标准输出(standard output )和标准错误输出(standard error output)
A: 标准输出:代码为1,使用> 或者>>;
B: 标准错误输出:代码为2,使用2>或者2>>;
其中 > 和>> 的区别:
#如果重定向的文件不存在,那么创建;
#如果文件存在那么清空数据,再写入;
# >输出到一个已经存在的文件中,会覆盖掉原来的内容;
# >>表示在原来的文件数据基础上进行累加;
- 2>&1
# 表示把正确和错误的输出都写入一个文件中(这是针对写入相同文件的特殊写法)
# 分开写入不同的文件方式写为 > /home/right.txt 2> /home/error.txt
- 那么后台执行命令就变成了如下:
- 命令 ll /
#查看系统根目录下面文件名,权限和属性
四.如何做定时任务,去监测脚本再运行如果异常并发送mail--?
例行性工作使用(crontab)
循环执行的例行性工作调度
- Root账号可以限制使用crontab的用户
限制数据方式
/etc/cron.allow
#将可以使用crontab的账号写入其中,如果不在这个文件内账户就不可使用crontab。
/etc/cron.deny
#将不使用crontab的账号写入其中,那么没有记录到这个文件的账号就可以使用crontab
Crontab的语法
# crontab [-u username] [-l|-e|-r]
参数:
-u:只有root才能进行这个任务,就是可以帮其他用户新建/删除crontab工作调度;
-e:编辑crontab的工作内容;
-l:查看crontab的工作内容;
-r:删除所有crontab的工作内容,如果只删除一项,那么请使用-e去删除。
要实现的是,通过定时任务给自己发送mail
- 要配置邮件服务器
首先确认你的系统是什么版本的
命令:cat /proc/version
然后再确认如何来安装mail
先查看是否有安装mail
#直接输入mail命令,如果没有安装会提示无法识别mail命令
#如果有安装那么就可以提示是否有收到mail
安装mail (就是一些包)
命令
Yum install mutt
Yum install swaks
yum install mailx
测试发送mail,但是如果不修改配置文件,那么只能发发本机环境的各个用户了
要发送给外部邮箱,请配置邮件配置文件
例如:
这里需要简单说明命令
Mail root –s “hello”
#表示当前账号下面有接收到的邮件
命令 mail soar.pang@quantacn.com
会进入主题输入
正文输入
要结束正文输入需要先换行打 . 回车后退出
如果想要知道mail里面的内部命令,那么使用
命令 ?
如果要查看账号下面是否有账号mail
命令: mail
# 可显示当前账号下面收到的mail
& 后面可以输入对mail控制的命令
& d 删除mail
& q 退出mail管理
配置mail文件提供接收的邮件服务器
如下:
Cat /etc/mail.rc
#查看文件配置内容
Vi /etc/mail.rc
#编辑配置信息
命令:crontab –e
#此时会进入vi编辑页面,可以编辑工作,每项工作一行。
编辑完成后可以输入:wq进行写入后退出
每项工作格式具有六个字段,每个字段含义如下:
分钟:0~59
小时:0~23
日期:1~31
月份:1~12
周:0~7 其中周是比较有趣的 0 和7 都表示星期天
另外还有一些辅助字符
*(星号):代表任何时候都接受的意思
,(逗号):代表分隔时间段 例如:0 3,6 * * * command
#表示3点、6点各执行一次
-(减号):代表一段时间范围
/n(斜线):n代表数字,表示间隔n个单位的意思。例如: */5 表示每隔5分钟。
20170915 linux系统管理培训的更多相关文章
- Linux视频培训教程
很详尽的Linux培训教程,既包含日常工作常常要用到的实践及技巧,又包含Linux认证及系统管理及架构,讲的很不错.最关键的.这么具体,完整的教程还是免费的.花了点时间拿它整理了下. 第一部分: Li ...
- Linux系统管理远程登录工具PUTTY
PuTTY 简介 PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连线软件.较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植 ...
- 【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP
使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...
- 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...
- 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户
Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...
- 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装
学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...
- 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置
本篇是Linux小白最佳实践第6篇,目的就是让白菜们了解Linux网络是如何配置的.Linux系统在服务器市场占有很大的份额,尤其在互连网时代,要使用计算机就离不开网络. 想每天能听到小妞的语音播报, ...
- Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式
本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...
- 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux
本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...
随机推荐
- iOS shell脚本打包
原文链接:http://www.jianshu.com/p/5abbe0d61cef 参考链接:http://blog.csdn.net/potato512/article/details/52176 ...
- Window应急响应(一):FTP暴力破解
0x00 前言 FTP是一个文件传输协议,用户通过FTP可从客户机程序向远程主机上传或下载文件,常用于网站代码维护.日常源码备份等.如果攻击者通过FTP匿名访问或者弱口令获取FTP权限,可直接上传 ...
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- 用addOnGlobalLayoutListener获取View的宽高
首先,我们在onCreate方法里调用getHeight()和 getWidth()是不能正确获取View的宽高的,因为onCreate方法执行完了,我们定义的控件才会被onMeasure()度量,所 ...
- OpenGL——三维多面体实现
#include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut.h> ...
- scala 模式匹配详解 2 scala里是怎么实现的?
在这篇martin和另外两位模式匹配领域专家的论文里说了模式匹配的几种实现方式,以及scala是选择哪种方式来实现的.http://lampwww.epfl.ch/~emir/written/Matc ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验五:按键模块④ — 点击,长点击,双击
实验五:按键模块④ - 点击,长点击,双击 实验二至实验四,我们一共完成如下有效按键: l 点击(按下有效) l 点击(释放有效) l 长击(长按下有效) l 双击(连续按下有效) 然而,不管哪个实验 ...
- QQ音乐flac音乐转MP6格式怎样实现
很多时候我们所下载的音乐格式都不是MP3格式的,用起来都是有局限性的,因为很多播放器都是支持MP3格式的.很多时候为了方便使用,我们就需要将不同的音乐格式转换为MP3格式的.如flac音乐转MP3的问 ...
- 壁虎书2 End-to-End Machine Learning Project
the main steps: 1. look at the big picture 2. get the data 3. discover and visualize the data to gai ...
- CCPC-Wannafly Winter Camp Day4 Div1 - 咆咆咆哮 - [三分+贪心]
题目链接:https://zhixincode.com/contest/18/problem/I?problem_id=267 题目描述 输入描述 输出描述 一行一个整数表示答案. 样例输入 1 32 ...