===== Update Linux Remotely =====
{{tag>Linux}}
ssh-copy-id root@matx01lins02.nerdydrunk.net
ssh root@matx01lins01.nerdydrunk.net "yum -y upgrade"
ssh root@matx01lins01.nerdydrunk.net "reboot"
ssh root@matx01lins01.nerdydrunk.net "rpm -qa kernel && uname -a"
ssh root@matx01lins01.nerdydrunk.net "yum -y erase kernel-2.6.32-504.el6.x86_64"
ssh root@matx01lins01.nerdydrunk.net "cd ./vmware-tools-distrib/ && ./vmware-install.pl -d"
\\
The following script can be used to receive an email when updates are available on a Linux system that uses YUM. This could also easily be modified to work on an other type of Linux system.
[tingalls@MATX01LIMO01 ~]$ cat check-updates.sh
#!/bin/bash
#
# Create a diretory /mnt/scratch and add this file to the root crontab
#
### [ec2-user@ip-10-4-0-247 ~]$ sudo crontab -l
### 2 2 * * * /home/ec2-user/check-updates.sh
#
if [[ $EUID -ne 0 ]]; then
echo -e "\nUnfortunetly this command must be run as root.\n"
exit 1
fi
hstring="`uname -n` available updates"
date > /mnt/scratch/update-report.txt
echo -e "" >> /mnt/scratch/update-report.txt
yum update --assumeno --skip-broken | sed -n -e '/===/,$p' | sed -e '/Exiting on user Command/,$d' >> /mnt/scratch/available-updates.txt
if grep -i package /mnt/scratch/available-updates.txt
then
#echo -e "\n\nUpdates available.\n\n"
cat /mnt/scratch/available-updates.txt >> /mnt/scratch/update-report.txt
echo -e "\n" >> /mnt/scratch/update-report.txt
mail -s "$hstring" USERNAME@DOMAIN.COM < /mnt/scratch/update-report.txt
else
#echo -e "\n\nNo updates available.\n\n"
cd
fi
rm /mnt/scratch/available-updates.txt
rm /mnt/scratch/update-report.txt
[tingalls@MATX01LIMO01 ~]$