Tag Archives: bash

Calculer des dates en BASH et PERL

Dans le sens le plus traditionnel, qui est celui des scripts shell (BASH, PERL…) , un script sert principalement à lancer et coordonner l’exécution de programmes.

Donc voilà, j’ai du faire des petites recherches ce matin, afin de manipuler des dates en BASH pour l’un de mes scripts.
J’ai besoin de lancer des traitements, avec en paramètre des dates. Parfois, j’aurais besoin de récupérer la date du jour (facile), parfois d’autres dates, comme la veille, le dernier jour du mois précédent, etc… . Bien évidemment, parfois c’est facile, et parfois, cela l’est beaucoup moins.
Comme je ne travaille pas que sur des infrastructures Linux, mais surtout AIX, la commande date est limitée (ça n’est pas le date GNU).

Je pose ici mon petit pense-bête (un peu comme avec le history), un petit florilège, en BASH et en PERL qui me dépanne bien.

Avant tout, on charge quelques variables….

La date de la veille en PERL

La date du jour + 17 jours en PERL

Le dernier jour du mois en cours en BASH

Le dernier jour du mois suivant en BASH

Le dernier jour du mois précédent en BASH

Allez, amusez-vous bien !!!

AWK par l’exemple

Dans cet article, je vous propose de découvrir l’utilisation de awk (en ligne de commande, et non en script) pour lire ou analyser des fichiers, texte ou CSV, contenant plusieurs délimiteurs ou séparateurs.
Prenons comme exemple ce fichier texte (Prénom, département, mois, jour de naissance, nombre de frères, nombre de sœurs) :

  1. Pour imprimer la 3ème colonne contenant la date de naissance :

En précisant -F’:’ nous précisons à awk que le délimiteur est le caractère ‘:‘ . La troisième colonne correspond donc à $3


2. Pour imprimer le mois de naissance, la 3ème colonne tout séparateur confondu :

En précisant -F'[:;]’ nous précisons à awk que les délimiteurs sont les caractère ‘:‘ et ‘;‘ .


3.  Ajouter des variables, savoir combien de frères et sœurs ont les personnes :

On demande à awk de faire l’addition entre frères et sœurs, et on affiche le résultat.


4. Grouper / Dégrouper des variables en affichant plusieurs lignes pour la même personne :

Nous avons donc pour chaque personne une ligne avec le mois, le jour et l’année de naissance.


5. Utiliser les variables spéciales :

Les variables prédéfinies :
ARGC Nombre d’arguments de la ligne de commande
ARGV tableau des arguments de la ligne de commande-
FILENAME nom du fichier sur lequel on applique les commandes
FNR Nombre d’enregistrements du fichier
FS separateur de champs en entrée
NF nombre de champs de l’enregistrement courant
NR nombre d’enregistrements deja lu
OFMT format de sortie des nombres
OFS separateur de champs pour la sortie
ORS separateur d’enregistrement pour la sortie
RLENGTH longueur de la chaine trouvée
RS separateur d’enregistrement en entrée
RSTART debut de la chaine trouvée
SUBSEP separateur de subscript

Amusez-vous bien!!

Alerte SMS en bash : Pré-requis

Que ce soit depuis vos serveurs hébergés chez Netissime, Dedibox ou OVH, qu’il s’agisse de vos serveur à la maison, ou de vos raspberry, il est toujours bon d’avoir les alertes des vos serveurs en « live ».

Les remontées d’alerte par SMS (“Short Message Service”) existent déjà chez les professionnels, et sont devenues essentielles dans le monitoring de systèmes d’informations critiques. Cependant, les services gratuits permettant d’utiliser les SMS depuis le système restent rare. Pour ceux là, soit vous disposez d’une usine à gaz avec PHP, Curl, etc…, soit vous mettez simplement en place une solution en bash avec googalert. Lire la suite »