Remote updates on debian

Καλησπέρα,

 

Παρακάτω ακολουθεί ένα script το οποίο  ελέγχει ένα debian like OS για updates και αν βρει τα εγκαθηστά.

 

Απαραίτητη προυπόθεση ο root θα πρέπει να έχει ssh certificate για να κάνει login χωρίς να χρειαστεί να δώσει τον κωδικό πρόσβασης.

Επίσης οι remote servers δηλώνονται στο /tmp/remote.txt file.

 

#!/bin/sh

SSH=$(which ssh)
APT=$(which apt)
APTGET=$(which apt-get)
USERNAME='root'
FILE='/tmp/remote.txt'

ID=`id -ru`

if [ $ID -ne 0 ]
then
echo "You must be root or use sudo in order to execute this script"
exit
fi

#LOCAL_ETH=`ip ad sh dev eth0|grep -w inet|awk '{print $2}'|cut -d\/ -f1`
#LOCAL_WRL=`ip ad sh dev wlan0|grep -w inet|awk '{print $2}'|cut -d\/ -f1`

if [ ! -e $FILE ]
then
echo "$FILE does not exists"
exit
fi

REMOTE=`cat $FILE`

if [ x$REMOTE = "x" ]
then
echo "No remote servers assigned"
exit
else
echo "Remote servers found..."
for servers in $REMOTE
do
echo -n "Checking if ssh is working on $servers..."
$SSH [email protected]$servers exit || results="failed"
if [ x$results = "xfailed" ]
then
echo "Failed"
exit
else
echo "OK"
fi
done
fi

for server in $REMOTE
do
echo "Checking server $server for updates"
$SSH [email protected]$server $APTGET update > /dev/null
count=`$SSH [email protected]$server $APT list --upgradable 2>/dev/null|grep -vi listing|wc -l`
if [ $count -eq 0 ]
then
echo "System is up-to-date"
else
echo "Updates found"
echo "==============================================================================="
pkgs=`$SSH [email protected]$server $APT list --upgradable 2>/dev/null| grep -vi listing|cut -d\ -f1`

for i in $pkgs
do
echo $i
done
echo "==============================================================================="
echo "Total packages for update: $count"
echo ""
echo "In one minute the updates will be applied"
sleep 60
echo "Start system upgrade on server $server"; $SSH [email protected]$server $APTGET -qqq dist-upgrade -y
fi
done

 

 

Εικόνα: Maras
Maras
Απουσιάζω!
Registered UserΣυχνός σχολιαστής
Μέλος από: 17 Ιουλ 2013
Πόντοι: 940

Ωραίος, καλή φάση.