17/11/2024

Bash

Commandes et Système

Calculer l’empreinte MD5 d’un dossier sous Linux

I. Présentation Dans un précédent tutoriel, nous avions vu comment calculer l’empreinte MD5 d’un simple fichier sous Linux. Seulement quand nous voulons calculer l’empreinte d’un dossier entier, nous obtenons un message d’erreur nous indiquant que la cible est un dossier et que md5 ne peut donc pas calculer son empreinte : Il est néanmoins possible de calculer la somme md5 d’un dossier, ou plus précisément de tous les fichiers d’un même dossier. On va pour cela calculer la somme MD5 de tous les fichiers de ce dossier puis calculer la somme MD5 de ces sommes MD5. Le but ici est de déterminer si un des fichiers positionnés dans le dossier cible a subit une modification. On utilisera pour cela la commande suivante (par exemple pour le dossier « /etc ») : find /etc/ -type f -exec md5sum {} \; > /tmp.md5 && md5sum /tmp/md5 && rm /tmp/md5 Nous allons détailler un peu plus cette commande qui se découpe en trois parties séparées

Lire cet article
Commandes et Système

Voir les entrées/ sorties disque avec iotop sous Linux

I. Présentation Dans ce tutoriel, nous allons voir comment analyser les entrées et sorties disque sur un système Linux. La commande « iotop » (Input/ Output) non native à Linux nous permet en effet de vérifier les écritures (entrées) et lectures (sorties) sur notre disque. II. Installation de la commande Il nous faut déjà commencer par installer la commande qui n’est pas présente par défaut dans la plupart des cas : apt-get update apt-get install iotop III. Utilisation Ensuite nous pourrons simplement l’utiliser en saisissant « iotop » et voir ce que cela nous affiche : On voit donc la liste de nos processus avec plusieurs informations sur leur utilisation du disque. On voit également un total de l’utilisation tout en haut du tableau. Actuellement, aucun processus n’utilise le disque en lecture ou en écriture. On pourrais simuler une lecture du disque en exécutant la commande « tree » depuis la racine « / » qui va donc lister tous les répertoires du disques. On commence pour cela

Lire cet article
Commandes et Système

Afficher la version d’un paquet présent dans les dépôts

I. Présentation Dans ce tutoriel, nous allons voir comment il est possible d’afficher la version d’un paquet présent dans les dépôts (les dépôts sont les endroits depuis lesquels nous téléchargeons les paquets pour les installer avec la commande « apt-get » sous Debian par exemple). II. Procédure On utilise pour cela la commande « apt-cache » native aux distributions Debian. Par exemple pour le paquet « apache2 » : apt-cache policy apache2 Nous aurons alors cette sortie : On voit ici que le paquet « apache2 » présent dans les dépôts est la version 2.2.16 du paquet. On voit également quelles sont les lignes prioritaires dans le fichier « sources.list » qui contient la liste des dépôts à utiliser. On remarque également un ligne « Installé : (aucun) » qui indique que le paquet n’est pas présent sur le système. Si le paquet été installé, nous aurions alors sa version également comme suivant :  

Lire cet article
BashCommandes et Système

Marquer un temps d’arrêt en bash avec SLEEP

I. Présentation Dans ce tutoriel, nous allons apprendre à marquer un temps d’arrêt dans un script bash. Ce peut être une pratique utile dans beaucoup de cas différents. On peut par exemple lancer une commande de lancement d’une machine virtuelle puis vouloir faire une vérification afin de voir si celle-ci est bien démarré. On voudra alors marquer une temps d’arrêt entre le lancement et la vérification pour attendre que la VM ai bien démarré. Ce cas est un exemple parmis beaucoup d’autres. II. La commande « sleep » Nous allons pour le tutoriel utiliser « sleep » de manière très simple comme suivant dans un script bash appelé « script.bash » : #!/bin/bash date echo « étape 1 : » ; sleep 10 date echo « étape 2 :  » ; Nous rendons ensuite exécutable notre script : chmod +x script.sh Puis nous l’exécutons : ./script.sh Voila la sortie que nous en aurons : On voit donc bien que le « 10 » correspond à une attente de 10 secondes. Essayons

Lire cet article
Commandes et Système

Calculer une empreinte SHA1 sous Linux

I. Présentation Dans ce tutoriel, nous allons apprendre à utiliser la commande sha1sum pour calculer l’empreinte d’une données. Le SHA1 est réputé pour être « plus fiable » que le md5, cela est surtout du au faite que les empreintes qu’il génère sont sur 40 caractères (20 octects) plutôt que 32 caractères pour le md5. Il existe également une multitude de rainbow table md5 qui sont des bases de données contenant le hash md5 et leur correspondance claires sur des sites en ligne. Pour information, une empreinte sert à calculer l’intégrité d’une donnée. Un même fichier avec un seul bit de différence donnera une empreinte totalement différente. II. Utilisation de la commande Si nous voulons par exemple calculer l’empreinte du fichier « file1 », nous utiliserons la commande comme suivant : sha1sum file1 Nous aurons alors en résultat l’empreinte de ce fichier : On peut aussi vouloir mettre cette empreinte dans un fichier pour que les utilisateurs puissent la comparer à nouveau  : sha1sum

