20170915 linux系统管理培训

  1. 进程管理

程序:通常为二进制程序放在存储媒介中(如光盘、硬盘、软盘、磁带等),以物理文件的形式存在;

进程:正在运行当中的程序,程序被触发后,执行者的权限与属性、程序的程序代码与所有数据等都会被加载到内存中,操作系统并给予这个内存单元一个标识符(PID)。

如图:

那么查看进程请使用命令:ps aux

所有的程序都会产生进程

锁定相关的命令:

ps aux | grep http

#相对的来说,就是grep + 服务名称

  1. 子进程和父进程

也就是“衍生出来的进程”,当我们登陆系统后,会取得一个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

一.杀死进程

  1. kill 命令

kill –l

#查看所有信号

例如使用:kill -1 2235

#重启进程

Kill -9 2236

#强制杀死单一进程

Kill -15 2234

#以正常的步骤结束一项工作

  1. killall  [选项][信号] 进程名

#按照进程名杀死进程

选项:

-i 交互式,询问是否要杀死某个进程

-I 忽略进程名的大小写

  1. pkill

pkill -9 –t pts/1

#强制杀死从pts/1虚拟机终端登录的进程

按照终端号踢出用户

命令W

#使用w命令查询本机已经登录的用户

三,进程优先级的修改。

  1. 启动服务是设置优先级
  2. 修改已经存在的进程的优先级

但是这部分对于一般的系统管理员来说,不太涉及

命令: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命令的任务就会也被结束掉

有三种办法可以让命令脱离终端

  1. 把需要后台执行的命令写入/etc/rc.local文件

  1. 使用系统定时任务,让系统在指定的时间执行某个后台命令
  2. 使用nohup命令

来写一个.sh可执行命令文件,里面增加for循环内容(这里可以讲解一下Shell脚本)

文件一类。

输出就分为了两类:标准输出(standard output )和标准错误输出(standard error output)

A: 标准输出:代码为1,使用> 或者>>;

B:  标准错误输出:代码为2,使用2>或者2>>;

其中 > 和>>  的区别:

#如果重定向的文件不存在,那么创建;

#如果文件存在那么清空数据,再写入;

# >输出到一个已经存在的文件中,会覆盖掉原来的内容;

# >>表示在原来的文件数据基础上进行累加;

  1. 2>&1

# 表示把正确和错误的输出都写入一个文件中(这是针对写入相同文件的特殊写法)

# 分开写入不同的文件方式写为 > /home/right.txt   2>  /home/error.txt

  1. 那么后台执行命令就变成了如下:

  1. 命令 ll  /

#查看系统根目录下面文件名,权限和属性

四.如何做定时任务,去监测脚本再运行如果异常并发送mail--?

例行性工作使用(crontab)

循环执行的例行性工作调度

  1. 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

  1. 要配置邮件服务器

首先确认你的系统是什么版本的

命令:cat /proc/version

然后再确认如何来安装mail

先查看是否有安装mail

#直接输入mail命令,如果没有安装会提示无法识别mail命令

#如果有安装那么就可以提示是否有收到mail

安装mail (就是一些包)

命令

Yum install mutt

Yum install swaks

yum install mailx

测试发送mail,但是如果不修改配置文件,那么只能发发本机环境的各个用户了

要发送给外部邮箱,请配置邮件配置文件

例如:

这里需要简单说明命令

Mail root –s “hello”

#表示当前账号下面有接收到的邮件

命令 mail [email protected]

会进入主题输入

正文输入

要结束正文输入需要先换行打 .   回车后退出

如果想要知道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分钟。

时间: 2024-12-20 18:22:57

20170915 linux系统管理培训的相关文章

linux - 系统管理培训

linux - 系统管理培训下载:http://feixueteam.net/thread-430-1-2.html

Linux视频培训教程

很详尽的Linux培训教程,既包含日常工作常常要用到的实践及技巧,又包含Linux认证及系统管理及架构,讲的很不错.最关键的.这么具体,完整的教程还是免费的.花了点时间拿它整理了下. 第一部分: Linux RHCE认证系统具体解释(主要针对RHCE认证) 第二部分: 实践与技巧(主要针对工作中用到的知识及技能.假设仅仅是满足日常工作,这部分就够了! ) 第三部分: RHEL企业级Linux服务全攻略(主要针对系统管理员,系统架构师) ++++++++++++++++++++++++++++++

UNIX/Linux 系统管理技术手册阅读(一)

从现在开始,给自己定了一个任务,每天看一段<UNIX/Linux 系统管理技术手册 第4版 >,中英对照着看,以此加强自己的英文阅读能力! 2016.8.8 16:30-17:30 SECTION ONE BASIC ADMINISTRATION 1 Where to Start 第一部分 基本管理技术 第1章 从何处入手 An awful lot of UNIX and Linux information is available these days,so we've designed t

Linux系统管理(二)(网络服务)

点击下载:Linux系统管理(二)(网络服务)

Linux系统管理(一)

点击下载:Linux系统管理(一)

linux学习 – linux系统管理命令

常用的Linux系统管理命令 whoami 显现当前操作的用户,如下图: hostname 显示主机名,如下图: top 动态显示当前耗费资源的进程信息,如下图: du 查看当前目录下,文件的大小 du -sh * df 查看磁盘大小 df -h 带有单位显示磁盘信息 ps ps -ef|grep java 查询java进程的PID kill 杀死进程,能够先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程.kill -9 pid 未完待续,后续补充~~ 原文链接:http:/

linux系统管理常用命令--top

linux系统管理常用命令--top top显示进程所占的系统资源,具体用法介绍如下: top命令用于动态监控进程所占的系统资源,默认每隔3秒变一次.它的特点是把占用系统资源(CPU.内存.磁盘I/O等)最高的进程放到最前面!上例中,top命令打印出了很多信息.包括系统负载(loadaverage).进程数(Tasks).CPU使用情况.内存(Mem)使用情况以及交换分区使用情况. 其中,VIRT这一项表示进程所占的虚拟内存,RES这一项为进程所占的真实内存大小,而%MEM这一项为使用内存的百分

Linux 系统管理04--账号管理

Linux系统管理04--账号管理 一.用户账号管理 1.用户账号概述 (1)用户账号的常见分类: 1>超级用户:root uid=0 gid=0 权限最大. 2>普通用户:uid>=500 做一般权限的系统管理,权限有限.(500<uid<60000) 3>程序用户:1=<uid<500 为了提升系统安全性,为了支持所对应服务对系统资源 的使用,不能用于登录系统或管理系统. (2)UID:用户标识 (3)用户账号文件 1>  /etc/passwd

Linux系统管理期末考试小结

这学期主要讲Linux系统管理,内容分为六章:了解并安装Linux系统,文件和目录管理,用户.组和权限管理,磁盘与文件系统管理,系统软件包管理,系统进程和服务管理.期末考试要求每个学生在自己的笔记本电脑里新建虚拟机,安装rhel6系统,并设为桥接模式,然后按照考题要求进行实践操作.最后评分时,我编写了一个可以自动评分的脚本,并将脚本程序在我电脑的Linux虚拟机里设为NFS共享,然后依次在每个学生的虚拟机通过NFS共享,复制脚本到本地进行评分.试题和脚本我已在附件里共享,有兴趣的朋友可以下载练习