Catégorie : Ubuntu

25 janvier 2018 /

Debian/Ubuntu

zgrep -h " installed " /var/log/dpkg.log* | sort | grep nomdupackage

Redhat/CentOS

rpm -qa --last | sort | grep nomdupackage

18 août 2017 /

Installation

Installation de Docker via Aptitude:

sudo apt-get update
sudo apt-get install lxc-docker​

Installation de Docker via le script d’installation officiel:

wget -O dockerinstall.sh https://get.docker.com
sh ./dockerinstall.sh

Information

Afficher les informations sur la version de Docker installée​:

docker version

Obtenir la liste des commandes du client Docker:

docker help

Obtenir de l’aide sur les options d’une commande:

docker help nom_de_la_commande

Docker Hub

​Connexion à un compte Docker Hub:

docker login

Déconnexion du compte Docker Hub:

docker logout

Récupérer une image

Récupérer une image sans la lancer:

docker pull nom_de_l_image

Récupération d’une image Ubuntu dans sa dernière version:

docker pull ubuntu:latest

​Rechercher une image Nginx avec au moins 5 étoiles:

docker search --stars=5 nginx

Envoyer d’une image

Envoyer une image locale sur le registre Docker Hub:

docker push nom_image

Envoyer une image sur un registre privé:

docker push localhost:88/ubuntu

Dépôt de l’image depuis une autre machine (host=starmate):

docker push starmate:5000/ubuntu

Sauvegarde et restauration

Export d’une image sous forme d’archive:

docker save -o fichier.tar nom_image

Import d’une archive d’image:

docker load -i fichier.tar

Lancement de conteneur

Démarrer un conteneur arrêté:

docker start nom_image

Redémarrer un conteneur en cours:

docker restart nom_image

Redémarrer un conteneur en spécifiant la période de grâce:

docker restart -t 20 nom_image

Démarrer le conteneur de test Hello World:

docker run hello-world​

Démarrer un conteneur en mode interactif:

docker run -i -t ubuntu

Démarrer sans option d’un conteneur:

docker run ubuntu

Démarrer un conteneur avec un nom donné:

docker run --name=nom_donné nom_image

Démarrer un conteneur avec une commande donnée:

docker run nom_de_l_image commande_à_exécuter

Démarrer un conteneur en ajoutant une variable d’environnement:

docker run -e=nom_variable=valeur nom_image

ou

docker run -e nom_variable=valeur nom_image

Démarrer un conteneur en injectant une des variables d’environnement de la machine hôte:

docker run -e=nom_variable image_à_instancier

Démarrer un conteneur en injectant des variables d’environnement stockées dans un fichier:

docker run --env-file=nom_fichier nom_image

Démarrer un conteneur en modifiant son hostname:

docker run -h hostname_voulu

Démarrer un conteneur en montant un dossier dans le conteneur depuis la machine hôte en RO (read only):

docker run -v dossier_sur_hote:dossier_sur_l_image:ro nom_image

Démarrer un conteneur en mode détaché:

docker run -d nom_image

Démarrer un conteneur d’un registre privé en localhost (port 5000 vers 88):

docker run -d --name starmate -p 88:5000 starmate:2.0

Démarrer un conteneur d’un registre privé sur le réseau local (IPhost=starmate dans tous les fichiers hosts):

docker run -d --name starmate -p 5000:5000 starmate:2.0

Démarrer un conteneur du registre privé en réseau local (IPhost= starmate dans tous les fichiers hosts) en montant un dossier local de la machine host:

docker run -d --name starmate -p 5000:5000 -v /dossier_machine_host:/dossier_image_starmate starmate:2.0

Démarrer et supprimer un conteneur dès la sortie du processus:

docker run --rm hello-world

Connexion à un conteneur

Connexion à un conteneur en tant que root avec bash:

docker exec -u root -it ID_conteneur bash

Suppression de conteneur

Supprimer un conteneur arrêté:

docker rm loving_lovelace

Supprimer un conteneur de manière forcée:

docker rm -f nom_conteneur

Supprimer tous les conteneurs:

docker rm `docker ps -a -q`

Suppression d’une image

Supprimer une image:

docker rmi nom_de_l_image

Supprimer plusieurs images:

docker rmi image1 image2 imageN

Arrêt d’un conteneur

Arrêter un conteneur:

docker stop nom_image

Envoyer un signal à un conteneur:

docker kill -s code_du_signal nom_image

Monitoring

​Lister les conteneurs en cours de fonctionnement:

docker ps

​Lister tous les conteneurs:

docker ps -a

Lister les images Docker présentes sur la machine locale:

