一般 Ubuntu 系统默认的软件更新源在安装或在更新软件时速度都不是很快,甚至非常的慢,所以很多 Ubuntu 用户都会把软件更新源更换为国内的高速镜像源,参考Ubuntu 18.04更换国内高速源一文。然而,我们在新部署服务器,或者配置一些不安装 GUI 的工作站的时候,就没有办法想有 GUI 的系统那样通过打开网站,然后复制粘贴修改更新源的配置文件,因此,我们将编写一个 shell 脚本,用于一键自动化备份配置文件,更新配置源文件,以及自动执行软件更新升级操作。
为完成以上目的,下文将先了解基本原理,再编写可用的 shell 自动化脚本,所以本文主要内容如下: 1.shell 脚本写入文件操作 2.shell 脚本备份文件操作 3.shell 脚本更新操作 4.完整脚本代码
1.shell 文件写入操作 shell 脚本编写的时候,可以在文件的开头声明所使用的 bash 路径,代码如下: #! /bin/bash Linux 下写入文件的操作可以配合 echo 命令完成,值得注意的是,写入文件的操作有两种方式,分别是 > 和 >>,它们的区别如下: 1].>> 将内容写入文件,覆盖原有内容 2].> 将内容写入文件,追加到文件尾部 那么,使用 shell 脚本向文件写入内容的方法如下: #! /bin/bash # <CONTENT> 为需要写入内容 # <FILENAME> 为写入目标文件名 echo <CONTENT> >> <FILENAME> echo <CONTENT> >> <FILENAME>
2.shell 文件备份操作 要修改系统的配置文件,最好把原来的配置文件备份一下,这样万一有什么情况,也可以通过恢复备份文件来修复。使用 shell 脚本完成备份文件和直接备份差不多,以备份更新源为例子,代码如下: #! /bin/bash # 这里的脚本需要配合 sudo 使用 cp /etc/apt/sources.list /etc/apt/sources.list.bak
3.shell 脚本完成 apt 更新操作 我们的目标是想在新服务器或者工作站安装系统完成后,能自动完成替换更新源以及执行一次系统软件、包升级,那么就需要使用 shell 完成 apt 更新的操作,具体代码如下: #! /bin/bash apt update # 更新源 apt upgrade -y # 更新软件
4.完成的 shell 脚本代码 #! /bin/bash cp /etc/apt/sources.list /etc/apt/sources.list.bak echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse > /etc/apt/sources.list echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse >> /etc/apt/sources.list echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse >> /etc/apt/sources.list echo deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse >> /etc/apt/sources.list apt update apt upgrade -y 注:以上使用的是Ubuntu 16.04版本,如果你使用其它的Ubuntu版本,比如Ubuntu 18.04就更换为它的源。
相关主题 |