2 # sysadmin-check-version-arch - vérifie la version et l'architecture système
3 # Copyright ©2011 Agence universitaire de la Francophonie
5 # Licence : GNU General Public License, version 3
6 # Auteur : Progfou <jean-christophe.andre@auf.org>
7 # Création : 2011-04-26
8 # Mise à jour : 2011-08-23
10 EXPECTED_DEBIAN_VERSION="6.0.2"
11 ACCEPTED_DEBIAN_VERSION="5.0.8"
12 if grep -q '^flags.* lm ' /proc/cpuinfo ; then
13 EXPECTED_DEBIAN_ARCH="x86_64"
14 ACCEPTED_DEBIAN_ARCH="i686"
16 EXPECTED_DEBIAN_ARCH="i686"
17 ACCEPTED_DEBIAN_ARCH="i686"
20 EXPECTED_UBUNTU_VERSION="10.04"
21 ACCEPTED_UBUNTU_VERSION="10.04"
22 if dpkg -l ubuntu-desktop >/dev/null 2>&1 ; then
23 EXPECTED_UBUNTU_ARCH="i686"
24 ACCEPTED_UBUNTU_ARCH="i686"
25 else # serveur sous Ubuntu
26 EXPECTED_UBUNTU_ARCH="${EXPECTED_DEBIAN_ARCH}"
27 ACCEPTED_UBUNTU_ARCH="${ACCEPTED_DEBIAN_ARCH}"
31 color="$1" ; shift ; data="$@"
32 if [ "${color}" = "green" ] ; then
33 data="\033[1;32m${data}\033[m"
34 elif [ "${color}" = "red" ] ; then
35 data="\033[1;31m${data}\033[m"
41 name="$1" ; dist="$2" ; version="$3" ; arch="$4" ; note="$5"
42 if [ "${dist}" = "Ubuntu" ] ; then
43 expected_version="${EXPECTED_UBUNTU_VERSION}"
44 accepted_version="${ACCEPTED_UBUNTU_VERSION}"
45 expected_arch="${EXPECTED_UBUNTU_ARCH}"
46 accepted_arch="${ACCEPTED_UBUNTU_ARCH}"
47 elif [ "${dist}" = "Debian" ] ; then
48 expected_version="${EXPECTED_DEBIAN_VERSION}"
49 accepted_version="${ACCEPTED_DEBIAN_VERSION}"
50 expected_arch="${EXPECTED_DEBIAN_ARCH}"
51 accepted_arch="${ACCEPTED_DEBIAN_ARCH}"
53 dist="`colorize red "${dist}"`"
55 if [ "${version}" = "${expected_version}" ] ; then
56 version="`colorize green "${version}"`"
57 elif [ "${version}" != "${accepted_version}" ] ; then
58 version="`colorize red "${version}"`"
60 if [ "${arch}" = "${expected_arch}" ] ; then
61 arch="`colorize green "${arch}"`"
62 elif [ "${arch}" != "${accepted_arch}" ] ; then
63 arch="`colorize red "${arch}"`"
65 if [ "${note}" = "voip" ] ; then
66 if [ "${version}" = "${accepted_version}" ] ; then
67 version="`colorize green "${version}"`"
69 note='ne pas migrer vers Squeeze !'
71 if expr match "${note}" '.*!' >/dev/null ; then
72 note="`colorize red "${note}"`"
74 printf "%-25s: %s %s (%s) %s\n" "${name}" "${dist}" "${version}" "${arch}" "${note}"
77 display_host "host" "`lsb_release -si`" "`lsb_release -sr`" "`uname -m`"
78 if test -x /usr/sbin/vzctl
80 IDS="`vzlist -H -o ctid`"
81 if [ -n "${IDS}" ] ; then
85 name="`sed -n '/^NAME=/s/^.*="\?\([^"]*\)"\?.*$/\1/p' /etc/vz/conf/${id}.conf`"
86 if [ -z "${name}" ] ; then
87 name="`sed -n '/^HOSTNAME=/s/^.*="\?\([^"]*\)"\?.*$/\1/p' /etc/vz/conf/${id}.conf`"
89 dist="`vzctl exec ${id} lsb_release -si 2>/dev/null`"
90 if [ -n "${dist}" ] ; then
91 version="`vzctl exec ${id} lsb_release -sr 2>/dev/null`"
95 note='paquet lsb-release manquant !'
97 arch="`vzctl exec ${id} uname -m`"
98 if [ -x "/var/lib/vz/private/${id}/usr/sbin/asterisk" ] ; then
101 display_host "CT ${id} (${name})" "${dist}" "${version}" "${arch}" "${note}"