#!/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> $PKGLIST ;; 76|77) rpm -qa | awk -F "-" '{for(i=1;i> $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