17/11/2024

Shell

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
Commandes et SystèmeSSH

Fermer une session TTY à distance

I. Présentation Il peut parfois arriver que l’on oublie de fermer une session TTY (en connexion « physique ») à une machine ou un serveur. Auquel cas il peut être pratique de savoir fermer cette connexion à distance (via SSH par exemple). C’est ce que nous allons voir dans ce tutoriel. II. Fonctionnement Pour mieux comprendre comment nous allons faire, il faut savoir que chaque action sur une machine est présente sous la forme d’un processus désigné par un numéro d’identification: le PID. La commande POSIX « ps » nous permet d’afficher les processus en ligne de commande sous une machine UNIX : ps -ef Options : « -e » permet d’afficher tous les processus actifs « -f » permet d’avoir un affichage plus détaillé. Nous verrons alors beaucoup de processus actifs, si on affiche un exemple de ces processus : Nous pouvons ici voir plusieurs informations intéressantes. Ce qu’il faut savoir est que la première colonne désigne l’utilisateur qui a lancé la commande. La deuxième est le

Lire cet article
Commandes et SystèmeSSH

Gestion du temps d’inactivité d’un shell

I. Présentation Il peut parfois arriver lorsqu’une connexion shell est établie sur un poste (SSH ou direct) d’oublier par négligence de fermer cet accès créant ainsi une ouverture à d’éventuelles attaques physiques. On peut imaginer qu’en allant sur une urgence ou en simple pause, une autre personne vienne sur le poste pour prendre le contrôle de l’accès SSH ou TTY de votre machine. Nous allons donc configurer notre shell pour qu’il se ferme automatiquement au bout de quelques minutes d’inactivité. Nous allons faire en sorte qu’au bout de 5 minutes d’inactivité, le bash se ferme automatiquement. Cela évitera que si, par négligence, on laisse ouvert un terminal sur notre serveur et quelqu’un puisse venir derrière le prendre pour l’utiliser en ayant alors un accès total à la machine. Dans le « man » de bash, nous apprenons que la valeur « TMOUT » pour « Timeout » (délai d’expiration) est le délai d’inactivité en seconde après lequel une session sera

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
Services

Wipe : Supprimer définitivement un dossier sous Ubuntu

I. Présentation Récemment, nous avons vu Shred qui permettait de supprimer définitivement un fichier sous Ubuntu, en le déchiquetant. Toutefois, ce dernier ne permettait pas la suppression de dossiers ou d’arborescences, c’est pourquoi dans ce tutoriel nous allons voir « Wipe » qui le permet. Il faut manipuler Wipe avec précaution parce que si vous supprimer définitivement une arborescence en faisant une erreur de manipulation, cela peut être catastrophique pour votre machine. II. Installation Contrairement à Shred, Wipe n’est pas intégré à la distribution Ubuntu, vous devez donc l’installer. Comme ceci : apt-get update apt-get install wipe   III. Utilisation Une fois l’installation terminée, nous allons pouvoir commencer à utiliser Wipe. Avant de commencer, créer une arborescence de test contenant des fichiers. Dans mon cas, j’ai créé un répertoire nommé « MesFactures » dans lequel sont stockées des factures « ma_facture_1.txt », « ma_facture_2.txt », etc… arbo wipe MesFactures/ Si vous utilisez la commande indiquée ci-dessus, Wipe vous retournera un

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
Commandes et Système

La commande history sous linux

I. Présentation La commande history est une commande POSIX (commune à toutes les distributions type Unix) qui permet de remonter dans les commandes que nous avons passées. Il vous arrive probablement souvent de remonter vos commandes pour les réexecuter avec le « UP » (flèche du haut) de votre clavier, vous faites ainsi défiler l’ensemble des commande que vous avez exécutées. Cela est possible grâce à « history ». En effet, quand vous passez une commande, celle-ci est stockée dans un fichier du nom de « .history » du répertoire « home/$User ».Si l’utilisateur « paul » tape les commandes « ls »et « cd / », celles-ci seront stockées dans le fichier « /home/Paul/.history » et quand Paul voudra remonter dans ses commandes, c’est le processus et le fichier « .history » qui l’aideront. II. La commande Tapez la commande suivante pour voir vos dernières commandes passées: history Les commandes que vous verrez seront alors uniquement celles de l’utilisateur avec lequel vous êtes connecté. Pour voir les commandes d’un autre utilisateur, il faut aller ouvrir le fichier

