« 解密(批处理)BAT文件另类解决找不到本地连接方法 »

一个自动更新及制作离线升级包的Shell

我的第一个Shell脚本:此脚本理论支持所有Debian系统,如Ubuntu,Elive,实际在Ubuntu下测试通过,此脚本最大的优点就是去除了多余的包,因为离线升级包会因系统的升级越来越多,特别是一些老的没用的包,通过手动删除基本不可能,因为太多了,还要挑出来哪个旧的哪个新的。有了这个脚本,所有旧的文件全部自动删除,以便携带,不过此脚本最大的缺点就是制作离线包是通过多次复制和删除而成的,硬盘操作比较多,而且须要有足够的硬盘空间。源码如下:

echo "Update the sources"
apt-get update
echo "Update the system & soft"
apt-get dist-upgrade -y
apt-get upgrade -y


if   [   -e   ~/edgy   ] 
then 
    echo   ~/"edgy already existed"  
else
    mkdir ~/edgy
fi
echo "Copy files"
#cp -a /var/cache/apt/archives/*   ~/edgy
cd ~/
echo "Make Packages.gz"
dpkg-scanpackages edgy /dev/null |gzip >edgy/Packages.gz

mkdir ~/temp_djhui_net
copy ~/edgy/Packages.gz ~/temp_djhui_net
cd ~/temp_djhui_net
gzip  -d  Packages.gz
cat Packages |grep ^Filename > temp
sed -e 's/Filename: /cp \~\//g' temp >temp1

sed -e 's/.deb/.deb \~\/new_djhui\//g' temp1 >temp2

mkdir ~/new_djhui

chmod +x temp2

./temp2

cp ~/edgy/Packages.gz ~/new_djhui

rm -rf ~/edgy
rm -rf ~/temp_djhui_net

mv ~/new_djhui ~/edgy



 

 

Share

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。