Remplacer un retour chariot par un espace

Après des essais avec sed et awks, je me suis aperçu que tr le faisait également très bien!

L’exemple suivant montre le remplacement d’un retour à la ligne par une virgule suivie d’un espace :


perceval:~# cat monfichier.txt
1
2
3
perceval:~# cat monfichier.txt | tr -s "\n" ", "
1, 2, 3,

Publié dans Shell | Laisser un commentaire

Liens extérieurs sur une page Web

Voici le code css pour marquer les liens extérieurs (avec l’icone lien extérieur) :


a.liens_ext:link {
	color:blue;
	background: url(liens_ext.png) no-repeat 100% 0;
	padding: 0 15px 0 0;
}

a.liens_ext:visited {
	color:blue;
	background: url(liens_ext.png) no-repeat 100% 0;
	padding: 0 15px 0 0;
}

Exemple d’utilisation :


http://www.univ-brest.fr

Ce qui donne : http://ww.univ-brest.fr.

Publié dans web | Laisser un commentaire

Insertion de code source dans un post WordPress

L’objectif est de pouvoir insérer du code source dans les posts de WordPress. L’idée est d’éviter les retours à la ligne automatique… en ajoutant une scrollbar.

Voici le code css associé à la balise pre que j’utilise dans mes posts WordPress :


pre {
	font-family: monaco, "Courier New", monospace;
	font-size: 1.1em;
	color: #666;
	width: 99%;
	padding-top:15px;
	padding-bottom:15px;
	padding-left:5px;
	padding-right:5px;
	overflow: scroll;
	border: 1px solid #ccc;
}

Ce qui permet d’avoir un affichage correcte sous IE (et c’est bien sûr parfaitement valide sous Firefox).

