Files
it_school/Bash_scripting/updates2.sh
Ionel Andrei Cataon ad4a4cf8f6 Refacere repo
2026-02-12 14:14:46 +02:00

39 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
release_file=/etc/os-release
logfile=/var/log/updater.log
errorlog=/var/log/updater_errors.log
check_exit_status() {
local status=$?
local command_name=$1
if [ $status -ne 0 ]; then
echo "$(date): An error occurred during $command_name (exit code: $status). Check $errorlog." | tee -a $logfile
exit 1
fi
}
echo "$(date): Starting update process..." >> $logfile
if grep -q "Ubuntu" $release_file || grep -q "Debian" $release_file; then
apt update >> $logfile 2>> $errorlog
check_exit_status "apt update"
apt dist-upgrade -y >> $logfile 2>> $errorlog
check_exit_status "apt dist-upgrade"
apt autoremove -y >> $logfile 2>> $errorlog
check_exit_status "apt autoremove"
apt autoclean >> $logfile 2>> $errorlog
check_exit_status "apt autoclean"
echo "$(date): Update completed successfully!" | tee -a $logfile
# Optional: Check if reboot needed
if [ -f /var/run/reboot-required ]; then
echo "$(date): Reboot required for updates to take effect." | tee -a $logfile
fi
else
echo "This system is not Ubuntu or Debian-based. Exiting." | tee -a $logfile
exit 0
fi