Lire cet article
Commandes et Système

Créer un lien symbolique sous Linux

I. Présentation Dans ce tutoriel, nous allons apprendre à faire des liens symboliques entre des répertoires et des fichiers. Un lien symbolique se rapproche d’une copie directe ou d’un raccourci. Un répertoire ou un fichier est l’exacte copie (en temps réelle) d’un autre. Souvent les liens symboliques sont utilisés pour simplifier les arborescences (nom de répertoire ou de fichier trop complexe ou mal placés). II. Lien symbolique entre répertoire D’une manière générale, voici comment utiliser la commande « ln » pour créer un lien symbolique : ln -s dossier_cible nom_du_lien Dans le contexte de mon exemple, je souhaite qu’en allant sur le répertoire /opt/jdk, j’atterrisse en réalité sur /opt/jdk1_7.2. Cela permet de facilement gérer le changement de version de JAVA. Mais ce n’est qu’un exemple 🙂 Nous allons commencer par créer lien symbolique entre deux répertoires. Nous utiliserons pour cela la commande « ln » (links) : ln –s /root/jdk1_7.2 /root/jdk Le lien symbolique « /root/jdk » sera alors créé. Note : Il faut

Lire cet article
BashCommandes et Système

Trier des fichiers selon une date avec FIND

I. Présentation Dans ce tutoriel, nous allons apprendre à tirer et à agir sur des fichiers et des dossiers selon une date. Cela pourra être leur date de création, de modification ou de dernier accès. Nous pourrons effectuer plusieurs actions sur ces données une fois que nous saurons les trier. II. Les options FIND Pour ce faire, nous allons nous aider de la commande « find » qui sert à lister et trier des fichiers selon certaines options. Nous pouvons en effet avec FIND définir le nom ou une partie du nom de ce que nous cherchons ( option « -name < > »), définir sur combien de niveau (arborescence) on souhaite chercher ( option « -maxdepth < > »), depuis où, etc … Par exemple si nous souhaitons chercher toutes les archives faites dans le dossier « /var/log » qui sont plus âgées que 5 jours : find /var/log/ -maxdepth 3 -name « *gz* » -ctime +5 Explication : « /var/log » : indique le répertoire ou nous allons chercher. Nous

Lire cet article
Cloud

Script – Externaliser les données des utilisateurs ownCloud

I. Présentation Si vous utilisez le gestionnaire de fichiers ownCloud mais que vous utilisez un espace de stockage externe, comme un NAS par exemple, et que vous souhaitez que chacun de vos utilisateurs ownCloud possède un accès à un répertoire personnel sur ce NAS, ce script est fait pour vous ! En effet, lorsque vous exécuterez ce script Bash sur votre serveur ownCloud, celui-ci vous demandera de saisir le nom de l’utilisateur pour qui le répertoire sur le NAS doit être créé. Ensuite, un dossier portant le nom de cet utilisateur sera créé sur l’espace de stockage externe, et, un lien symbolique entre ce répertoire et le répertoire ownCloud de cet utilisateur sera créé. De ce fait, les données de vos utilisateurs seront stockées sur le NAS (votre espace de stockage externe) et non sur votre serveur ownCloud. Les données sont donc externalisées du serveur web. A chaque fois que vous créerez un utilisateur, vous devez exécuter à nouveau le

Lire cet article
Commandes et Système

Récupérer des informations sur son système Linux avec UNAME