docker images

Lister les modifications d’un conteneur par rapport à son image de lancement:

docker diff identifiant_du_conteneur

Visualiser les logs d’un conteneur:

docker logs nom_image

Explorer les processus d’un conteneur:

docker top nom_image

Construction d’un conteneur

Persister l’état d’un conteneur en une nouvelle image:

docker commit identifiant_du_conteneur  nom_de_l_image

Tag

Tag d’un conteneur:

docker build -t identifiant_du_conteneur starmate:1.0

Modifier le tag d’un conteneur:

docker tag starmate:1.0 starmate:latest

Forcer le tag d’un conteneur (si tag déjà existant):

docker tag -f starmate:1.0 starmate:latest

 

18 juillet 2017 /

Voici le script AtoMiC-ToolKit (Automate your Media Center) pour Ubuntu et ses forks du site « htpcbeginner.com »

Certain logiciel comme Sickrage ou SabNzbd ne sont pas vraiment « newbie-friendly ».
Ce script va rendre cette tâche terriblement facile.

Voici la liste des logiciels qu’il peut installer:

FIlm

  • CouchPotato
  • Radarr
  • Watcher

Musique

  • Headphones

Séries TV

  • SickGear
  • SickRage
  • Sonarr

Livres

  • Lazy Librarian

Comics

  • Mylar

Téléchargement via Newsgroup

  • NZBGet
  • NZBHydra
  • SABnzbd+

Téléchargement via Torrent

  • Deluge
  • Jackett
  • qBittorrent
  • rTorrent
  • ruTorrent
  • Transmission avec WebUI

Média Serveur:

  • Emby
  • Madsonic
  • Plex
  • PlexPy
  • Subsonic
  • ubooquity
  • Kodi

Administration:

  • HTPC Manager
  • Muximux
  • Ombi
  • Organizr
  • Webmin
  • phpSysInfo

Utilitaires:

  • pyLoad
  • Resilio-Sync

Prévu dans le futur: DuckieTV, ktorrent, Monit, MusicBrainz, MythTV, ShellInABox, Tvheadend.

Avant de commencer, si ce n’est pas déjà fait, on configure sudo pour ne pas avoir à taper de mot de passe:

sudo visudo

Puis on ajoute à la fin les droit de notre utilisateur (ici starmate):

starmate ALL=NOPASSWD: ALL

On installe GIT:

sudo apt-get install git

On clone le dépôt « AtoMiC-ToolKit »:

git clone https://github.com/htpcBeginner/AtoMiC-ToolKit ~/AtoMiC-ToolKit

On va dans le dépôt que l’on vient de télécharger:

cd ~/AtoMiC-ToolKit

Et on lance avec sudo le script nommé « setup.sh »:

sudo bash setup.sh

 

On accepte l’avertissement avec « y » puis Entrée:

 ┬ ┬┬ ┬┬ ┬ ┬ ┬┌┬┐┌─┐┌─┐┌┐ ┌─┐┌─┐┬┌┐┌┌┐┌┌─┐┬─┐ ┌─┐┌─┐┌┬┐
 │││││││││ ├─┤ │ ├─┘│  ├┴┐├┤ │ ┬│││││││├┤ ├┬┘ │  │ ││││
 └┴┘└┴┘└┴┘o┴ ┴ ┴ ┴  └─┘└─┘└─┘└─┘┴┘└┘┘└┘└─┘┴└─o└─┘└─┘┴ ┴
                __  ___             
  /\ |_ _ |\/|./     | _  _ ||_/.|_ 
 /--\|_(_)|  ||\__   |(_)(_)|| \||_ 

--->DISCLAIMERS:
--->Please read and agree to the following disclaimers:
1. AtoMiC ToolKit has only been confirmed to work on Ubuntu\Debian variants, Mint, Ubuntu Server and Raspbian.
2. www.htpcBeginner.com, its authors, or ToolKit contributors cannot be held accountable for any problems that might occur while using this ToolKit.
3. If you did not run this ToolKit with sudo, you maybe asked for your root password during installation.
5. Best used on a clean system (with no previous app install) or after complete removal of previous app installation.
4. By proceeding you agree to assume all risks and authorize the ToolKit to install any required packages.

Type y/Y and press [ENTER] to AGREE and continue with the installation or any other key to exit: y

Il va vérifier ensuite si il a bien toutes ses dépendances, le cas échéant, il les installera:

