horizon-check_upgrade.sh
1 |
#!/bin/bash |
---|---|
2 |
#script de verification de mise a jour par rapport aux depots apt officiels |
3 |
#eric seigne <eric.seigne@abuledu.org> janvier 2017 |
4 |
#GNU/GPL v3 |
5 |
|
6 |
LOCALBASE=`tempfile -s csv` |
7 |
LOCALERROR=`tempfile` |
8 |
echo -e "Paquet;Version locale;Version apt.abuledu.org;" >> ${LOCALERROR} |
9 |
|
10 |
if [ -f /etc/lsb-release ]; then |
11 |
. /etc/lsb-release |
12 |
else |
13 |
DISTRIB_CODENAME=lucid |
14 |
fi |
15 |
|
16 |
cd /tmp |
17 |
rm -f "${DISTRIB_CODENAME}" |
18 |
rm -f "${LOCALBASE}" |
19 |
|
20 |
dpkg-query -W -f='${binary:Package};${Version}\n' > ${LOCALBASE} |
21 |
|
22 |
echo -n "Téléchargement en cours du fichier de référence ..." |
23 |
TIMECODE=`date +%s` |
24 |
wget -q http://apt.abuledu.org/${DISTRIB_CODENAME}.csv?version=${TIMECODE} -O ${DISTRIB_CODENAME}.csv |
25 |
echo " [ok]" |
26 |
|
27 |
if [ -f "${DISTRIB_CODENAME}.csv" ]; then |
28 |
for ligne in `cat ${DISTRIB_CODENAME}.csv` |
29 |
do |
30 |
package=`echo ${ligne} | cut -d ";" -f1` |
31 |
version=`echo ${ligne} | cut -d ";" -f2` |
32 |
#on cherche maintenant en local ce paquet pour voir si c'est la meme |
33 |
versionlocale=`grep "^${package};" ${LOCALBASE} | cut -d ";" -f2` |
34 |
if [ -n "${versionlocale}" ]; then |
35 |
if [ "${version}" != "${versionlocale}" ]; then |
36 |
echo -e "${package};${versionlocale};${version};" >> ${LOCALERROR} |
37 |
fi |
38 |
fi |
39 |
done |
40 |
else |
41 |
echo "Erreur de téléchargement, passez sur support@abuledu.org ..." |
42 |
fi |
43 |
|
44 |
if [ -s "${LOCALERROR}" ]; then |
45 |
cat ${LOCALERROR} | column -t -s ";" |
46 |
fi |
47 |
|
48 |
rm -f "${DISTRIB_CODENAME}" |
49 |
rm -f "${LOCALERROR}" |
50 |
rm -f "${LOCALBASE}" |
51 |
|
52 |
echo "Script terminé, si vous n'avez pas d'erreur c'est que ce système est à jour" |
53 |
|