I. Présentation Dans ce tutoriel, nous allons apprendre à récupérer des informations sur notre système avec la commande uname. Ces informations peuvent être le nom d’hôte, le processeur de notre machine, la version du noyau.. II. Utilisation uname est une commande POSIX (présente sur tous les systèmes UNIX) qui permet de récupérer ce genres d’informations. On utilise rarement la commande uname seule mais plutôt avec l’option « -a » ou « -all » qui affiche l’ensemble des informations systèmes importantes : L’option « -a » permet de regrouper l’ensemble des autres options disponibles sur la commande « uname ». Dans l’ordre, ces commandes sont les suivantes : « -s » ou « –kernel-name » : C’est le nom du noyau, Ici « Linux ». « -n » ou « –nodename » : C’est le nom d’hôte de votre machine, ici « srvlinux1 ». « -r » ou « –kernel-release » : C’est la version actuelle du noyau , ici « 2.6.32-5-686 » soit squeeze en 32 bits. « -v » ou « –kernel-version » : C’est la date à laquelle a été compilé le noyau (date de mise à jours

Lire cet article
BashCommandes et Système

Les variables spéciales shell sous Linux

I. Présentation Dans ce tutoriel, nous allons nous attarder sur les variables spéciales shell. Ces variables servent dans la plupart du temps dans les scripts bash car ils permettent de récupérer des informations sur les arguments passés ou sur l’exécution en cours. On utilisera ces variables spéciales dans nos scripts, la plupart du temps par un affichage avec « echo » ou pour le traitement des données et paramètres d’un script. Les variables spéciales se compose toujours de deux caractères, le premier est « $ » est le deuxième varie en fonction de la variable et du résultat voulu par exemple « $* » ou « $1 ». Pour tous le tutoriel, on considérera qu’on à un script « script.sh » contenant la trame suivante : #!/bin/bash echo « Arg = < variable spéciale > » ; Nous passerons ainsi divers paramètres pour tester leurs fonctionnements. On exécutera ce script via la commande suivante : bash script.sh Il nous faudra bien sur avant le passer en exécutable : chmod +x script.sh  

Lire cet article
Base de donnéesBash

Script – Sauvegarde des bases de données sous Linux

I.  Présentation Afin d’assurer une tolérance aux pannes et une sauvegarde des informations importantes, une sauvegarde des bases de données Mysql peut être faite avec un script. Il est en effet intéressant de pouvoir automatiser la sauvegarde des bases de données d’un serveur, car elles contiennent souvent des informations importantes et vitales dans une entreprise. Ce backup sera effectué par un utilisateur « backup » qui sauvegardera régulièrement et automatiquement l’ensemble des bases de données du serveur. II. Création de l’utilisateur de backup Il faut tout d’abord créer un utilisateur qui aura uniquement les droits de lecture sur l’ensemble des bases de données. Les opérations seront lancées à partir d’un script, il serait donc dangereux de les lancer avec un utilisateur ayant des droits de modification, de création ou de suppression sur les bases de données.On se connecte au serveur de base de données : mysql -u root -p On crée l’utilisateur ‘backup’@’localhost’. Il est important de préciser que backup

Lire cet article
Bash

Vérifier la présence d’un répertoire ou d’un fichier

I. Présentation Dans ce tutoriel, nous allons voir comment vérifier la présence d’un dossier ou d’un fichier dans notre OS Linux. Nous allons voir comment mettre une condition en action selon le résultat de notre vérification. Lors de la construction d’un script, il peut être intéressant de ne créer une fichier ou un dossier uniquement si il n’est pas présent par exemple. C’est ce que ce tutoriel va nous apprendre à faire. II. Vérifier la présence d’un dossier Dans une condition construite dans un fichier bash, il est possible de vérifier par une option si un dossier existe : #!/bin/bash if [ -d « /home/neaj/dossier1 » ];then echo « Le dossier1 existe ! »; fi On créer donc notre condition « if « . Le « -d » est l’option qui indique que nous voulons voir si le dossier précisé juste derrière existe. Le « d » est pour « directory ». Si c’est le cas, on écrira « Le dosser1 existe ! ». Enfin on fermera notre condition avec « fi ». On peut imaginer

Lire cet article
BashCommandes et Système

L’enchaînement des commandes sous Linux

I. Présentation Sous Linux, quand nous travaillons en ligne de commande, il est souvent bien pratique d’avoir la possibilité d’exécuter plusieurs commandes en une seule ligne. Par exemple si l’on souhaite télécharger, décompresser et ouvrir une archive, on exécutera une seule ligne de commande comme suivant: wget http://archive.tar.gz/ ; tar zxvf -C /opt/ archive.tar.gz ; cd /opt/archive/ Au lieu d’exécuter plusieurs de ces commandes séparément et avec une commande par ligne. Il est néanmoins important dans l’exécution de ces commandes que chacune réussissent pour que la prochaine soit utilisable et utile. II. les caractères d’enchainement Il existe sous Linux trois caractères qui permettent l’enchainement des commandes, il s’agit de « ; », « || » et « &&. Chacun de ces trois caractères ont un type d’exécution différents au niveau de l’enchainement des commandes. III. Le point virgule Un enchainement de commande avec un point virgule comme c’est le cas dans l’exemple enchaînera les commandes sans se soucier de la réussite ou de l’échec de

Lire cet article
Commandes et Système

Activer l’autocomplétion bash sous Linux

I. Présentation L’auto-complétion sous Linux est ce qui existe nativement au niveau du parcours des fichiers. Par exemple si vous commencez à entrer « ls /home/ » puis que vous appuyez sur [TAB] vous verrez l’ensemble des fichiers et dossiers du répertoire. Également si vous entrez le début du nom d’un fichier et que vous appuyez sur [TAB], la fin du fichier s’écrit tout seul. Ce que nous cherchons à faire ici est d’avoir le même procédé pour les commandes Linux ou les paquets lors d’un apt-get. II. La procédure La procédure est assez simple, il  faut se rendre dans le fichier /etc/bash.bashrc en root et décommenter les lignes suivantes : if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi Il faut ensuite recharger votre terminal pour qu’il applique les nouveaux paramètres : source .bashrc Vous pourrez alors constater que si vous entrer « apt- » puis que vous appuyez sur [TAB] vous aurez la liste des possibilités de

Lire cet article