Files
SIC/code/pkg.sh
2023-02-28 09:33:09 +08:00

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