练习---shell脚本查看系统所有进程
来源:互联网 发布:讯鸟软件怎么样 编辑:程序博客网 时间:2024/04/20 20:57
#!/bin/bash
#process_info : show the process information on current system as form in "HTML"
#1 获取系统当前时间
#2 查询系统当前所有进程,通过ps aux获取,
#3 规范化输出每个用户当前的进程,及每个进程的当前状况
#output html page to view directly on brower
TITLE="系统程序运行情况明细"
Pro_info=
#报告系统当前时间
report_uptime () {
echo $(uptime)
return
}
#把系统信息存到临时文件,方便以后操作
get_process_info_temp () {
rm processinfo.*
mktemp processinfo.XXX
Pro_info=processinfo.*
ps auxh | sort -k2n > $Pro_info
}
#将创建的临时文件删除
rm_process_info_temp () {
rm processinfo.*
return
}
#统计总的进程数量
count_whole_process () {
cat $Pro_info | wc -l
}
#对tty项进行解析
type_on_tty () {
if [ "?" == $1 ] ; then
echo "无终端进程"
else
echo "终端号:$1"
fi
return
}
#对stat项进行解析
type_on_stat () {
case $1 in
S*) echo "睡眠状态(可中断)"
;;
D*) echo "睡眠状态(不可中断)"
;;
R*) echo "运行状态"
;;
T*) echo "僵尸状态"
;;
X*) echo "死亡状态"
;;
Z*) echo "死进程(结束时没有接受父进程处理)"
;;
W*) echo "页面状态"
;;
*) echo "状态未知"
;;
esac
}
#输出每个进程的相关信息到HTML当中
report_process_info () {
local count=1;
while read user pid cpu men vsz rss tty stat start time command ; do
echo "<PRE>"
cat <<- EOF
NO.$count
-------------------------------------
Command : $command
Username: $user
PID : $pid
CPU(%) : $cpu
Men(%) : $men
Vsz : $vsz
Rss : $rss
Tty : $(type_on_tty $tty)
Stat : $(type_on_stat $stat)
Start : $start
Time : $time
-------------------------------------
EOF
echo "</PRE>"
count=$((count+1))
done < <(cat $Pro_info)
}
write_html_page () {
cat << _EOF_
<HTML>
<META http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<HEAD>
<TITLE>$TITLE</TITLE>
</HEAD>
<BODY>
<CENTER><h1>$TITLE</h1></CENTER>
<P>$TIMESTAMP</P>
$(report_uptime)
<P>当前系统总进程数量为: $(count_whole_process)</P>
$(report_process_info)
</BODY>
</HTML>
_EOF_
return
}
########################################################
#################实际操作流程############################
#获取系统进程信息
get_process_info_temp
#生成相关HTML页面
write_html_page > process.html
#删除临时文件
rm_process_info_temp
#process_info : show the process information on current system as form in "HTML"
#1 获取系统当前时间
#2 查询系统当前所有进程,通过ps aux获取,
#3 规范化输出每个用户当前的进程,及每个进程的当前状况
#output html page to view directly on brower
TITLE="系统程序运行情况明细"
Pro_info=
#报告系统当前时间
report_uptime () {
echo $(uptime)
return
}
#把系统信息存到临时文件,方便以后操作
get_process_info_temp () {
rm processinfo.*
mktemp processinfo.XXX
Pro_info=processinfo.*
ps auxh | sort -k2n > $Pro_info
}
#将创建的临时文件删除
rm_process_info_temp () {
rm processinfo.*
return
}
#统计总的进程数量
count_whole_process () {
cat $Pro_info | wc -l
}
#对tty项进行解析
type_on_tty () {
if [ "?" == $1 ] ; then
echo "无终端进程"
else
echo "终端号:$1"
fi
return
}
#对stat项进行解析
type_on_stat () {
case $1 in
S*) echo "睡眠状态(可中断)"
;;
D*) echo "睡眠状态(不可中断)"
;;
R*) echo "运行状态"
;;
T*) echo "僵尸状态"
;;
X*) echo "死亡状态"
;;
Z*) echo "死进程(结束时没有接受父进程处理)"
;;
W*) echo "页面状态"
;;
*) echo "状态未知"
;;
esac
}
#输出每个进程的相关信息到HTML当中
report_process_info () {
local count=1;
while read user pid cpu men vsz rss tty stat start time command ; do
echo "<PRE>"
cat <<- EOF
NO.$count
-------------------------------------
Command : $command
Username: $user
PID : $pid
CPU(%) : $cpu
Men(%) : $men
Vsz : $vsz
Rss : $rss
Tty : $(type_on_tty $tty)
Stat : $(type_on_stat $stat)
Start : $start
Time : $time
-------------------------------------
EOF
echo "</PRE>"
count=$((count+1))
done < <(cat $Pro_info)
}
write_html_page () {
cat << _EOF_
<HTML>
<META http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<HEAD>
<TITLE>$TITLE</TITLE>
</HEAD>
<BODY>
<CENTER><h1>$TITLE</h1></CENTER>
<P>$TIMESTAMP</P>
$(report_uptime)
<P>当前系统总进程数量为: $(count_whole_process)</P>
$(report_process_info)
</BODY>
</HTML>
_EOF_
return
}
########################################################
#################实际操作流程############################
#获取系统进程信息
get_process_info_temp
#生成相关HTML页面
write_html_page > process.html
#删除临时文件
rm_process_info_temp
0 0
- 练习---shell脚本查看系统所有进程
- 使用shell脚本查看linux所有进程之间的结构
- shell查看系统基本信息脚本
- shell脚本查看系统基本信息
- shell脚本杀死进程及所有子进程
- bash shell脚本之查看系统环境变量
- shell 脚本查看当前系统用户信息
- Shell脚本查看linux系统性能瓶颈
- 【脚本练习】shell脚本
- Linux下查看所有用户(shell脚本获取)
- shell 脚本练习。笔记
- shell脚本程序练习
- shell脚本练习
- shell脚本几个练习
- shell脚本练习
- 练习shell脚本
- Shell脚本简单练习
- [OS] Shell脚本练习
- 网页信息抓取(Java htmlparser)
- QML类型说明-GridView
- Wifi密码破解(rtl8818linux驱动安装)
- Android的AlertDialog详解
- [docker]不通过SSH接入Docker
- 练习---shell脚本查看系统所有进程
- Android TabWidget切换卡的实现应用
- HtmlUnit中屏蔽warnings
- 后台运行python程序 遇到缓冲区问题
- eclipse安装反编译jad插件
- 【Redis 3】Redis数据库的学习与实践—Redis的常用命令及高级应用
- CSDN网站消息系统升级公告
- 我的svn报错 Previous operation has not finished; run 'cleanup' if it was interrupted
- Android init.rc详解