2018/4/16 15:09:41当前位置推荐好文程序员浏览文章

因为 Ubuntu 默认的软件升级源,安装或者者升级软件的速度都比较慢,我们通常使消耗 Ubuntu 都会将软件升级源换为国内的镜像源。然而,我们在新部署服务器,或者者配置少量不安装 GUI 的工作站的时候,就没有办法想有 GUI 的系统那样通过打开网站,而后复制粘贴修改升级源的配置文件,因而,我们将编写一个 shell 脚本,消耗于一键自动化备份配置文件,升级配置源文件,以及自动执行软件升级更新操作。

为完成以上目的,下文将先理解基本原理,再编写可消耗的 shell 自动化脚本,主要内容如下:

  • shell 脚本写入文件操作
  • shell 脚本备份文件操作
  • shell 脚本升级操作
  • 完整脚本代码

shell 文件写入操作

shell 脚本编写的时候,能在文件的开头公告所使消耗的 bash 路径,代码如下:

#! /bin/bash

Linux 下写入文件的操作能配合 echo 命令完成,值得注意的是,写入文件的操作有两种方式,分别是 >>>,它们的区别如下:

  • >> 将内容写入文件,覆盖原有内容
  • > 将内容写入文件,追加到文件尾部

那么,使消耗 shell 脚本向文件写入内容的方法如下:

#! /bin/bash# <CONTENT> 为需要写入内容# <FILENAME> 为写入目标文件名echo <CONTENT> >> <FILENAME>echo <CONTENT> >> <FILENAME>

shell 文件备份操作

要修改系统的配置文件,最好把原来的配置文件备份一下,这样万一有什么情况,也能通过恢复备份文件来修复。使消耗 shell 脚本完成备份文件和直接备份差不多,以备份升级源为例子,代码如下:

#! /bin/bash# 这里的脚本需要配合 sudo 使消耗cp /etc/apt/sources.list /etc/apt/sources.list.bak

shell 脚本完成 apt 升级操作

我们的目标是想在新服务器或者者工作站安装系统完成后,可以自动完成替换升级源以及执行一次系统软件、包更新,那么就需要使消耗 shell 完成 apt 升级的操作,具体代码如下:

#! /bin/bashapt # 升级源apt upgrade -y # 升级软件

完成的 shell 脚本代码

#! /bin/bashcp /etc/apt/sources.list /etc/apt/sources.list.bakecho deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse > /etc/apt/sources.listecho deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse >> /etc/apt/sources.listecho deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse >> /etc/apt/sources.listecho deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse >> /etc/apt/sources.listapt updateapt upgrade -y
网友评论