update
This is an old revision of the document!
Update the software with one command
A big addition to this is to add an entry in /etc/sudoers.d/Update that lets the script below run without a password.
- Update
#!/bin/bash # # This allows updating software by a single common command on all my machines Logs=~/.Logs/$(date +"%Y/%m/%d") mkdir -p ${Logs} LogFile=${Logs}/$(hostname)-$(date +"%T.txt") ############################################################################# ### SRJ 2015-03-27 This script allows a user to update the local ### ### machine without further credentials, it requires that a file be ### ### created in /etc/sudoers.d/update with the lines below; ### ### ## Installation and management of software ### ### Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, \ ### ### /usr/bin/yum, /usr/bin/rkhunter, /usr/bin/needs-restarting ### ### %wheel ALL = NOPASSWD: SOFTWARE ### ### -or this, as appropriate- ### ### Cmnd_Alias SOFTWARE_UPDATE = /usr/local/bin/apt, /usr/bin/apt-get ### ### %sudo ALL = NOPASSWD: SOFTWARE_UPDATE ### ### This allows all users in the 'wheel' group to update the server. ### ############################################################################# source /etc/os-release case ${PRETTY_NAME} in "NethServer 7.9.2009") System="RH" ;; "Linux Mint 21"|"Linux Mint 21.1") System="Deb" ;; *) System="Unknown" echo "This system is unknown, please update this script and add a check" echo "for the pattern ${PRETTY_NAME} to ease updating." echo "Then update https://wiki.cyli.org/doku.php?id=update" exit 127 ;; esac if [[ ${System} == "Deb" ]]; then sudo apt update | tee -a ${LogFile} sudo apt upgrade -y | tee -a ${LogFile} sudo apt autoremove -y | tee -a ${LogFile} if [ -f /var/run/reboot-required ] ; then echo 'This system needs to be rebooted!' | tee -a ${LogFile} else echo "This system doesn't need rebooting." | tee -a ${LogFile} fi elif [[ ${System} == "RH" ]]; then sudo /usr/bin/yum -y update | tee -a ${LogFile} # sudo /usr/bin/rkhunter --propupd | tee -a ${LogFile} sudo /usr/bin/yum autoremove | tee -a ${LogFile} Something='' Something=$(sudo /usr/bin/needs-restarting) if [[ ! -z $Something ]]; then echo 'This machine needs to be restarted!' | tee -a ${LogFile} else echo 'No restart is required.' | tee -a ${LogFile} fi fi
update.1683667937.txt.gz · Last modified: by steve
