《 Linux操作系统》实验指导/实验五:进程管理 《 Linux操作系统》实验指导 实验五:进程管理 、实验目的 掌握进程的基本概念 2、掌握 Linux操作系统中进程管理的方法 3、掌握Linu操作系统中进程监控的方法 4、掌握Linu操作系统的PROC文件系统。 二、实验学时 2学时 三、实验类型 验证性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机1台,计算机接入实验室局域网,且使用固定IP地址 云服务器:每人配备计算机1台、云服务器1台,云服务器提供SSH方式的远程管理。 2、软件 Windows7操作系统,安装 Mware Workstation10+、 PuTty软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、进程的基本概念; 2、PROC文件系统的基本原理 3、 Linux操作系统中进程管理的基本原理: 4、 Linux操作系统中进程调度的基本原理。 六、预备知识 1、ps是最常用的监视进程的命令,通过 ps aux命令我们可以看到当前系统上运行的所有 进程的信息,请详述paux命令得到的某条记录中各个字段的含义 要求: 请查阅相关资料,回答上述问题,并将答案填写到实验报告册中。 管理科学与工程学科/共8页第1页
《Linux 操作系统》实验指导 / 实验五:进程管理 管理科学与工程学科 / 共 8 页,第 1 页 《Linux 操作系统》实验指导 实验五:进程管理 一、实验目的 1、掌握进程的基本概念; 2、掌握 Linux 操作系统中进程管理的方法; 3、掌握 Linux 操作系统中进程监控的方法; 4、掌握 Linux 操作系统的 PROC 文件系统。 二、实验学时 2 学时 三、实验类型 验证性 四、实验需求 1、硬件 单机虚拟化:每人配备计算机 1 台,计算机接入实验室局域网,且使用固定 IP 地址。 云服务器:每人配备计算机 1 台、云服务器 1 台,云服务器提供 SSH 方式的远程管理。 2、软件 Windows 7 操作系统,安装 VMware Workstation 10+、PuTTY 软件。 3、网络 支持对互联网的访问。 4、工具 无 五、实验理论 1、进程的基本概念; 2、PROC 文件系统的基本原理; 3、Linux 操作系统中进程管理的基本原理; 4、Linux 操作系统中进程调度的基本原理。 六、预备知识 1、ps 是最常用的监视进程的命令,通过 ps aux 命令我们可以看到当前系统上运行的所有 进程的信息,请详述 ps aux 命令得到的某条记录中各个字段的含义。 要求: 请查阅相关资料,回答上述问题,并将答案填写到实验报告册中
《 Linux操作系统》实验指导/实验五:进程管理 2、Linκ操作系统中常见的进程管理命令有哪些?请査阅相关资料,完成表1-1进程管理命令 表1-1进程管理命令一览表 常见命令 作用 常见命令 作用 要求: 请查阅相关资料,完成表1-1的填写,至少需要填写8条常见的命令,并将答案填写到实验 报告册中 七、实验任务 1、完成进程管理 2、完成进程调度 3、理解PROC文件系统 八、实验步骤 1、实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学 (1)单机虚拟化场景下开展实验教学 实验场景: 每位学生通过物理主机上的虚拟化软件 VMwareworkstation安装 UbuntuServer虚拟操作系统 虚拟操作系统 UbuntuServer配备固定PP地址,并开启SSH远程管理服务 实验准备: ①启动虚拟化软件 VMwareworkstation并附加上 UbuntuServer操作系统 ②配置 UbuntuServer操作系统的网络,并在虚拟主机上使用Ping命令进行网络连通性测试 ③在虚拟主机上安装 openSSH,ufw开启 openSSH服务,并设置ufw的规则为允许172162x/24 的主机访问,开放22端口。 ④虚拟主机后台运行,通过物理主机上的 PuTTY软件,连接 UbuntuServer操作系统 (2)云服务器场景下开展实验教学 实验场景 在云服务器为学生安装部署Linx操作系统,每个操作系统配备固定IP地址,并开启SSH远 程管理服务,并把root用户权限和远程访问信息提供给学生。 管理科学与工程学科/共8页第2页
《Linux 操作系统》实验指导 / 实验五:进程管理 管理科学与工程学科 / 共 8 页,第 2 页 2、Linux 操作系统中常见的进程管理命令有哪些?请查阅相关资料,完成表 1-1 进程管理命令 一览表。 表 1-1 进程管理命令一览表 常见命令 作用 常见命令 作用 … … … … … 要求: 请查阅相关资料,完成表 1-1 的填写,至少需要填写 8 条常见的命令,并将答案填写到实验 报告册中。 七、实验任务 1、完成进程管理; 2、完成进程调度; 3、理解 PROC 文件系统。 八、实验步骤 1、实验场景与实验环境准备 本实验可根据实验室的具体条件,在单机虚拟化和云服务器两种场景下开展实验教学。 (1)单机虚拟化场景下开展实验教学 实验场景: 每位学生通过物理主机上的虚拟化软件 VMwareworkstation 安装 UbuntuServer 虚拟操作系统, 虚拟操作系统 UbuntuServer 配备固定 IP 地址,并开启 SSH 远程管理服务。 实验准备: ①启动虚拟化软件 VMwareworkstation 并附加上 UbuntuServer 操作系统; ②配置 UbuntuServer 操作系统的网络,并在虚拟主机上使用 Ping 命令进行网络连通性测试; ③在虚拟主机上安装openSSH,ufw。开启openSSH服务,并设置ufw的规则为允许172.16.2.x/24 的主机访问,开放 22 端口。 ④虚拟主机后台运行,通过物理主机上的 PuTTY 软件,连接 UbuntuServer 操作系统。 (2)云服务器场景下开展实验教学 实验场景: 在云服务器为学生安装部署 Linux 操作系统,每个操作系统配备固定 IP 地址,并开启 SSH 远 程管理服务,并把 root 用户权限和远程访问信息提供给学生
《 Linux操作系统》实验指导/实验五:进程管理 实验准备: 学生使用 Windows7操作系统开展实验学习,使用 PuTTY软件根据教师提供的云服务器 访问信息远程访问实验用的 Linux操作系统 2、进程管理 (1)查看当前系统信息 (2)查看指定用户的信息 (3)在Linⅸx操作系统中,有很多跟系统任务有关的命令。例如坞、bg、jobs等 #用在一个命令的最后,让这个命令后台运行 ctrl+z #将正在执行的程序挂起 #查看当前在后台运行的命令 g[作业号] #将程序调至前台运行 bg[作业号] #将程序调至后台运行 nohup command&#将程序后台运行 要求 编写she‖脚本让 mysql开机自启动并后台运行井将具体的she‖命令填写到实验报告册中 (4)监视进程:ps命令。pS命令有很多参数,并且这些参数可以进行组合 #长格式输出 #按用户名和启动时间的顺序来显示进程 #用任务格式来显示进程 #显示所有用户的所有进程 #显示无控制终端的进程 #显示运行中的进程 #显示系统上运行的所有进程的信息 #查看父进程I和进程优先级 (5)使用 ps aux命令查看程序的进程 #实现分页查看进程信息 #查看mysq进程的相关信息 (6)即时跟踪进程信息:top命令 top #即时跟踪进程信息 #按CPU占用情况排序,由大到小 #切换到显示进程和CPU状态的信息 #改变两次刷新时间间隔,以秒为单位 #按内存占用大小排序,由大到小 #以进程ID大小排序,由大到小 #输入要杀死的进程ID (7)查看占用文件的进程:lsof命令 Isof #查看所有文件的进程信息 Isof /proc/ #查看占用指定文件目录的进程和用户 Isof /sbin/init #查看占用指定文件的进程和用户 #查看占用指定端口的进程 lsof-a- u root-ctxt#查看root用户打开的txt类型的文件 Isof-i4 #查看使用IP4通信的进程 管理科学与工程学科/共8页第3页
《Linux 操作系统》实验指导 / 实验五:进程管理 管理科学与工程学科 / 共 8 页,第 3 页 实验准备: 学生使用 Windows7 操作系统开展实验学习,使用 PuTTY 软件根据教师提供的云服务器 访问信息远程访问实验用的 Linux 操作系统。 2、进程管理 (1)查看当前系统信息 w (2)查看指定用户的信息 w root (3)在 Linux 操作系统中,有很多跟系统任务有关的命令。例如 fg、bg、jobs 等 & #用在一个命令的最后,让这个命令后台运行 ctrl+z #将正在执行的程序挂起 jobs #查看当前在后台运行的命令 fg [作业号] #将程序调至前台运行 bg [作业号] #将程序调至后台运行 nohup command & #将程序后台运行 要求: 编写 Shell 脚本让 mysql 开机自启动并后台运行,并将具体的 Shell 命令填写到实验报告册中。 (4)监视进程:ps 命令。ps 命令有很多参数,并且这些参数可以进行组合 ps l #长格式输出 ps u #按用户名和启动时间的顺序来显示进程 ps j #用任务格式来显示进程 ps a #显示所有用户的所有进程 ps x #显示无控制终端的进程 ps r #显示运行中的进程 ps aux #显示系统上运行的所有进程的信息 ps lax #查看父进程 ID 和进程优先级 (5)使用 ps aux 命令查看程序的进程 ps aux | more #实现分页查看进程信息 ps aux | grepmysqld #查看 mysql 进程的相关信息 (6)即时跟踪进程信息:top 命令 top #即时跟踪进程信息 P #按 CPU 占用情况排序,由大到小 t #切换到显示进程和 CPU 状态的信息 s #改变两次刷新时间间隔,以秒为单位 M #按内存占用大小排序,由大到小 N #以进程 ID 大小排序,由大到小 K #输入要杀死的进程 ID (7)查看占用文件的进程:lsof 命令 lsof #查看所有文件的进程信息 lsof /proc/ #查看占用指定文件目录的进程和用户 lsof /sbin/init #查看占用指定文件的进程和用户 lsof -i:22 #查看占用指定端口的进程 lsof -a -u root -c .txt #查看 root 用户打开的 txt 类型的文件 lsof -i 4 #查看使用 IPv4 通信的进程
imx操作系统》实验指导/实验五:进程管理4 Isof-1@[P地址] #查看和指定IP地址通信的进程 要求: (1)详细解释使用w命令、 ps lax命令、top命令、lsof命令得到的某条记录中各个字段的 (2)使用ps命令查看 apache服务进程信息。 (3)使用top命令查看进程的内存信息。 (4)使用lso命令查看用户root打开的sh类型的文件。 请按照上述要求,回答上述问题,并将具体的操作命令和答案填写到实验报告册中。 3、进程调度 (1)nice命令 nice命令可以在启动程序时设置其谦让度,高谦让度意味着低优先级,谦让度的值应该在 20+19之间浮动 o nice命令修改的谦让度值是相对的,通过nice命令设置的谦让度值的大小为nice 命令的参数的数值加上默认谦让度值。 nice -n[谦让值]程序名#在程序启动时设置谦让度 (2) renice命令 renIce命令可以在进程运行时调整其谦让度值, renice调整的谦让度值的大小为 renice命令中 参数的数值 renice[谦让度绝对值]PD#对正在运行的程序进行谦让度值得变更 (3)向进程发送信号:kl命令、klll命令 kill l-singal-pi #通过pid号来向程序发送信号 killall i程序名 #通过程序的名字,直接杀死所有的进程 4、PROC文件系统 PROC是一个特殊的文件系统,/PROC目录下存放着与内核有关的系统状态信息,在系统运行 的时候,内核会随时向这个目录写入数据。ps和top命令就是从这个地方读取数据。通过ls/PROC 可以查看这个目录下的进程信息 #通过pid号来向程序发送信号 /proc/meminfo #通过程序的名字,直接杀死所有的进程 #已加载的文件系统的列表 proc/devices #可用设备的列表 proc/version #内核版本 /proc/stat #系统的不同状态 /proc/uptime #系统启动的时间长度 oc/net #网络协议状态信息 要求 请查阅相关资料,简述ls/PRoC命令得到的某条记录中各个字段的含义,并将答案填写到实 验报告册中。 5、进程管理实例 (1)追踪SSH服务进程 SSH是建立在应用层和传输层基础上的安全协议,通过SSH服务可以有效地防止远程管理过 程中的信息泄露问题。通过对SSH服务进程的监控可以使我们更好地保障 Linux账户安全。 管理科学与工程学科/共8页第4页
《Linux 操作系统》实验指导 / 实验五:进程管理 管理科学与工程学科 / 共 8 页,第 4 页 lsof -i @[IP 地址] #查看和指定 IP 地址通信的进程 要求: (1)详细解释使用 w 命令、ps lax 命令、top 命令、lsof 命令得到的某条记录中各个字段的 含义。 (2)使用 ps 命令查看 apache 服务进程信息。 (3)使用 top 命令查看进程的内存信息。 (4)使用 lsof 命令查看用户 root 打开的 sh 类型的文件。 请按照上述要求,回答上述问题,并将具体的操作命令和答案填写到实验报告册中。 3、进程调度 (1)nice 命令 nice 命令可以在启动程序时设置其谦让度,高谦让度意味着低优先级,谦让度的值应该在 -20~+19 之间浮动。nice 命令修改的谦让度值是相对的,通过 nice 命令设置的谦让度值的大小为 nice 命令的参数的数值加上默认谦让度值。 nice -n [谦让值]程序名 #在程序启动时设置谦让度 (2)renice 命令 renice 命令可以在进程运行时调整其谦让度值,renice 调整的谦让度值的大小为 renice 命令中 参数的数值。 renice[谦让度绝对值] PID #对正在运行的程序进行谦让度值得变更 (3)向进程发送信号:kill 命令、killall 命令 kill [-singal] -pid #通过 pid 号来向程序发送信号 killall 程序名 #通过程序的名字,直接杀死所有的进程 4、PROC 文件系统 PROC 是一个特殊的文件系统,/PROC 目录下存放着与内核有关的系统状态信息,在系统运行 的时候,内核会随时向这个目录写入数据。ps 和 top 命令就是从这个地方读取数据。通过 ls /PROC/ 可以查看这个目录下的进程信息。 /proc/cpuinfo #通过 pid 号来向程序发送信号 /proc/meminfo #通过程序的名字,直接杀死所有的进程 /proc/mount #已加载的文件系统的列表 /proc/devices #可用设备的列表 /proc/version #内核版本 /proc/stat #系统的不同状态 /proc/uptime #系统启动的时间长度 /proc/net #网络协议状态信息 要求: 请查阅相关资料,简述 ls /PROC/命令得到的某条记录中各个字段的含义,并将答案填写到实 验报告册中。 5、进程管理实例 (1)追踪 SSH 服务进程 SSH 是建立在应用层和传输层基础上的安全协议,通过 SSH 服务可以有效地防止远程管理过 程中的信息泄露问题。通过对 SSH 服务进程的监控可以使我们更好地保障 Linux 账户安全
《 Linux操作系统》实验指导/实验五:进程管理 通过lsof-i4| grep sshd命令我们可以查看系统中占用SSH服务的进程,分析记录的字段 属性如表1-2所示 表1-2字段属性值一览表 COMMAND PID USER TYPE 进程的名称 进程标识符 进程所有者 文件描述符 文件类型 DEVICE SIZE NODE NAME 指定磁盘的名称 文件的大小 索引节点 打开文件的确切名称 要求 (1)编写She脚本对SSH服务进程进行监控,当使用SSH服务远程连接 Linux主机时系 统将记录远程主机的IP地址、用户名、登录时间信息,并将该信息记录到日志文件 /ar/og/ userconfig/ SSHlogin log”中。 (2)编写She‖!脚本对SSH服务进程进行监控,当同一用户在多个远程终端同时登录时,系 统将记录远程主机的IP地址、用户名、登录时间信息,并将该信息记录到日志文件 /ar/og/ userconfig/ SSHloginsecurity log”中 请按照上述要求,进行具体实验,并将She脚本和日志文件格式填写到实验报告册中 (2)查看 apache服务进程的运行情况 Liux操作系统中通常使用 apache作为web服务器,所以对 apache服务进程进行监控显 得尤为重要。 ①查看 apache服务进程数 ps-efIgrephttpdwc-l ②查看 apache服务进程的CPU使用率 psauxigrePhttpd|awk'(prints3)' ③查看 apache服务进程的并发连接请求数及其TCP连接状态 netstat-n awk/tcp(++S(SNF] END (for(a in S)print a, S(a] 要求 1)编写Shel脚本每隔1秒钟对 apache服务进程数进行采样,并将该信息记录到日志文 件“Nar/og/ apache2/ apachesum.Csv"中 (2)编写She脚本每隔1秒钟对 apache服务进程占用的cPU使用率进行采样,并将该信 息记录到日志文件“/Nar/og/ apache2/ apacheinfo.csv中 (3)使用 Win SCP工具将上述(1)中的日志文件"/ar/og/ apache2/ apachesumcsv 复制到本地计算机中,并使用ExCe工具对该文件中的数据进行分析,绘制出 apache服务进 程数的折线统计图 请按照上述要求,进行具体实验,并将She脚即本、csv文件格式和 apache服务进程数的折 线统计图填写到实验报告册中 (3)查看进程的CPU运行情况 CPU是计算机的运算核心和控制核心,对CPU的运行情况进行监控可以让我们掌握系统 健康的情况。 ①查看所有进程的CPU使用率 top- n ll grep id aw-F“”‘{ print$4} 管理科学与工程学科/共8页第5页
《Linux 操作系统》实验指导 / 实验五:进程管理 管理科学与工程学科 / 共 8 页,第 5 页 通过 lsof -i 4 | grep sshd 命令我们可以查看系统中占用 SSH 服务的进程,分析记录的字段 属性如表 1-2 所示: 表 1-2 字段属性值一览表 COMMAND PID USER FD TYPE 进程的名称 进程标识符 进程所有者 文件描述符 文件类型 DEVICE SIZE NODE NAME 指定磁盘的名称 文件的大小 索引节点 打开文件的确切名称 要求: (1)编写 Shell 脚本对 SSH 服务进程进行监控,当使用 SSH 服务远程连接 Linux 主机时系 统将记录远程主机的 IP 地址、用户名、登录时间信息,并将该信息记录到日志文件 “/var/log/userconfig/SSHlogin.log”中。 (2)编写 Shell 脚本对 SSH 服务进程进行监控,当同一用户在多个远程终端同时登录时,系 统将记录远程主机的 IP 地址、用户名、登录时间信息,并将该信息记录到日志文件 “/var/log/userconfig/SSHloginsecurity.log”中。 请按照上述要求,进行具体实验,并将 Shell 脚本和日志文件格式填写到实验报告册中。 (2)查看 apache 服务进程的运行情况 Linux 操作系统中通常使用 apache 作为 web 服务器,所以对 apache 服务进程进行监控显 得尤为重要。 ①查看 apache 服务进程数 ps –ef | grep httpd | wc -l ②查看 apache 服务进程的 CPU 使用率 ps aux | grep httpd | awk ‘{print $3}’ ③查看 apache 服务进程的并发连接请求数及其 TCP 连接状态 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 要求: (1)编写 Shell 脚本每隔 1 秒钟对 apache 服务进程数进行采样,并将该信息记录到日志文 件“/var/log/apache2/apachesum.csv”中。 (2)编写 Shell 脚本每隔 1 秒钟对 apache 服务进程占用的 CPU 使用率进行采样,并将该信 息记录到日志文件“/var/log/apache2/apacheinfo.csv”中。 (3)使用 WinSCP 工具将上述(1)中的日志文件“/var/log/apache2/apachesum.csv” 复制到本地计算机中,并使用 Excel 工具对该文件中的数据进行分析,绘制出 apache 服务进 程数的折线统计图。 请按照上述要求,进行具体实验,并将 Shell 脚本、csv 文件格式和 apache 服务进程数的折 线统计图填写到实验报告册中。 (3)查看进程的 CPU 运行情况 CPU 是计算机的运算核心和控制核心,对 CPU 的运行情况进行监控可以让我们掌握系统 健康的情况。 ①查看所有进程的 CPU 使用率 top -n 1| grep id | awk -F “,” ‘{print $4}’