在 yeeloong 8089d 上安装好 debian 之后,添加 ftp.us.debian.org 做为源安装 GCC 进行到一半时候自己中断了,说是依赖没解决。我删除一些包,打算重新安装关联的包,结果经验不足,把某些包删掉了,系统挂了。不得不重新安装系统。然后用 anheng 的源安装 GCC 竟然自动安装好了。 可是 anheng 的源毕竟是外网,要是有其他需要安装的,下载速度慢,而且万一没钱交网费(这的确会发生)就完蛋了。内网速度快而且免费,那么在内网建立一个源服务器。 登陆进 NAS 服务器 ssh -p 22 nong@192.168.2.11 切换到要存放源的目录 cd /mnt/disk1/update/wed/htdocs/netdl/software/ip033lemoteyeeloong8089d/ 1.下载 由于没有发现 anheng 源提供 rsync 只好用 wget 下载,适当的配置了一些参数 wget -b -c -r -np -t 99999999 -w 3 http://www.anheng.com.cn/loongson/ 下载另外一个目录 wget -b -c -r -np -t 99999999 -w 3 http://www.anheng.com.cn/loongson2f/ 一般 wget 命令不加 -b 参数的时候会在终端上显示进度,上面的命令中 wget 加参数 -b 就会在后台运行,这样即使退出终端,程序也会继续运行,而且在当下目录生成一个 wget-log 文本文件记录进度。 另外,如果你让 wget 在后台运行,但是发现指定文件下载在错误的文件夹了,会导致空间不足,或者不想傻傻等下载完成后移动。可以用这个命令停止在后台运行的 wget 进程。 killall wget 2.察看进度 一般察看后台运行的 wget 进度 cat wget-log 是可以的,可是本次任务中文件实在太多,wget-log 将会非常大。到底有多大呢? 使用命令 ls -lh wget-log 或者 du -sh wget-log 就可以看见文件大小 直接打开这么一个(不断增长的)巨大的文件会消耗很多内存,是不明智的。庆幸的是,有个方法可以只打开后面若干行。 tail -n 124 wget-log 显示最后 124 行。通过这几行就可以判断 wget 的下载进度了。 3.继续下载 下载好上面两个目录之后,打算继续下载 bjlx/ 和 debian/ 这两个目录。可是 robots.txt 阻挡了。所幸找到突破的办法,那就是加上 --execute robots=off 选项wget -b -c -r -np -t 99999999 -w 3 --execute robots=off http://www.anheng.com.cn/bjlx/ wget -b -c -r -np -t 99999999 -w 3 --execute robots=off http://www.anheng.com.cn/debian/ debian/pool/ 下面有很多包,目录非常巨大,可能会导致内存耗尽,内存耗尽也可能是某些字符对 wget 造成的。总之会有不好的事情发生。 可以事先写一个文本,起名字叫 url.txt 吧。然后往里面写入要下载的地址列表,例如 http://www.anheng.com.cn/debian/pool/main/a http://www.anheng.com.cn/debian/pool/main/b http://www.anheng.com.cn/debian/pool/main/c http://www.anheng.com.cn/debian/pool/main/d http://www.anheng.com.cn/debian/pool/main/e 稍微修改一下命令执行 wget -c -r -np -t 99999999 -w 3 --execute robots=off -i url.txt 会运行很长时间的,想要后台运行的话记得加 -b 呢 wget -b -c -r -np -t 99999999 -w 3 --execute robots=off -i url.txt 4.统计数据 总算完成了,这四个目录都会很大,到底有多大呢?我估计会有 600GB 以上 800GB 以下。 4.2文件大小 列出当前目录下所有文件的大小,以及所有文件大小的统计总和。 ls -lht 也可以列出当前文件以及文件夹的大小。这个命令要注意:sh 与 * 之间要有个空格的。 du -sh * 列出 home 目录所有文件大小的总和命令为: du -s /home 或 du -sh /home 4.3文件数量 查看统计当前目录下文件的个数 ls -l | grep "^-" | wc -l 查看统计当前目录下文件的个数,包括子目录里的。 ls -lR| grep "^-" | wc -l 查看某目录下文件夹(目录)的个数,包括子目录里的。 ls -lR| grep "^d" | wc -l loongson$ ls -lR| grep "^-" | wc -l 1443 loongson2f$ ls -lR| grep "^-" | wc -l 3171 bjlx$ ls -lR| grep "^-" | wc -l 1030 debian$ ls -lR| grep "^-" | wc -l 295477 真是不容易啊。 5.同步源 因为 anheng 是同步 debian 的源的,所以稍后可以直接 rsync 同步 debian 的源。不用再去 anheng 了。 rsync -Prtvhz --exclude-from="/mnt/disk1/update/wed/htdocs/netdl/software/ip033lemoteyeeloong8089d/list.txt" ftp.us.debian.org::debian /mnt/disk1/update/wed/htdocs/netdl/software/ip033lemoteyeeloong8089d/www.anheng.com.cn/debian/ 上面这个是使用 rsync 程序同步 debian 源到本地,比 debian 官方的 rsync 脚本简单多了。 其中 --exclude-from="/mnt/disk1/update/wed/htdocs/netdl/software/ip033lemoteyeeloong8089d/list.txt" 这段是用一个 list.txt 文件,过滤其中标明的目录和文件。内容大概这样 dists doc indices project pool/contrib/ *_source.deb *_all.deb *_amd64.deb *_arm64.deb *_armel.deb *_armhf.deb *_hurd-i386.deb *_i386.deb *_ia64.deb *_kfreebsd-amd64.deb *_kfreebsd-i386.deb *_mips.deb *_mips64el.deb *_powerpc.deb *_ppc64el.deb *_s390.deb *_s390x.deb *_sparc.deb *.udeb pool/non-free/ tools 有些目录被我过滤了,还有过滤了很多架构,当然没有过滤源代码包 和 mipsel 架构。 6.最后 到 yeeloong 8089d 上编辑 /etc/apt/sources.list 文件。注释原文件所有内容,写两行类似的,主要是主机地址搞成本地的:deb http://192.168.2.11/netdl/software/ip033lemoteyeeloong8089d/www.anheng.com.cn/debian wheezy main non-free contrib deb-src http://192.168.2.11/netdl/software/ip033lemoteyeeloong8089d/www.anheng.com.cn/debian wheezy main non-free contrib 编辑此文件后保存,使用 sudo apt-get update 命令,更新软件列表。 |