<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eric.schultz</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eric.schultz"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Eric.schultz"/>
	<updated>2026-04-29T02:06:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Finding_the_fastest_mirror&amp;diff=22077</id>
		<title>Finding the fastest mirror</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Finding_the_fastest_mirror&amp;diff=22077"/>
		<updated>2022-07-11T15:43:50Z</updated>

		<summary type="html">&lt;p&gt;Eric.schultz: Only try the mirror&amp;#039;s once - Certain errors will retry inf and hang the script. sh version of echo does not support -e option corrupting the output.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After you install Alpine, you may be wondering how do I figure out the fastest mirror again?&lt;br /&gt;
&lt;br /&gt;
{{Cat|/home/user/fastestmirror|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
data=&amp;quot;&amp;quot;&lt;br /&gt;
for s in $(wget -qO- http://rsync.alpinelinux.org/alpine/MIRRORS.txt); do&lt;br /&gt;
        t=$(time -f &amp;quot;%E&amp;quot; wget -q $s/MIRRORS.txt -O /dev/null 2&amp;gt;&amp;amp;1)&lt;br /&gt;
        echo &amp;quot;$s was $t&amp;quot;&lt;br /&gt;
        data=&amp;quot;$data$t $s\n&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;===RESULTS===&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e $data | sort&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is more advanced implementation.&lt;br /&gt;
{{Cat|/etc/apk/fastest-mirror|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
get_hostname_url() {&lt;br /&gt;
  local n=${1#*://}&lt;br /&gt;
  echo ${n%%/*}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
time_cmd() {&lt;br /&gt;
  local proc=$(cut -d &#039; &#039; -f1 /proc/uptime)&lt;br /&gt;
  local start=&amp;quot;$(echo $proc | cut -d . -f1)$(echo $proc | cut -d . -f2)&amp;quot;&lt;br /&gt;
  $@ &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 || return&lt;br /&gt;
  proc=$(cut -d &#039; &#039; -f1 /proc/uptime)&lt;br /&gt;
  local end=&amp;quot;$(echo $proc | cut -d . -f1)$(echo $proc | cut -d . -f2)&amp;quot; &lt;br /&gt;
  echo $(( $end - $start  ))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
DATA=&amp;quot;&amp;quot;&lt;br /&gt;
MIRRORS=$(wget -qO- &amp;quot;http://rsync.alpinelinux.org/alpine/MIRRORS.txt&amp;quot;)&lt;br /&gt;
DST=/etc/apk/mirrors.txt&lt;br /&gt;
&lt;br /&gt;
#find best&lt;br /&gt;
for URL in $MIRRORS; do&lt;br /&gt;
	TIME=$(time_cmd wget -T 1 -t 1 -q ${URL%/} -O /dev/null)&lt;br /&gt;
	if [ -n &amp;quot;$TIME&amp;quot; ]; then	&lt;br /&gt;
		echo &amp;quot;$(get_hostname_url $URL) was $TIME&amp;quot;&lt;br /&gt;
		DATA=&amp;quot;$DATA$TIME $URL\n&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo $DATA | sort -n | tail -n +2 &amp;gt; $DST&lt;br /&gt;
[ $? = 0 ] &amp;amp;&amp;amp; echo file $DST created&lt;br /&gt;
&lt;br /&gt;
BEST=$(head -n1 $DST | cut -d &#039; &#039; -f2)&lt;br /&gt;
echo &amp;quot;Best mirror is: $BEST&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sed -i -r &#039;s#^http.+/(.+/main)#&#039;${BEST%/}&#039;/\1#&#039; /etc/apk/repositories&lt;br /&gt;
sed -i -r &#039;s#^http.+/(.+/community)#&#039;${BEST%/}&#039;/\1#&#039; /etc/apk/repositories&lt;br /&gt;
sed -i -r &#039;s#^http.+/(.+/testing)#&#039;${BEST%/}&#039;/\1#&#039; /etc/apk/repositories&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]]&lt;/div&gt;</summary>
		<author><name>Eric.schultz</name></author>
	</entry>
</feed>