[原创]也来贴一个pacman的加速脚本(需要aria2)

回复
wuchuanren
帖子: 99
注册时间: 2008-01-31 16:55
送出感谢: 0
接收感谢: 0
联系:

[原创]也来贴一个pacman的加速脚本(需要aria2)

#1

帖子 wuchuanren » 2008-05-16 12:25

代码: 全选

#!/bin/bash
#
#	NEED  wget and aria2 !!!!
#

#configure:

# CONNECTS = 1..5 for every URL (server)
CONNECTS=3

#TIMEOUT (seconds)
TIMEOUT=15

# MAX_TRIES=0 means unlimited
MAX_TRIES=5

# You can append K or M ; 0=unrestricted
SPEED=0

# FILE_ALLOC can be "prealloc" or "none"
FILE_ALLOC=none

cachedir=/var/cache/pacman/pkg
mirrorlist_file=/etc/pacman.d/mirrorlist

#configure end
getmirror(){
	local mirrorlist
	#output the url to download in $mirror
	while read mirrorlist
	do
		# cut the mirrorlist's item
		#echo $mirrorlist

		# ignore the comment
		mirrorlist="${mirrorlist%%#*}"

		# select out the mirror line
		if [ "${mirrorlist##*=*}" != "$mirrorlist" ] 
		then
			mirrorlist="${mirrorlist#*=}"
			while [	mirrorlist = "${mirrorlist# }" ];do mirrorlist="${mirrorlist# }";done
			while [	mirrorlist = "${mirrorlist% }" ];do mirrorlist="${mirrorlist% }";done
			mirror="${mirror} ${mirrorlist}/${purefilename}"
			#eval echo "${mirrorlist}/${purefilename}"
		fi
	done
} <$mirrorlist_file
if [[ $1 = *.db.tar.gz ]]; then
	wget --passive-ftp -c -O $2 $1
	exit
fi
# compute the global-variable
repo=${1%/*}
repo=${repo%/*}
repo=${repo%/*}
repo=${repo##*/}
purefilename=${1##*/}

getmirror
cd  "$cachedir"
echo ">>>>>> Downloading ${purefilename} <<<<<<<"
eval aria2c -d"${cachedir}" -o"${purefilename}" -s${CONNECTS} -t${TIMEOUT} --max-tries=${MAX_TRIES} --max-download-limit=${SPEED} --file-allocation=${FILE_ALLOC} --allow-overwrite=true --continue ${mirror}

if [ -f "$cachedir/$purefilename.aria2" ]
then
	exit 130
fi
exit 0
大概是由于全世界源不统一,用metalink下载来的东西常常校验错误,选择几个时间比较同步的镜像作为源吧
上次由 wuchuanren 在 2012-07-08 21:47,总共编辑 1 次。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2008-05-16 12:28

勤劳的bash工作者。 :lol:
需要用正则不。 if [[ $1 =~ .*\-.* ]]; then 这样的。

http://eexpress.blog.ubuntu.org.cn/2008 ... %e6%96%ad/
● 鸣学
wuchuanren
帖子: 99
注册时间: 2008-01-31 16:55
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 wuchuanren » 2008-05-16 12:33

哈哈,感谢……
上次由 wuchuanren 在 2012-07-08 21:47,总共编辑 1 次。
XDG3669
帖子: 380
注册时间: 2006-07-10 22:50
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 XDG3669 » 2008-05-16 20:10

哈哈,还是建议用这个!viewtopic.php?t=124355
回复

回到 “Arch发行版”