位置: 编程技术 - 正文
推荐整理分享Shell脚本实现自动检测修改最快的Ubuntu软件源(shell脚本实现自动化巡检报警发送邮箱),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:shell脚本自动化,shell 自动执行脚本,shell脚本实现自动部署,shell脚本自动化,shell脚本实现自动部署,shell脚本自动化,shell脚本实现自动部署,shell脚本实现自动截图,内容如对您有帮助,希望把文章链接给更多的朋友!
每次装好Ubuntu,对于大多数用户来说,首先要做的事就是手动修改/etc/apt/sources.list文件,将里面的官方软件源地址更换为自己学校或者公司的软件源。当我们更换一个工作环境后,可能伴随着又要替换旧的软件源地址。
笔者觉得这样每次手动更改软件源是一件及其麻烦重复的劳动,于是编写了一个自动更新最快软件源的脚本,从此一劳永逸。
原理
最直观的想法就是:对各个软件源进行测速,选出最快的那个,之后将其替换为新的软件源。
那么如何对各个软件源测速呢?有两种方法:
一、用ping命令 测量其平均响应时间 选出响应时间最短的那个
二、用wget命令 测量下载一个文件的总时间 选出耗时最少的那个
那么这两种方法有什么区别呢?我们该用哪个呢?
前者选出的是响应时间最优的,后者选出的是下载速度最快的。我们都知道软件源的作用是供客户端下载更新软件,所以当然是后者的方法更为准确,但笔者最终选择了前者作为测速方案,因为前者的用户体验更好且代码简单易懂。设想,如果我们采用后者,那么需要从每个软件源下载一个文件,并且这个文件不能太小,否则无法区分他们的速度,那么一个显而易见的情况是脚本需要运行较长的时间。
虽然存在某些软件源可能响应时间很短,而下载速度却很慢的情况,但经过笔者的多次实验,发现这样的情况并不常见。
实现
首先测试用户网络状态
利用
取出其平均响应时间 如果speed == “” 则说明网络不通,提示用户,且退出程序。 否则,说明网络正常,继续执行。
检测软件源列表文件是否存在
若不存在,提示用户,且退出程序。
对每个软件源地址进行测速
在测速之前清空上次运行的测速结果文件,之后将每个软件源的测速结果(源地址 平均响应时间)写入测速结果文件
对测速结果进行排序
对每行记录 按照平均响应时间升序排列
选出最快的软件源
通过取已排序列表中的第一条,选出最快的软件源
询问用户是否要使用该软件源
用户确认后,先对用户之前的软件源进行备份,然后再替换。
getfastmirror.sh脚本源代码:
sources_mirrors.list源码:
让Linux下的cron以秒为单位执行shell脚本的3种方法 需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢?第一种方法:当然首先想到的是写一个触
Linux下统计当前文件夹下的文件个数、目录个数 1)统计当前文件夹下文件的个数ls-l|grep"^-"|wc-l2)统计当前文件夹下目录的个数ls-l|grep"^d"|wc-l3)统计当前文件夹下文件的个数,包括子文件夹里的ls-lR|grep"^-"
写出健壮Bash Shell脚本的一些技巧总结 许多人用Shell脚本完成一些简单任务,而且变成了他们生命的一部分。不幸的是,shell脚本在运行异常时会受到非常大的影响。在写脚本时将这类问题最
友情链接: 武汉网站建设