我想为一个对 Linux 毫无经验的人设置一台 Ubuntu 笔记本电脑,她不想学习更多知识,只想使用一些程序(为家里的一位老成员更换 Windows;她真的很喜欢 ubuntu,觉得它很容易使用,而且很灵敏 :) )。
我想确保所有更新都已应用。我知道(并已启用/设置每天一次全面更新)unattended-upgrades
。但是,我担心如果笔记本电脑的使用时间很短并且谨慎关闭,则无人看管的设备可能无法应用升级。
这种担心是基于现实的吗?
unattended-upgrades
笔记本电脑开机时会尝试立即升级(似乎不是这样,因为apt
每次开机时我仍会安装很多程序,尽管unattended-upgrades
已经设置好了),还是只会在“每天凌晨 1 点”或类似情况下进行升级,在这种情况下可能永远不会被调用?从根 crontab 调用此类脚本(即添加)有
@reboot bash script_update.sh
帮助sudo crontab -e
吗?:
#!/bin/bash
# A little script to:
# - wait that internet is available
# - wait for the automatic software update to be finished running
# - apply the apt-get update and upgrade to the system
# This means that updates are installed automatically without
# asking confirmation. This should be ok for most vanilla uses.
#
# SETUP
#
# set the XX_SET_PATH to the log file
#
# To make it run automatically, put it in crontab:
# sudo crontab -e
# and in the root crontab that gets opened:
# @reboot bash PATH_TO_THE_SCRIPT.sh
function check_online
{
netcat -z -w 5 8.8.8.8 53 && return 1 || return 0
}
function wait_online
{
echo "wait to be online"
declare -i IS_ONLINE=0
while [ $IS_ONLINE -eq 0 ]; do
# We're offline. Sleep for a bit, then check again
sleep 2;
check_online
IS_ONLINE=$?
done
echo "now online"
}
{
echo " "
echo "new reboot"
date
whoami
wait_online
echo "wait for 20 minutes to make sure no conflicting catch of dpkg lock"
sleep 1200
echo "now start update upgrade..."
apt-get update
apt-get upgrade -y
apt-get autoremove
} >> XX_SET_PATH 2>&1
答案1
无人值守升级 (UU) 将在计时器发出指示后立即尝试运行。如果系统在计时器到期时恰好处于关闭状态,则 UU 将在启动期间注意到这一点,并在启动几分钟后运行。
- 您无需添加自己的脚本。UU 开发人员已预见到此用例。
您自己的用例(“我仍然用 apt 安装了很多东西“) 在人们从多个渠道更新时会发生:-security、-updates、第三方存储库等。UU 的默认设置是仅使用 -security。您可以根据需要更改这些设置,但对于普通用户来说通常没有必要。
- 您无需更改 UU 设置来满足您的用途。默认设置似乎适合您设想的用户预期用途。
Firefox 和 Ubuntu 分发的其他网络浏览器(即非 Chrome)通过 -security pocket 进行更新。这意味着您的用户将始终通过 UU 获得最安全的浏览器版本。
建议:为普通用户设置 LTS 版本可能是明智之举,以减少您必须提供的支持量。