113 lines
1.7 KiB
Bash
Executable File
113 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
WORKNOW=`pwd`
|
|
WORKDIR=$WORKNOW/pkg
|
|
PKGLIST=$WORKDIR/pkglist
|
|
|
|
|
|
#限制进程最大内存使用100M
|
|
ulimit -m 102400
|
|
#限制进程最大虚拟内存为200M
|
|
ulimit -v 204800
|
|
#限制进程最大cpu占用时间为1秒
|
|
ulimit -t 1
|
|
#程序处理延迟(微秒)
|
|
progress_sleep=500
|
|
|
|
|
|
#初始化环境
|
|
function data_init(){
|
|
if [ -d $WORKDIR ];then
|
|
rm -rf $WORKDIR
|
|
fi
|
|
|
|
mkdir $WORKDIR
|
|
}
|
|
|
|
#获取当前安装包列表
|
|
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 | awk -F "-" '{for(i=1;i<NF-1;i++){printf("%s",$i);if(i!=NF-2)printf("-");};print " "$(NF-1)"-"$NF}' >> $PKGLIST
|
|
;;
|
|
*)
|
|
echo "版本识别失败"
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
}
|
|
|
|
#搭建工作环境
|
|
function data_env(){
|
|
|
|
#tail -n +39 $0 > $WORKDIR/pkg.tar.gz
|
|
|
|
#tar xf $WORKDIR/pkg.tar.gz
|
|
|
|
cp ./scan $WORKDIR
|
|
cp ./fileinfo.db $WORKDIR
|
|
cd $WORKDIR
|
|
|
|
}
|
|
|
|
#对对比程序资源进行设置
|
|
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
|