Bilan: En fait, pour avoir un rendu correct sous IE, je suis obligé d’avoir une scrollbar horizontale et verticale même si mon texte ne dépasse pas la largeur du cadre… merci IE! :(

Publié dans web | Laisser un commentaire

Graphiques des températures avec RRDTool

Comment grapher les températures de Brest sans sonde?

En allant chercher les informations sur www.weather.com !

1. Installer RRDTool :


perceval:~# apt-get install rrdtool
perceval:~#

2. Créer le répertoire où sera placée la base de données Round Robin (ainsi que les graphiques) :


perceval:~# mkdir /home/temperatures
perceval:~# cd /home/temperatures

3. Créer la base de données :


perceval:~# /usr/bin/rrdtool create temperature.rrd --step 300 \
DS:temp:GAUGE:900:-50:100 \
RRA:LAST:0.5:1:288 \
RRA:AVERAGE:0.5:6:336 \
RRA:AVERAGE:0.5:12:8760 \
RRA:MAX:0.5:12:8760 \
RRA:MIN:0.5:12:8760

4. Ecrire le script /home/temperature/temperature.sh :


#!/bin/sh
logfile="/home/temperature/tempCourante";
rrdfile="/home/temperature/temperature.rrd";
htmldir="/home/temperature";
#
wget -nv -o /dev/null -O /dev/stdout http://fr.weather.com/weather/local/FRXX0019 | grep "ressentie" | cut -d"&" -f2 | sed 's/nbsp;//g' > $logfile
#
value=$(tail $logfile)
#
/usr/bin/rrdtool update $rrdfile N:$value
#
# Create 24hrs image
/usr/bin/rrdtool graph $htmldir/tempDaily.png --title="Variations sur 24hrs (moyenne sur 5 minutes)" \
        DEF:tempC=$rrdfile:temp:LAST -v"° Celsius" -aPNG -h250 -w700 \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
        AREA:nodat#BBBBBB:"NoData"

# Create 7 days image
/usr/bin/rrdtool graph $htmldir/tempWeekly.png --title="Variations sur 7 jours (moyenne sur 1 hr)" \
	DEF:tempC=$rrdfile:temp:AVERAGE  -v"° Celsius" -aPNG -h150 -w700 -s-604800 \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
        AREA:nodat#BBBBBB:"NoData"
#
# Create 28 days image
/usr/bin/rrdtool graph $htmldir/tempMonthly.png --title="Variations sur 28 jours" \
	-v"° Celsius" -aPNG -h150 -w700 -s-2419200 \
        DEF:tempC=$rrdfile:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodat=tempC,tempC,+,UN,INF,UNKN,IF \
	HRULE:0#0000DD \
        AREA:nodat#BBBBBB:"NoData"
#
# Create 60 days image
/usr/bin/rrdtool graph $htmldir/temp2Monthly.png --title="Variations sur 60 jours (-60j < 0)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u25 -s-5184000 \
        DEF:tempC=$rrdfile:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB

# Create 2nd 60 days image
/usr/bin/rrdtool graph $htmldir/temp3Monthly.png --title="Variations sur 60 jours (-120j < -60j)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u25 -s-10368000 -e-5184000 \
        DEF:tempC=$rrdfile:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
#
# Create 3th 60 days image
/usr/bin/rrdtool graph $htmldir/temp4Monthly.png --title="Variations sur 60 jours (-180j < -120j)" \
        -v"° Celsius" -aPNG -h150 -w700 -l0 -u25 -s-15552000 -e-10368000 \
        DEF:tempC=$rrdfile:temp:AVERAGE \
        LINE2:tempC#DD0000:"Température" \
        CDEF:nodatp=tempC,tempC,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempC,tempC,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB
#
# Create 1 year image
/usr/bin/rrdtool graph $htmldir/tempYearly.png --title="Variations sur une année" \
        -v"° Celsius" -aPNG -h150 -w700 -s-31449600 \
        DEF:tempMin=$rrdfile:temp:MIN \
        DEF:tempMax=$rrdfile:temp:MAX \
        AREA:tempMax#EEDDAA:"Variations journalières" \
        AREA:tempMin#FFFFFF \
        LINE1:tempMax#DD0000:"Max" \
        LINE1:tempMin#0000DD:"Min" \
        CDEF:nodatp=tempMax,tempMin,+,UN,INF,UNKN,IF \
        CDEF:nodatn=tempMax,tempMin,+,UN,NEGINF,UNKN,IF \
        HRULE:0#0000DD \
        AREA:nodatp#BBBBBB:"NoData" \
        AREA:nodatn#BBBBBB

date > $htmldir/dateCourante.txt
echo Température: $value ° Celsius > $htmldir/tempCourante.txt

Ce script récupère la température (extérieure) instantamnée pour la ville de BREST (29) par un wget sur le site www.weather.com.

5. Ajouter dans le crontab :


# Lancement tous les 5 minutes
#
*/5 * * * * /home/temperature/temperature.sh > /dev/null 2>&1

6. Créer une page HTML pour l’affichage des graphiques (il y en a 7).
7. Modifier la configuration d’Apache pour pouvoir accéder au répertoire /home/temperature depuis le serveur Web.

Publié dans Supervision | Laisser un commentaire

Ordre des graphiques avec Cacti

Il ne semble pas possible de gérer l’ordre des graphiques lors de leur affichage dans l’arbre des hosts. L’ordre, utilisé par Cacti (0.86h), est l’ordre alphabétique par nom de Template Graph. Si, par exmple, je veux que le graphique concernant la charge CPU d’une machine apparaîsse en premier dans les graphiques associés à cette machine… il faut que je m’arrange pour que le nom du Template Graph en question soit en tête de liste…alphabétiquement.

Pas très pratique…

L’ordre des Graph Trees n’est également pas modifiable : c’est aussi l’ordre alphabétique !

Publié dans Supervision | Laisser un commentaire

Quelques OIDs…

Superviser les machines avec SNMP…

Quelques oids :

Windows

Charge proc (proc1 – windows 2003) :
.1.3.6.1.2.1.25.3.3.1.2.1
Charge proc (proc2 – windows 2003) :
.1.3.6.1.2.1.25.3.3.1.2.2
Nombre de users sur IIS (windows 2003 srv) :
.1.3.6.1.4.1.311.1.7.3.1.13
Nombre d’users connectés (windows 2003 srv) :
.1.3.6.1.4.1.77.1.2.19.0
Charge processeur système (nt4 + snmp4NT) :
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.3.48.58.48
Charge processeur users (nt4 + snmp4nt) :
.1.3.6.1.4.1.311.1.1.3.1.1.2.1.4.3.48.58.48

Proliant (avec inside manager.windows 2003Srv & MIB HP)

Temperature CPU1 :
.1.3.6.1.4.1.232.6.2.6.8.1.4.0.1
Temperature CPU2 :
.1.3.6.1.4.1.232.6.2.6.8.1.4.0.2
Temperature IoBoard :
.1.3.6.1.4.1.232.6.2.6.8.1.4.0.3
Temperature alimentation :
.1.3.6.1.4.1.232.6.2.6.8.1.4.0.5

Linux (avec Net-SNMP)

Memoire disponible ram+swap :
.1.3.6.1.4.1.2021.4.11
Memoire disponible ram :
.1.3.6.1.4.1.2021.4.6.0
Pourcentage cpu système :
.1.3.6.1.4.1.2021.11.10
Pourcentage cpu user :
.1.3.6.1.4.1.2021.11.9
Partition / disque disponible :
.1.3.6.1.4.1.2021.9.1.7
Partition / pourcentage utilisé :
.1.3.6.1.4.1.2021.9.1.9
Charge système 5min :
.1.3.6.1.4.1.2021.10.1.3.2
Memoire disponible ram :
.1.3.6.1.4.1.2021.4.6.0
Uptime :
.1.3.6.1.2.1.1.3.0

Autres

Nombre connectés wifi :
.1.3.6.1.4.1.9.9.273.1.1.2.1.1.1
Taille du cache courant (squid) :
.1.3.6.1.4.1.3495.1.3.2.1.14
Nombre de clients connectés au cache :
.1.3.6.1.4.1.3495.1.3.2.1.15.0

Publié dans Supervision | Laisser un commentaire

Envoyer un mail en ligne de commande

Prérequis : Le service SMTP de la machine peut expédier des messages.

1) Envoyer un mail simple (sans pièce jointe) :


