- c'est-à-dire - comment obtenir une liste complète des composants matériels en ligne de commande (sur une machine sans système de fenêtrage)
Merci.
- c'est-à-dire - comment obtenir une liste complète des composants matériels en ligne de commande (sur une machine sans système de fenêtrage)
Merci.
Ci-dessous le code que vous pouvez copier en utilisant vi
#!/bin/bash
a=1; c=0
a=1; c=0
# Rassemble les informations système, peut par exemple être envoyé à | mail dans un cronjob
f_() { while read l; do echo $l; done < $f ; }
#
f_() { while read l; do echo $l; done < $f ; }
# TODO
# ----
# * Sortie netstat
# * Informations sur la mémoire/échange
# * Informations ifconfig
# * Rendre la sortie dépendante de argv
# * Vérifications md5sum (fait)
# * Conserver les valeurs précédentes et les comparer
# * Comment faire
# * chmod a+x sysinfo.sh
# * ./sysinfo.sh
####################### NE PAS EDITER SOUS CETTE LIGNE ###########################
siheader() {
echo "================================================================"
echo -e "* Statistiques système pour: \t`hostname`.`dnsdomainname`"
echo -e "* Généré le: \t\t\t`date`"
echo -e "* Fonctionnant en tant que: \t\t`whoami`"
echo
}
fuptime() {
upSeconds=$(cat /proc/uptime | tr "." " " | awk '{print $1}')
secs=$((${upSeconds}%60))
mins=$((${upSeconds}/60%60))
hours=$((${upSeconds}/3600/24))
days=$((${upSeconds}/86400))
if [ "${days}" -ne "0" ]
then
echo -n "${days} jours, "
fi
echo "`printf '%02d' ${hours}`:`printf '%02d' ${mins}`:`printf '%02d' ${secs}`"
}
siuptime() {
echo "=================== Temps de fonctionnement ====================================="
echo -e "* Temps de fonctionnement: \t\t\t`fuptime`"
if [ -x /usr/bin/uprecords ];
then
echo -e "* Meilleur score: \t\t\t`uprecords | tail -n1 | cut -d'|' -f1 | cut -d'n' -f3 | sed 's/^[[:blank:]]*//'`"
fi
echo -e "* Charge moyenne: \t\t`cat /proc/loadavg | head -c14`"
echo
}
fw () {
OFS=${IFS}
IFS=$'\n'
CNT=$(echo `w | wc -l`-1 | bc)
w | tail -n ${CNT} | while read -r a;
do
echo -e "\t${a}"
done
IFS=${OFS}
}
siusers() {
echo "=================== Utilisateurs ======================================"
echo -e "* Utilisateurs actifs: \t\t`who | wc -l`"
echo "* Informations sur l'utilisateur"
fw
echo
}
fpstree() {
OFS=${IFS}
IFS=$'\n'
pstree | while read -r a;
do
echo -e "\t${a}"
done
IFS=${OFS}
}
fcomms() {
ps -eo comm | sort | uniq | grep -v ^COMMAND | column
echo
IFS=${OFS}
}
fprocs() {
echo `TERM=Linux top -n1 -b | grep "Tasks" | awk '{print $4,$6,$8,$10}'`
echo -e "==================================Tâches processus et utilisation de la mémoire=============================\n"
echo "`top -n1 -b`"
}
sitasks() {
echo "=================== Tâches ======================================"
echo -e "* Nombre de tâches en cours d'exécution: \t$(echo `ps ax | wc -l` - 1 | bc)"
# Cela perturbe l'e-mail
#echo "* Arbre ps:"
#fpstree
echo "* Programmes en cours d'exécution:"
fcomms
echo -e "* Charge CPU: \t\t\t`TERM=linux top -n2 -b | grep 'Cpu' | tail -n1 | awk '{print $2+$4+$6}'`%"
PROCS=`fprocs`
echo "* État du processus:"
echo -e "\tEn cours d'exécution: \t\t`echo ${PROCS} | awk '{print $1}'`"
echo -e "\tEn veille: \t\t`echo ${PROCS} | awk '{print $2}'`"
echo -e "\tZombie: \t\t`echo ${PROCS} | awk '{print $3}'`"
echo -e "\tArrêté: \t\t`echo ${PROCS} | awk '{print $4}'`"
echo
}
froute() {
OFS=${IFS}
IFS=$'\n'
CNT=$(echo `/sbin/route | wc -l` - 1 | bc)
/sbin/route | tail -n ${CNT} | while read -r a;
do
echo -e "\t${a}"
done
IFS=${OFS}
}
sinetwork() {
echo "=================== Réseau ================================"
echo "* Table de routage:"
froute
echo
}
simemory() {
echo "=================== Mémoire ===================================="
RAMTOTAL=`echo $(($(cat /proc/meminfo | grep MemTotal | awk '{print $2}')/1024))`
echo "* Ram:\t\t\t libre de ${RAMTOTAL}Mo"
}
sidiskstats() {
echo "=================== Disque dur ================================="
echo "* Informations sur le disque:"
OFS=${IFS}
IFS=$'\n'
df -h | grep -v ^none | while read -r a;
do
echo -e "\t${a}"
done
IFS=${OFS}
echo
echo "* Montages:"
OFS=${IFS}
IFS=$'\n'
mount | while read -r a;
do
echo -e "\t${a}"
done
IFS=${OFS}
echo
}
simd5() {
if [ ! -e md5sums.lst ];
then
return
fi
echo "=================== Vérification des MD5Sum =============================="
OFS=${IFS}
IFS=$'\n'
echo "* Vérification des sommes MD5"
cat md5sums.lst | grep "^/" | while read -r a;
do
F=`echo ${a} | cut -d':' -f1`
S=`echo ${a} | cut -d':' -f2`
S2=`md5sum ${F} | cut -d' ' -f1`
echo -n -e "\t${F}: \t\t\t\t"
if [ "${S}" = "${S2}" ];
then
echo "[OK]"
else
echo "[INVALID]"
fi
done
IFS=${OFS}
echo
}
##Pour trouver le modèle de CPU, les cœurs et
cpuinfo() {
echo "=================== Détails du CPU pour Xen =============================="
echo -e "Détails du CPU: \n`cat /proc/cpuinfo | sed -n '1,/^$/p'`"
echo -e "Nombre de cœurs: \n`cat /proc/cpuinfo | grep processor | wc -l`"
if [ "egrep '(vmx|svm)' /proc/cpuinfo >/dev/null 2>/dev/null" ];
then
echo -e "\n===============================================================\nLe serveur prend en charge la virtualisation complète"
else
echo -e "\n===============================================================\nSoit le serveur ne prend pas en charge la virtualisation complète, soit elle est désactivée dans le BIOS"
fi
if [ "egrep 'pae' /proc/cpuinfo >/dev/null 2>/dev/null" ];
then
echo -e "\n===============================================================\nLe serveur prend en charge la virtualisation paravirtualisée"
else
echo -e "\n===============================================================\nLe serveur ne prend pas en charge la virtualisation paravirtualisée"
fi
}
##Pour les informations sur le disque
diskinfo() {
echo "=================== Utilisation du disque =============================="
echo -e "Détails sur l'utilisation du disque: \n`df -h`"
}
##Informations sur la distribution
distroinfo() {
echo "=================== Infos sur la distribution =============================="
echo -e "Détails sur la distribution: \n`lsb_release -a`"
echo -e "Détails du noyau: \n`uname -a`"
}
##Informations sur les périphériques
deviceinfo() {
echo "=================== Infos sur le périphérique =============================="
echo -e "Détails du périphérique: \n`lspci -v`"
echo -e "Détails du noyau: \n`uname -a`"
}
summary() {
siheader
siuptime
siusers
sitasks
sinetwork
simemory
sidiskstats
fprocs
simd5
deviceinfo
cpuinfo
distroinfo
echo "==============================================================="
echo "* Présenté par Taashee- http://www.taashee.com"
}
summary
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.