--->CHECKING TOOLKIT DEPENDENCIES ...
Sélection du paquet checkinstall précédemment désélectionné.
(Lecture de la base de données... 333904 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../checkinstall_1.6.2-4ubuntu1_amd64.deb ...
Dépaquetage de checkinstall (1.6.2-4ubuntu1) ...
Sélection du paquet libtinyxml2-2v5:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../libtinyxml2-2v5_2.2.0-1.1ubuntu1_amd64.deb ...
Dépaquetage de libtinyxml2-2v5:amd64 (2.2.0-1.1ubuntu1) ...
Sélection du paquet libzen0v5:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../libzen0v5_0.4.32-1_amd64.deb ...
Dépaquetage de libzen0v5:amd64 (0.4.32-1) ...
Sélection du paquet libmediainfo0v5:amd64 précédemment désélectionné.
Préparation du dépaquetage de .../libmediainfo0v5_0.7.82-1_amd64.deb ...
Dépaquetage de libmediainfo0v5:amd64 (0.7.82-1) ...
Sélection du paquet mediainfo précédemment désélectionné.
Préparation du dépaquetage de .../mediainfo_0.7.82-1_amd64.deb ...
Dépaquetage de mediainfo (0.7.82-1) ...
Sélection du paquet mediainfo-gui précédemment désélectionné.
Préparation du dépaquetage de .../mediainfo-gui_0.7.82-1_amd64.deb ...
Dépaquetage de mediainfo-gui (0.7.82-1) ...
Sélection du paquet par2 précédemment désélectionné.
Préparation du dépaquetage de .../par2_0.6.14-1_amd64.deb ...
Dépaquetage de par2 (0.6.14-1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.23-0ubuntu9) ...
Traitement des actions différées (« triggers ») pour desktop-file-utils (0.22-1ubuntu5.1) ...
Traitement des actions différées (« triggers ») pour bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Traitement des actions différées (« triggers ») pour gnome-menus (3.13.3-6ubuntu3.1) ...
Traitement des actions différées (« triggers ») pour mime-support (3.59ubuntu1) ...
Traitement des actions différées (« triggers ») pour hicolor-icon-theme (0.15-0ubuntu1) ...
Paramétrage de checkinstall (1.6.2-4ubuntu1) ...
Paramétrage de libtinyxml2-2v5:amd64 (2.2.0-1.1ubuntu1) ...
Paramétrage de libzen0v5:amd64 (0.4.32-1) ...
Paramétrage de libmediainfo0v5:amd64 (0.7.82-1) ...
Paramétrage de mediainfo (0.7.82-1) ...
Paramétrage de mediainfo-gui (0.7.82-1) ...
Paramétrage de par2 (0.6.14-1) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.23-0ubuntu9) ...

Il nous demande ensuite le nom du compte auquel on a donné les droit sudo sans demande de mot de passe (starmate):

--->USER INFORMATION:
--->Type the username of the user you want to use for managing apps and press [ENTER]...
Typically, this is your system login name (IMPORTANT! Ensure correct spelling and case). Do not use "root". Current username is "starmate": starmate

Et voila, vous pouvez maintenant installer avec beaucoup de facilité tous ce qu’il vous faut pour votre Home Cinéma:

Cette petite vidéo montre l’installation, la mise à jour et la desintallation de Sickbeard:

 

20 juin 2017 /

Pour cela nous devons installer exiv2:

apt-get install -y exiv2

Nous pouvons maintenant voir les métadonnées d’une photo via la commande suivante:

exiv2 /Photo/Divers/2016-12-04_13.34.46.jpg

File name : /Photo/Divers/2016-12-04_13.34.46.jpg
File size : 1114471 Bytes
MIME type : image/jpeg
Image size : 2048 x 1536
Camera make : Oneplus
Camera model : One
Image timestamp : 2016:12:04 13:34:45
Image number :
Exposure time : 1/500 s
Aperture : F2.8
Exposure bias : 0 EV
Flash : No flash
Flash bias :
Focal length : 3.6 mm
Subject distance:
ISO speed : 100
Exposure mode : Aperture priority
Metering mode : Center weighted average
Macro mode :
Image quality :
Exif Resolution : 2048 x 1536
White balance : Auto
Thumbnail : image/jpeg, 41311 Bytes
Copyright :
Exif comment :

Pour voir toutes les métadonnées (EXIF, IPTC et XMP):

exiv2 -pa /Photo/Divers/2016-12-04_13.34.46.jpg

Pour supprimer les métadonnées (par exemple avant de publier sur internet):

exiv2 rm /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renommer une photo avec la date de prise de vue :

exiv2 -r %Y%m%d_:basename:_sujet rename /Photo/Divers/2016-12-04_13.34.46.jpg

Modifier le champ Copyright:

