124 lines
1.9 KiB
Bash
Executable File
124 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
WORKDIR=./pkg
|
|
PKGLIST=$WORKDIR/pkglist
|
|
|
|
|
|
#硬限制
|
|
#限制进程最大内存使用100M
|
|
ulimit -Hv 102400
|
|
#限制进程最大虚拟内存为200M
|
|
ulimit -Hv 204800
|
|
#限制进程最大cpu占用时间为1秒
|
|
ulimit -Ht 1
|
|
#程序处理延迟(微秒)
|
|
progress_sleep=500
|
|
|
|
|
|
#初始化环境
|
|
function data_init(){
|
|
|
|
if [ -d $WORKDIR ];then
|
|
rm -rf $WORKDIR/log
|
|
fi
|
|
|
|
mkdir $WORKDIR/log
|
|
|
|
if [ -f $WORKDIR/pkglist ];then
|
|
rm pkglist
|
|
fi
|
|
|
|
}
|
|
|
|
#获取当前安装包列表
|
|
function data_pkglist(){
|
|
|
|
iso_version=`grep -o -E "42|60|80|76|77" /etc/issue`
|
|
|
|
case $iso_version in
|
|
|
|
42)
|
|
pkginfo -i >> $PKGLIST
|
|
;;
|
|
60|80)
|
|
#dpkg -l | awk '{if($1=="ii"){sub(":amd64","",$2);sub("[0-9]:","",$3);print $2"_"$3"_"$4}}' >> $PKGLIST
|
|
awk 'BEGIN{i=0;j=0;k=0}{if($1 == "Package:"){A[i]=$2;i+=1};if($1 == "Version:"){B[j]=$2;j+=1}if($1 == "Architecture:"){C[k]=$2;k=k+1}}END{for(i=0;i<k;i++)printf "%s_%s_%s\n",A[i],B[i],C[i]}' /var/lib/dpkg/status >> pkglist
|
|
;;
|
|
76|77)
|
|
rpm -qa | while read pkglist
|
|
do
|
|
pkg_isoname=`echo $pkglist | awk -F "-[0-9]" '{printf $1}'`
|
|
pkgversion=`ECTYPE_TRANSMIT_NOT_PRESENTho $pkglist | awk -F "$pkgname-" '{printf $2}'`
|
|
echo $pkgname $pkgversion >> $PKGLIST
|
|
done
|
|
;;
|
|
*)
|
|
echo "版本识别失败"
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
#搭建工作环境
|
|
function data_env(){
|
|
|
|
tail -n +39 $0 > $WORKDIR/pkg.tar.gz
|
|
|
|
tar xf $WORKDIR/pkg.tar.gz
|
|
|
|
cd $WORKDIR/pkg
|
|
|
|
}
|
|
|
|
#对对比程序资源进行设置
|
|
function data_set(){
|
|
|
|
echo "设置进程资源"
|
|
|
|
}
|
|
|
|
#启动对比程序
|
|
function data_run(){
|
|
|
|
data_sum=`cat $PKGLIST | wc -l`
|
|
|
|
./scan $data_sum $progress_sleep
|
|
|
|
data_pid=$?
|
|
|
|
}
|
|
|
|
#监视对比程序运行状态
|
|
function data_control(){
|
|
|
|
echo "监视程序运行状态"
|
|
|
|
}
|
|
|
|
#生成检测报告
|
|
function data_report(){
|
|
|
|
echo "生成对比报告"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
function main(){
|
|
|
|
data_init
|
|
data_pkglist
|
|
data_env
|
|
data_set
|
|
data_run
|
|
data_control
|
|
data_report
|
|
|
|
}
|
|
|
|
main
|
|
|
|
exit 0
|