练习---shell脚本查看系统所有进程
2014-09-12 17:27
441 查看
#!/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
相关文章推荐
- 以Android L读取系统所有logcat并写入文件为例分析Android 以添加系统进程的方式申请selinux的权限执行shell脚本,以及avc:dined应该怎么申请权限
- 使用shell脚本查看linux所有进程之间的结构
- 使用Shell脚本对Linux系统和进程资源进行监控
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 使用Shell脚本对Linux系统和进程资源进行监控
- Linux下查看所有用户(shell脚本获取)
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 转:使用Shell脚本对Linux系统和进程资源进行监控
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控
- 使用Shell脚本对Linux系统和进程资源进行监控(转)
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- 使用Shell脚本对Linux系统和进程资源进行监控
- 【信息采集】IBM AIX系统硬件信息查看命令(shell脚本)
- 使用Shell脚本对Linux系统和进程资源进行监控
- IBM AIX系统硬件信息查看命令(shell脚本)
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- Aix 通过shell脚本kill杀指定进程,比如杀所有java进程
- 【转】使用Shell脚本对Linux系统和进程资源进行监控