【Shell脚本】将Ubuntu(Debian)的更新过程脚本化!
首先
为了简化每次都需要使用命令行进行的基于Debian的LinuxOS的更新操作,我将其转化为一个shell脚本。通过将其转换为脚本,您可以使用cron等定时执行工具来定期执行更新操作,这对于使用基于Debian的LinuxOS的人来说绝对是一个推荐的选择。
2: 简述
●以下是本脚本的功能要求
– 进行操作系统上软件包的更新和升级
– 在更新后,删除不必要的软件包
– 修改[/etc/sudoers]以免在执行sudo时需要输入密码
– 在脚本执行后,重新启动操作系统
– 使用本脚本的环境:
・Debian
・Ubuntu
3:介绍脚本
如果方便的话,请您也可以在以下的GitHub链接中查看本脚本的内容。
https://github.com/chibiharu/Linux-Update-Scripts/tree/master/Debian
3.1: 如何使用
为了让任何用户都能以root权限使用此脚本,您需要在执行之前修改[/etc/sudores]。
另外,请将脚本的权限设置为644或更高。
① 给用户授予密码权限
为避免在需要sudo权限的事件中被询问密码,我们需要进行以下设置。
首先,运行visudo命令打开[/etc/sudores]文件。
在打开的文件的最后一行添加代码,并保存文件。
$ sudo visudo
$ sudo cat /etc/sudores
~~~ 略 ~~~
<ユーザ名> ALL=(ALL) NOPASSWD:ALL #<--左記コードを最下行に追記する
请在任意目录下执行以下命令以创建脚本。
# スクリプトを生成
$ touch auto_update_to_debian.sh
# スクリプトに使用権限を付与
$ chmod 777 auto_update_to_debian.sh
在vim中打开脚本,将<项目编号3-2>的脚本代码粘贴进去。
$ vim auto_update_to_debian.sh
$ cat auto_update_to_debian.sh
<項番3-2>のスクリプトコード>
3.2:脚本
3.2: Script
以下是本脚本。
您可以直接复制粘贴以使用。
#######################################################################################
#
# <スクリプト名>
# Ubuntu(Debian) - 自動アップデートスクリプト
#
# <概要>
# アップデート処理を行う
#
# <更新履歴>
# 20210920 - 新規作成
#
#######################################################################################
#!/bin/bash
#####################################################################
## 事前設定
#####################################################################
# 今日の日付を取得
today=$(date "+%Y%m%d")
######################################################################
## パラメータ設定
######################################################################
# ログディレクトリ
log_DIR="/var/log/update_log"
# ログファイル
log_FILE="/var/log/update_log/update_${today}.log"
######################################################################
## 必要リソースの生成
######################################################################
# ログディレクトリの生成
if [ ! -d $log_DIR ]; then
sudo mkdir ${log_DIR}
fi
# ログファイルの生成
if [ ! -e $log_FILE ]; then
sudo touch ${log_FILE}
fi
######################################################################
## 関数:アップデート処理
######################################################################
# アップデート処理
all_update () {
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get autoremove -y
sudo apt-get clean -y
sudo apt-get autoclean -y
sudo apt-get check -y
}
######################################################################
## 実行前処理
######################################################################
# ログ出力日時のフォーマットを yyyy/mm/dd hh:mm:ss に設定する
start_time=$(date '+%Y/%m/%d %T')
# 実行ログ見出し(開始)の出力
echo "##### $start_time start update #####" | sudo tee -a ${log_FILE}
######################################################################
## アップデート処理
######################################################################
# アップデート処理
all_update | sudo tee -a ${log_FILE}
######################################################################
## 実行後処理
######################################################################
# ログ出力日時のフォーマットを yyyy/mm/dd hh:mm:ss に設定する
end_time=$(date '+%Y/%m/%d %T')
# 実行ログ見出し(終了)の出力
echo "###### $end_time end update ######" | sudo tee -a ${log_FILE}
# 再起動
sudo reboot
总结
如果不在意日志文件的输出位置等细节的话,可以直接复制粘贴这个脚本来使用。
由于更新处理会对操作系统产生一定影响,我建议保留执行日志可能会更好。
如果您正在使用Debian系操作系统,希望您能够使用本脚本并充分利用它。