renzq
By:
renzq

Updating with a startup script.

August 15, 2015 825 views
Linux Commands Linux Basics Debian

So i'm trying to make it whenever I log into my root account on a certain box it runs this script
echo "$(tput setaf 1)Welcome, $(tput setab 0)Quinn!$(tput sgr 0)"
echo "Checking for updates..."
apt-get update 2>&1 >/dev/null
echo "$(tput setaf 2)Done!$(tput sgr 0)"
Now i have all of that working the way i want it too, but is there a way to make it so it can also print out a line if there are updates available?

1 Answer

Hello,

Well I think something is missing here as update doesn't actually update anything other than the repositories on file. apt-get upgrade is what does the work.

So you would have to run apt-get -y upgrade to actually upgrade your system. Note this is generally NOT RECOMMENDED as the -y means to go ahead with the upgrade regardless of the results. This could update software you don't want updated.

I personally, would add an apt-get upgrade to the end of your script, with maybe a message.

#!/bin/bash

echo "$(tput setaf 1)Welcome, $(tput setab 0)Quinn!$(tput sgr 0)"
echo "Checking for updates..."
sudo apt-get update 2>&1 >/dev/null
echo "$(tput setaf 2)Done!$(tput sgr 0)"
echo "Running upgrade now. Check to ensure compatibility and approve the update."
sudo apt-get upgrade

My script includes sudo as I don't have a user that runs apt-get without it. But you could remove that if you don't need sudo.

The additions give a quick message to tell me what my script wants (always recommend this) and then runs the upgrade with the output to the screen. This allows me to then confirm the process and see what will actually be upgraded. It still hides the long list of output from apt-get update which is generally not needed.

I didn't have it run on login, but did run it manually, here is the output from my script on a droplet. Forgive me if I missed the mark, but I'm assuming you don't actually need to know if apt-get update worked or not, as that doesn't actually update the system.

Have another answer? Share your knowledge.