sec-updater: Write to log only if at least one update is found.

This commit is contained in:
Andreas Steffen
2017-09-07 14:54:41 +02:00
parent 311d931aef
commit 94bdd463d8
2 changed files with 98 additions and 19 deletions
+89 -12
View File
@@ -1,17 +1,23 @@
#!/bin/sh
DIR="/etc/pts"
DISTS_DIR="$DIR/dists"
DATE=`date +%Y%m%d-%H%M`
UBUNTU="http://security.ubuntu.com/ubuntu/dists"
UBUNTU="http://security.ubuntu.com/ubuntu"
UBUNTU_VERSIONS="xenial"
UBUNTU_DIRS="main multiverse restricted universe"
UBUNTU_ARCH="binary-amd64"
DEBIAN="http://security.debian.org/dists"
DEBIAN_VERSIONS="jessie"
DEBIAN="http://security.debian.org"
DEBIAN_VERSIONS="jessie wheezy"
DEBIAN_DIRS="main contrib non-free"
DEBIAN_ARCH="binary-amd64"
RASPIAN="http://archive.raspberrypi.org/debian"
RASPIAN_VERSIONS="jessie wheezy"
RASPIAN_DIRS="main"
RASPIAN_ARCH="binary-armhf"
CMD=/usr/sbin/sec-updater
CMD_LOG="$DIR/$DATE-sec-update.log"
CMD_LOG="$DIR/logs/$DATE-sec-update.log"
DEL_LOG=1
mkdir -p $DIR/dists
cd $DIR/dists
@@ -25,11 +31,11 @@ do
mkdir -p $v-security/$a $v-updates/$a
for d in $UBUNTU_DIRS
do
wget $UBUNTU/$v-security/$d/$a/Packages.xz -O $v-security/$a/Packages-$d.xz
wget -nv $UBUNTU/dists/$v-security/$d/$a/Packages.xz -O $v-security/$a/Packages-$d.xz
unxz -f $v-security/$a/Packages-$d.xz
wget $UBUNTU/$v-updates/$d/$a/Packages.xz -O $v-updates/$a/Packages-$d.xz
wget -nv $UBUNTU/dists/$v-updates/$d/$a/Packages.xz -O $v-updates/$a/Packages-$d.xz
unxz -f $v-updates/$a/Packages-$d.xz
done
done
done
done
@@ -42,9 +48,24 @@ do
mkdir -p $v-updates/$a
for d in $DEBIAN_DIRS
do
wget $DEBIAN/$v/updates/$d/$a/Packages.bz2 -O $v-updates/$a/Packages-$d.bz2
wget -nv $DEBIAN/dists/$v/updates/$d/$a/Packages.bz2 -O $v-updates/$a/Packages-$d.bz2
bunzip2 -f $v-updates/$a/Packages-$d.bz2
done
done
done
done
# Download Raspian distribution information
for v in $RASPIAN_VERSIONS
do
for a in $RASPIAN_ARCH
do
mkdir -p $v-raspian/$a
for d in $RASPIAN_DIRS
do
wget -nv $RASPIAN/dists/$v/$d/$a/Packages.gz -O $v-raspian/$a/Packages-$d.gz
gunzip -f $v-raspian/$a/Packages-$d.gz
done
done
done
@@ -54,16 +75,72 @@ for f in xenial-security/binary-amd64/*
do
echo "security: $f"
$CMD --product "Ubuntu 16.04 x86_64" --file $f --security >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
echo
for f in xenial-updates/binary-amd64/*
do
echo "updates: $f"
echo "updates: $f"
$CMD --product "Ubuntu 16.04 x86_64" --file $f >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
echo
for f in jessie-updates/binary-amd64/*
do
echo "security: $f"
$CMD --product "Debian 8.0 x86_64" --file $f --security >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
for f in wheezy-updates/binary-amd64/*
do
echo "security: $f"
$CMD --product "Debian 7.0 x86_64" --file $f --security >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
for f in jessie-raspian/binary-armhf/*
do
echo "security: $f"
$CMD --product "Debian 8.0 armv7l" --file $f --security >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
for f in wheezy-raspian/binary-armhf/*
do
echo "security: $f"
$CMD --product "Debian 7.11 armv7l" --file $f --security >> $CMD_LOG 2>&1
if [ $? -eq 0 ]
then
DEL_LOG=0
echo $DEL_LOG
fi
done
# Delete log file if no security updates were found
if [ $DEL_LOG -eq 1 ]
then
rm $CMD_LOG
echo "no security updates found"
fi