Lire cet article
Commandes et Système

Trier les lignes d’un fichier selon un mot avec sed

I. Présentation Dans ce tutoriel, nous allons apprendre à sortir uniquement les lignes qui nous intéressent dans un fichier donné. Dans un gros fichier comme un fichier de logs, il peut être utile de n’afficher qu’un type de ligne, par exemple celles qui contiennent le mot « sshd » pour trier les processus de connexion sshd dans le fichier auth.log de votre système. Nous prendrons ce fichier (/var/log/auth.log) et ce processus (sshd) comme exemples pour ce tutoriel. Le fichier auth.log contient donc différents types d’informations concernant plusieurs processus. II. La commande Nous allons utiliser la commande sed pour n’afficher uniquement les lignes contenant le mot « sshd » pour les écrire ensuite dans un fichier à part. Nous allons donc utiliser cette commande que j’expliquerais par la suite : sed -n -e ‘/sshd/p’ auth.log > authssh.log sed : sed est une commande qui permet de manipuler des fichiers ou beaucoup d’autres types d’entrée -n : Indique qu’il faut afficher uniquement les lignes qui nous

Lire cet article
Commandes et Système

Enlever les commentaires d’un fichier

I. Présentation Dans certains fichiers de configuration la présence des commentaires (reconnaissables car ils commencent par ‘#’) peut rendre difficile la lecture, il peut être utile d’enlever ces lignes pour ne garder que les lignes de configurations utiles. Avec la commande sed, il est possible de traiter entièrement le fichier, d’en enlever tous les commentaires et de sauvegarder le résultat dans un autre fichier (sans changer le fichier initial). II. Exemple Admettons que nous ayons une fichier (config.txt) contenant ces lignes : Début du fichier # commentaire # commentaire # commentaire milieu # commentaire # commentaire Fin de ficher Si nous ne voulons garder que les lignes dé-commentées, il nous faut appliquer cette commande et sauvegarder dans un fichier config2.txt sed ‘/^#/d’ config.txt > config1.txt La sortie de cette commande sera Début de fichier milieu Fin de fichier sed est une commande qui permet de manipuler des fichiers ou beaucoup d’autres type d’entrée. /^#/ est la chaine de caractère que

Lire cet article
Commandes et Système

L’utilisation de la combinaison des commandes grep et cut

I. Présentation Dans le but de récupérer certaines parties d’un résultat suite à la commande grep, il peut paraitre utile d’utiliser la commande cut qui coupera notre résultat à partir d’un caractère par exemple. II. Exemple d’utilisation Nous souhaitons par exemple dans un script bash mettre notre adresse IP dans une variable. En toute logique la commande pour récupérer notre adresse IP est la suivante : Nous avons alors trop d’informations puisque nous souhaitons uniquement l’adresse IP de notre machine. Nous pouvons alors utiliser grep pour nous retrouver seulement avec une seule ligne, nous savons que la ligne contenant notre IP contient également le terme « Bcast », nous passons alors cette commande pour nous retrouver uniquement avec cette ligne : Voila qui est déjà mieux, cependant nous ne voulons toujours uniquement notre IP. Nous voyons que notre ligne est plusieurs fois séparée par des espaces. Cela tombe bien, la commande cut permet de découper une entrée en utilisant un

Lire cet article
Commandes et Système

Générez vos propres QR codes

I. Présentation Les codes QR sont de plus en plus répandus et remplacent petit à petit les codes-barres linéaires parce qu’ils peuvent transporter beaucoup plus d’informations grâce au fait que se sont des codes-barres à deux dimensions. Il y a plusieurs manières d’en générer, on peut même trouver des générateurs sur le net mais nous allons voir comment créer nos propres codes QR sous Linux, de manière simple. II. Le nécessaire Pour générer nos codes QR nous avons besoins du module Python « qrcode » et du paquet « python-imaging » qui permet à l’interpréteur Python de traiter les images. On installera également « python-pip » qui permet de télécharger des modules Python. III. Installation des paquets nécessaires Avant toute chose, mettons à jour la liste des paquets : apt-get update Nous allons installer un module Python en allant le chercher directement depuis le dépôt central (pypi.python.org), pour cela on utilise le module « pip », que nous allons installer grâce à la commande suivante : apt-get install

Lire cet article