exiv2 -M"set Exif.Image.Copyright Ascii starmate.fr" /Photo/Divers/2016-12-04_13.34.46.jpg

Suppression du champ Copyright:

exiv2 -M"del Exif.Image.Copyright Ascii starmate.fr" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour enlever 3 jours (-D), ajouter 5 mois (-O) et ajouter 10 heures (-a) à la date de prise de vue:

exiv2 -v ad -D -3 -O +5 -a +10:00:00 /Photo/Divers/2016-12-04_13.34.46.jpg

Modifier la date de prise de vue au 4 décembre 1984 à 11h34 et 55 secondes:

exiv2 -M"set Exif.Photo.DateTimeOriginal Ascii 1984:12:04 11:34:55" /Photo/Divers/2016-12-04_13.34.46.jpg
exiv2 -M"set Exif.Photo.DateTimeDigitized Ascii 1984:12:04 11:34:55" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renseigner le champs « auteur »:

exiv2 -M"set Exif.Image.Artist Ascii starmate production" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renseigner le champ description :

exiv2 -M "set Exif.Image.ImageDescription Ascii Anniversaire de Marie" /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher une métadonnée en particulier (par exemple Exif.GPSInfo.GPSLatitude) :

exiv2 -g Exif.GPSInfo.GPSLatitude /Photo/Divers/2016-12-04_13.34.46.jpg

Extraire uniquement la valeur de la balise Exif.GPSInfo.GPSLatitude :

exiv2 -g Exif.GPSInfo.GPSLatitude -Pv /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher tous les champs disponibles :

exiv2 -P k /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher les informations de géolocalisation:

exiv2 pr -p a /Photo/Divers/2016-12-04_13.34.46.jpg | grep -i GPS

Petit script pour éditer les informations de géolocalisation à la volée:

#!/bin/bash
# Modification des metadonnées de geolocalisation a la volee
##1 - Entrez le chemin du repertoire ou se trouve les photos.
##2 - Entrez l’extension de fichier en respectant la casse, c'est-à-dire, en majuscules ou minuscules (jpg, JPG, etc..)
##3 - Entrez la latitude (N) ou (S) : N ou S Cela se transformera en North ou South sur les tags exif
##4 - Entrez la latitude sous la forme "48/1 13/1 24/1",(exemple pour une latitude: 48°, 13min et 24sec).
##5 - Entrez la longitude (E) ou (O) : E ou O cela se transformera en East ou West
##6 - Entrez la longitude sous la forme "9/1 52/1 51/1", (exemple pour une longitude: 9°, 52min et 51sec).
##
echo -n "1 - Entrez le chemin des photos, sans oublier le slash "/" à la fin "
read chemin
echo -n "1 - Entrez l'extention des photos: "
read extension
echo -n "2 - Entrez la latitude, N ou S : "
read latref
echo -n "3 - Entrez la latitude sous cette forme "48/1 13/1 24/1" : "
read lat
echo -n "Entrez la longitude, E ou O : "
read longref
echo -n "Entrez la longitude sous cette forme "9/1 52/1 51/1" : "
read long
for i in $chemin*.$extension
do
exiv2 -M"set Exif.GPSInfo.GPSLatitudeRef $latref" $i
exiv2 -M"set Exif.GPSInfo.GPSLatitude $lat" $i
exiv2 -M"set Exif.GPSInfo.GPSLongitudeRef $longref" $i
exiv2 -M"set Exif.GPSInfo.GPSLongitude $long" $i
done
echo "TERMINE"

31 mai 2017 /

Coté serveur Centreon CES 3.3 (192.168.122.58)

On commence par installer le script check_nrpe:

yum install -y nrpe-plugin

 

Par défaut, la variable $USER1$ qui correspond au répertoire où sont stockés les scripts Centreon, pointe sur /usr/lib/nagios/plugins/, alors que check_nrpe a été installé dans /usr/lib64/nagios/plugins/ . Nous devons donc créer un lien symbolique pour que check_nrpe y soit présent.

ln -s /usr/lib64/nagios/plugins/check_nrpe /usr/lib/nagios/plugins/check_nrpe

 

Sur l’interface web de Centreon, nous allons maintenant configurer la commande check_nrpe.
Pour cela nous allons dans Configuration / Commandes puis on clique sur ajouter:

Dans ligne de commande on met ceci:

$USER1$/check_nrpe -H $HOSTADDRESS$ -p $_SERVICEPORT$ $_SERVICECOMMAND$

Puis on clique sur « Décrire les macro » puis sauvegarder sur le pop-up qui apparaît, pour générer le texte suivant:

