rss
Affichage des articles dont le libellé est shell. Afficher tous les articles
Affichage des articles dont le libellé est shell. Afficher tous les articles

gem : fiche pratique

Cet article est une fiche pratique pour gem (alias RubyGems).

Commandes de base

  • Afficher l'environnement 
gem environment

  • Lister les gem installés 
gem list
gem q --L
gem query --local

  • installer le gem "json en version 1.4.6
gem install json -v '1.4.6'

  • Désinstaller le gem json
gem uninstall json

  • Lister les gems disponibles
gem list --remote

  • Rechercher un gem comportant "sdk"
gem search "*sdk" --remote


  • Ressources utiles : ruby-toolbox.com : recherche de gem et stats consolidées sur les gems (à partir des dépôts public et github)

  • Créer une gem : un squelette avec un ensemble de fichier par defaut
 gem install bundle
 bundle gem mongemmaison
 cat  mongemmaison/mongemmaison.gemspec
 cat  mongemmaison/bin/mongemmaison.rb

find : fiche pratique

Cet article est une fiche pratique pour find.

Commandes de base

  • Lister les fichiers comportant la chaîne "Tutu" 
find . -type f -exec grep -l Tutu {} \;
  • Lister les fichiers modifiés dans les 15 dernières minutes
find . -type f -mmin -15
  • Lister les fichiers modifiés il y a moins de 1 jour (dans les dernières 24heures)
find . -mtime -1
  • Lister à partir de /usr les dossiers comportant 'maven' sans remonter les erreurs liées aux permissions refusées
find /usr -type d -name maven 2>&1 | grep -v 'Permission non accordée'

Ajout d'un proxy au démarrage d'une instance OpenStack

Pour compléter la configuration d'une instance OpenStack et ajouter un proxy voici ce que l'on peut faire.

Au démarrage d'une instance il est possible d'ajouter un script personnalisé (Customization Script).
Nous allons utiliser cette option pour :
  • vérifier que les paramètres de proxy sont correctement positionnés
  • ajouter les paramètres de proxy s'ils sont absent

Le script qui permet de faire ceci est décrit ci-dessous.
Il suffira de l'ajouter lors de la création d'une instance (dernier onglet) comme "Customization Script" :


#!/bin/bash
INSTANCE_USER=osadmin
PROFILE_SCRIPT=/home/$INSTANCE_USER/.bash_profile
PROXY_PRESENT=`grep http_proxy $PROFILE_SCRIPT | wc -l`
if [[ $PROXY_PRESENT == "1" ]]
 then
   echo "proxy present dans $PROFILE_SCRIPT"
 else
   echo "proxy absent de $PROFILE_SCRIPT ; on l'ajoute"
   echo "export http_proxy=proxy.mycompany.fr:8080" >> $PROFILE_SCRIPT
   echo "export https_proxy=proxy.mycompany.fr:8080" >> $PROFILE_SCRIPT
   echo "export no_proxy='127.0.0.1,localhost,169.254.169.254'" >> $PROFILE_SCRIPT
fi

Explication du script :

  • PROFILE_SCRIPT comporte le nom du script profile joué à chaque connexion de l'utilisateur INSTANCE_USER.
  • PROXY_PRESENT permet de détecter si oui (1) ou non (0) ce fichier comporte déjà un paramétrage relatif à "http_proxy".
  • Dans l'instruction conditionnelle suivante si ce n'est pas le cas (else : PROXY_PRESENT== "0"), on ajoute les export nécessaires et utiles pour positionner les proxies.


Il est possible de constater l'exécution de ce script en affichant (via le portail OpenStack) les logs complets de l'instance
ou en tapant la commande suivante :

env|grep proxy


Yum : fiche pratique

Cet article est une fiche pratique pour Yum (alias Yellow dog Updater Modified), le gestionnaire de paquets de Fedora et Red Hat.

Commandes de base

  • Lister les paquets installés
yum list installed | more
  • Lister les paquets disponibles
yum list
yum list kernel\*
  • Rechercher un paquet (ie. svn)
yum search svn
  • Installer un paquet (ie. svn)
yum install subversion
  • connaître les repositories déclarés / actifs
yum repolist all

Commandes avancées

  • Connaître le contenu d'un paquet (ie. subversion) [ src ]
 rpm -qil subversion
ou 
 yum install yum-utils
 repoquery -lq subversion| more

Planifier une surveillance de mon serveur

Voici un petit exemple pour Linux pour surveiller la présence d'un serveur avec un shell et une tâche planifiée (crontab) :

