Something like;
update reboot
update shutdown
or just update to install the updates and do nothing else.
I managed this with good old DOS many years ago and started to look up how to do this with Linux, I have to say that the vast majority of instructions are based up using foo and bar and are not the easiest things in the world to understand, here's one of the easier examples:
$ mytest foo bar quux
There are 3 arguments to mytest: foo bar quux
first argument: foo
second argument: bar
third argument: quux
here they are again: foo bar quux
I really can't work out how that helps me but it gave me a starting point.
So in plain language here's what I want to do, I've created a script with:
sudo nano /bin/mtupdate
The main part of the script checks for updates and installs the updates:
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
It then goes onto check what additional parameters have been passed and this is the bit that caused me heartache.
So if I run mtupdate shutdown it does the above and then this bit
# checking for shutdown parameter
if [ "$1" = "shutdown" ]; then
echo "Shutting Down in 10 seconds"
# gives you a chance to change your mind
echo "Press CTRl+C to abort"
sleep 10
echo "Shutting Down"
# shuts down
shutdown -h now
else
if
# checks for reboot parameter
if [ "$1" = "reboot" ]; then
echo "Rebooting in 10 seconds"
echo "Press CTRl+C to abort"
sleep 10
echo "Rebooting"
shutdown -r now
else
# checks for shut down parameter
if [ "$1" = "shutdown" ]; then
echo "Shutting Down in 10 seconds"
echo "Press CTRl+C to abort"
sleep 10
echo "Shutting Down"
shutdown -h now
else
# no parameters
clear
echo .
echo.
echo "Updates Completed, please reboot as soon as you can"
fi fi
You have to have a fi at the end for every if in the list
The end product looks like this:
# mtupdate reboot or shutdown
echo "Running Update"
apt-get update
echo "Running Upgrade"
apt-get upgrade -y
echo "Running Dist Upgrade"
apt-get dist-upgrade -y
echo "Running Cleanup"
apt-get autoremove -y
apt-get install -fy
# checking for reboot parameter
if [ "$1" = "reboot" ]; then
echo "Rebooting in 10 seconds"
echo "Press CTRl+C to abort"
sleep 10
echo "Rebooting"
shutdown -r now
else
# checking for shutdown parameter
if [ "$1" = "shutdown" ]; then
echo "Shutting Down in 10 seconds"
echo "Press CTRl+C to abort"
sleep 10
echo "Shutting Down"
shutdown -h now
else
# no parameters entered
clear
echo .
echo .
echo "Updates Completed, please reboot as soon as you can"
fi fi
To finish it off I ran
sudo chmod +x /bin/mtupdate
To make it executable
My suggestion to the people that write help stuff is to use a proper example, don't use foo bar quux as this means bugger all to people like me.
My next bit of scripting is going to revolve around taking two parameters and running something based on them, such as
mtbackup source destination
Where mtbackup runs something like rsync or cp or mv
I'll come to that next time round
No comments:
Post a Comment