MACRO (SERVICE) PORT :
MACRO (SERVICE) COMMAND :

Nous pouvons maintenant créer des services NRPE. Pour cela nous allons dans Configuration / Services / Modèles puis on clique sur Ajouter:

On rempli le formulaire comme ci dessus pour la création d’un service surveillance de la charge système d’un hôte.

On met la « Commande de vérification » sur la commande « check_nrpe« .

La variable PORT contient le port de service de NRPE, 5666.
La variable COMMAND contient la valeur « check_load« .
Cela correspond au nom de la commande sur le serveur cible (dans nrpe.cfg).

L’hôte que l’on souhaite monitorer doit donc avoir cette commande déclarer dans son fichier nrpe.cfg, comme on peut le voir ici:

vi /etc/nagios/nrpe.cfg

.....
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
......

 

Puis on va dans l’onglet « Relations » pour lié le modèle à des modèles d’hôtes:

On associe le modèle de service au modèle d’hôte qui fonctionneront avec NRPE comme ci-dessus. Il faudra reproduire la même chose pour chaque service NRPE que l’on désire configurer.

On peut maintenant créer dans Centreon notre première machine à monitorer avec notre service NRPE, « check_load« .

 

Coté client Ubuntu (192.168.0.20)

On installe sur le client Ubuntu le deamon NRPE ainsi que des scipts pour le monitorer:

apt-get install nagios-nrpe-server nagios-plugins

On va autoriser le serveur Centreon dans le fichier de configuration NRPE:

vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.122.58

Puis on démarre le service:

/etc/init.d/nagios-nrpe-server start

ou

systemctl start nagios-nrpe-server

On peut vérifier que le client Ubuntu répond au serveur Centreon avec cette commande (à faire depuis Centreon):

/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.20 -c check_load

OK - load average: 0.06, 0.06, 0.01|load1=0.060;15.000;30.000;0; load5=0.060;10.000;25.000;0; load15=0.010;5.000;20.000;0;

On va maintenant déclarer la machine dans Centreon.
Pour cela on va dans Configuration / Hôtes et on clique sur le bouton ajouter

On rempli le formulaire en ayant spécifié le modèle d’hôte « Serveurs-Ubuntu« .
L’hôte va ainsi hérité du service NRPE que nous avons créer tout à l’heure.

On peut vérifié que le service pour la charge système est bien présent pour notre hôte Ubuntu à monitorer.

Pour cela on va dans Configuration / Services et on clique sur le service de notre hôte:

On vérifie que le « Modèle de service » que l’on souhaite, ici « NRPE_Charge_Système » que l’on a configurer précédemment est bien sélectionné.
On met la « Commande de vérification » sur « check_nrpe« .

On peut vérifier que cela fonctionne depuis le serveur Centreon avec cette commande:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.20 -c check_load

Si tous est bon, il ne reste plus qu’a recharger la configuration du Collecteur:

 

Si il n’y à pas d’erreur, on coche également « Déplacer les fichier« , et « Redémarrer l’ordonnanceur »

Puis on clic sur exporter.

 

Coté Client CentOS (192.168.122.172)

Pour installer le deamon NRPE, nous devons passer par les dépôts EPEL:

yum install epel-release -y

Puis

yum -y install nrpe nagios-plugin*

On va autoriser le serveur Centreon dans le fichier de configuration NRPE:

vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.122.58

Puis on démarre le service:

service nrpe start
chkconfig nrpe on

Particularité CentOS 7

systemctl restart nrpe
systemctl enable nrpe
firewall-cmd --permanent --add-port=5666/tcp

 

On va maintenant déclarer la machine CentOS dans Centreon.

En ayant spécifié le modèle d’hôte « Serveurs-CentOS« , l’hôte va ainsi hérité du service NRPE que nous avons créer tout à l’heure.

On peut vérifié que le service pour la charge système est bien présent pour notre hôte CentOS à monitorer.

Pour cela on va dans Configuration / Services et on clique sur le service de notre hôte:

On vérifie que le « Modèle de service » que l’on souhaite, ici « NRPE_Charge_Système » que l’on a configurer précédemment est bien sélectionné.
On vérifie que la « Commande de vérification » est bien « check_nrpe« .

On peut vérifier que cela fonctionne depuis le serveur Centreon avec cette commande:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.122.172 -c check_load

Si tous est bon, il ne reste plus qu’a recharger la configuration du Collecteur:

Si il n’y à pas d’erreur, on coche également « Déplacer les fichier », et « Redémarrer l’ordonnanceur »

Puis on clic sur exporter.