Fichier checkMyServerIsRunning.sh



#!/bin/bash
# vers qui envoyer l'alerte ?
DIFFUSION=toto@yoyo.fr
# fichier ProcessId du serveur
PID_FILE=/appli/MyServer/MyServer.pid
# rapport d'alerte
CHECK_REPORT=/tmp/checkMyServer.log
# le serveur est-il actif O/N ? 1/0
SERVER_RUNNING=0
echo - RAPPORT $0 DU `date` - `hostname` >> ${CHECK_REPORT}
# si un fichier pid est present on teste la présence du processus
if [ -e "${PID_FILE}" ]
then
SERVERPID=`cat ${PID_FILE}`
MSGPID="PID is ${SERVERPID}"
SERVER_RUNNING=`ps xaf | grep ${SERVERPID} |grep -v grep|wc -l`
fi
if [ "${SERVER_RUNNING}" == "1" ]
then
# le serveur est actif on ne fait rien
echo server is running ${MSGPID} >> ${CHECK_REPORT}
exit
fi

echo server is not running ... so restart it >> ${CHECK_REPORT}

# redémarrage du serveur
/etc/init.d/myServer status >> ${CHECK_REPORT}
/etc/init.d/myServer start >> ${CHECK_REPORT}
# mail avec PJ avec mutt
echo FICHIERS DE LOG MODIFIES CE JOUR EN PJ >> ${CHECK_REPORT}
zip lesLogsDuJour.zip `find . -name "*.log" -mtime -1` >> ${CHECK_REPORT}
mutt -s "`hostname` : serveur MyServer" -a lesLogsDuJour.zip ${DIFFUSION} < ${CHECK_REPORT}
rm -f lesLogsDuJour.zip
# remise a zero du rapport
echo > ${CHECK_REPORT}


Explications :
Dans un premier temps on paramètre les hypothèses de départ (emplacement du serveur, des fichiers de rapport, des destinataires)
Ensuite on vérifie la présence du serveur en contrôlant la présence de son fichier ".pid" et en vérifiant la présence du processus correspondant.
Si le serveur est effectivement démarré, on ne fait rien (si ce n'est augmenter le rapport de surveillance).
Si le serveur n'est pas démarré (fichier pid absent ou processus absent) alors on le redémarre :

  • on constitue une archive ZIP des fichiers de logs modifiés ce jour

  • on envoie un email du rapport de surveillance à la liste des destinataires paramétrés

  • on remet à zero le rapport de surveillance.



Tâche planifiée



La prochaine et dernière étape consiste à planifier une tâche toutes les heures pour lancer ce script.
Pour éditer la planification il faut exécuter la commande suivante :


crontab -e 


Il faut ajouter les 2 lignes suivantes :


# verification de MyServer toutes les heures 
0 * * * * cd /appli/MyServer && sh checkMyServerIsRunning.sh

Toutes remarques et/ou suggestions d'amélioration sont les bienvenues...

Mots clés du blog

10.1 4G acceptancetest adb androï Android androïd Android7 api appender appengine application applications archive array assistantematernelle astuce auth0 authentication authority automation Axis bash bearer blog boot bootloader bower build bundle c calendrier camille combal cdi certificate cf client cloudfoundry collaboratif command commandes connexion console css cyanogen decrypt démasquées démasquer développement dll dump easter eggs écologie écrit employeur EMUI EMUI5.0 encrypt enfant évènement export-package ExtJS fab fastboot fiche find firefox gadget galaxytab gelf gem git gmail gnupg gooelappengine google gparted gpg gpg2 gps graylog grenoble Grid gui harddrive heroku hover howto HTML http https IE ihm immobilier imprimante innovation insolite instance integration Java JavaScript jenkins jeu jobs json json-schema-validator key keystore labs linux livre log log4j logger logs lombok masquées masquer maven maven-gae-plugin Mémoire microsoft mobile mockito mondialisation monitor MUSE musique en ligne myopera nodejs npm NT NTEventLogger onglet openstack osgi paas package parameters parent php politique prosyst prototype proxies proxy quartz radio rappel recherche regex repository resize RIA ridge rock ROM route ruby rubygems s8500 samsung scheduler scm secret secure sel selenium Serializer server shared shell sign signature slf4j smartphone so société song spy ssh ssl struct swagger swig tâches téléphone téléréalité test thunderbird timeout token Tomcat tooltip tooltips truststore TWRP ubuntu unit test validator verify virgin virtualbox wave waze web WebApp wiki wikimedia wikipédia wikipen wiko windows windows10 yahoo youtube yum