perceval:~# mail -s "Le sujet" login@mailhost < mon.fichier

2) Envoyer un mail avec une pièce jointe:


perceval:~# echo "contenu" | mutt -x -a mon.fichier -s "sujet" login@mailhost

Publié dans Système | Laisser un commentaire

Attribuer les droits root à un utilisateur

En temps que root, exécuter /usr/sbin/visudo afin d’éditer la liste des utilisateurs pouvant invoquer sudo.

Pour l’instant, la liste ne doit contenir qu’un item :


root ALL=(ALL) ALL

Pour que l’utilisateur arnaud ait un accès super-utilisateur modifier ainsi :


root ALL=(ALL) ALL
arnaud ALL =(ALL) ALL

Par exemple, pour que l’utilisateur arnaud ait un accès sur la machine journal avec les droits de l’utilisateur nagios :


arnaud journal=(nagios) ALL

La syntaxe est la suivante :


utilisateur machine=(utilisateur réel) commande

Pour éviter les longues listes on peut créer des alias :


User_Alias ADMINS=arnaud,john
Runas_Alias UTILISATEURS_SECU=nagios,monids
Host_Alias SERVEURS_SECU=nagios,monids
Cmnd_Alias BIN_SECU=/usr/local/nagios/bin/nagios,/usr/local/monids/bin/monids
ADMINS SERVEURS_SECU=(UTILISATEURS) BIN_SECU

Publié dans Sécurité | Laisser un commentaire