08/09/2024

Scripting

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
Batch

Partager un répertoire et attribuer des permissions avec Net Share

I. Présentation Windows inclut la commande « net share » qui permet notamment de partager un dossier déjà existant, de le paramétrer et d’attribuer des permissions pour vos utilisateurs sur ce partage. Remarque : Les permissions attribuées par cette commande s’appliquent au partage mais pas au niveau des permissions NTFS, que vous devez gérer manuellement. II. Objectif du script  Créer le répertoire « ressources » à la racine de la partition « C: ».  Partager ce répertoire avec le nom « ressources » en limitant l’accès simultané à 10 utilisateurs, en ajoutant « Ressources Neoflow.fr » en description du partage. Les permissions sur le partage pour l’utilisateur « Florian » sont à définir pour qu’il accède en en lecture/écriture, et pour l’utilisateur « Administrateur » pour qu’il accède en contrôle total. III. Le code Voici le code du script, nous verrons les explications en troisième partie. REM Creation d’un partage REM Variables set DossierPartage=C:\ressources set NomPartage=ressources set RemarquePartage= »Ressources Neoflow.fr » set NbrMaxUtilisateurs=10 REM Creation du repertoire mkdir %DossierPartage% REM Partage du repertoire et parametrage net

Lire cet article
Batch

Miroir d’une arborescence avec Robocopy

I. Présentation Robocopy est un outil en ligne de commande permettant d’effectuer des tâches de copies de fichiers et de répertoires. Il propose de nombreuses options, dont une option intéressante qui permet de faire un miroir d’une arborescence c’est-à-dire de rendre identique l’arborescence source avec celle de destination. Autrement dit, cela permet de faire une sauvegarde d’un répertoire vers un autre en s’assurant que les deux soient identiques, c’est la raison pour laquelle on parle de « miroir ». Lors de la première exécution, le miroir doit être construit étant donné que la destination est vide, Robocopy copie donc tout ce qui est contenu dans la source vers le répertoire de destination. Lors des prochaines exécutions, les nouveaux répertoires et fichiers seront copiés, ainsi que tout ce qui est modifiés, et sera supprimé tout ce qui se trouve dans la destination et qui n’est plus dans la source. Toujours dans le but d’avoir deux arborescences identiques. Dans ce tutoriel, nous

Lire cet article
Batch

Lister le contenu d’un fichier texte en batch

I. Présentation Il peut parfois lors de la construction d’un batch être utile de lire /écrire les données dans un ou plusieurs fichiers textes. En batch, nous utilisons pour cela la commande FOR qui à la structure d’une boucle qui s’exécutera une fois par ligne. II. Pour lister le contenu d’un fichier texte La commande est la suivante : FOR /F %%i in (‘type Fichier_Lecture.txt’) do echo %%i >> Fichier_Ecriture.txt /F signifie que nous travaillons sur un fichier (File) %%i est l’identifiant de la ligne ou de l’objet que nous voulons traiter In (‘type ’) . Tout ce qui suis la commande do sera répété suivant le nombre de ligne du fichier. Dans cette commande, nous écrivons la ligne dans un autre fichier « Fichier_Ecriture.txt » avec la commande echo. La ligne que nous lisons est représentée là aussi par %%i III. Avec plusieurs mots par ligne La commande est sensiblement différente avec plusieurs objets par ligne. Par exemple si

Lire cet article
Base de donnéesBatch

Sauvegarder une base de données sous Windows

I. Présentation Cette fiche a pour objectif de créer un script de sauvegarde rapide d’une base de données sous un format.sql. Nous commencerons pat générer le nom du fichier dans lequel nous allons sauvegarder la base de données. II. Le script et les explications SET JOUR=%date:~-10,2% # prend les deux premiers chiffres de la commande date SET ANNEE=%date:~-4% # prend les 4 derniers chiffres de la commande date SET MOIS=%date:~-7,2% # prend les deux chiffres en partant de 7 caractères depuis la fin ( les deux chiffres du mois ) SET HEURE=%time:~0,2% # prend les deux premiers chiffres de la commande time SET MINUTE=%time:~3,2% # prend les chiffres 2 et 3 de la commande time ( les minutes ) SET REPERTOIR=E:\Desktop\ # A modifier si votre Bureau n’est pas à cet endroit SET FICHIER=%REPERTOIR%\Sauvegarde_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%.sql # Création du fichier avec les informations récupérées IF NOT exist « %REPERTOIR% » md « %REPERTOIR% » # pointage vers mysqldump, à modifier si le votre ne se trouve

Lire cet article
Batch

Utilisation de la commande CALL

I. Présentation La commande CALL est une commande DOS permettant d’appeler un script Batch dans le script principal. Pour vous aider à comprendre le fonctionnement, voici un exemple : Nous allons créer 3 scripts Batch, un principal, et deux scripts annexes. L’utilisateur devra saisir 1 ou 2, si c’est 1, le script principal appellera le script annexe 1, si c’est 2, le script principal appellera le script annexe 2. Si un chiffre supérieur à 2 est saisi, un message d’erreur apparaît. II. Création des deux scripts annexes (à appeler avec le CALL) Étant donné que ce script sert uniquement à vous montrer l’utilisation de CALL, les deux scripts annexes afficheront uniquement un message du type « Je suis le Script numero X » où X sera le numéro du script annexe. Il suffit de créez un fichier .bat et d’écrire le code suivant : Pour le script annexe 1 (Nom du fichier : ScriptAnnexe1.bat) : @echo off echo Je suis le script

Lire cet article
Batch

Planifier un arrêt ou redémarrage de Windows

I. Présentation Cette fiche est faite pour ceux qui trouveront agréable d’avoir un petit script permettant de programmer un arrêt ou un redémarrage de Windows sans passer par l’invite de commande et de devoir taper la commande Shutdown. Le script le fera pour vous, vous avez seulement à choisir l’action que vous souhaitez effectuer et le nombre de seconde avant qu’elle s’effectue. Le script inclus aussi une option permettant d’annuler la planification de l’arrêt ou du redémarrage effectuée. II. Comment créer un script Batch ? Pour créer ce genre de script il vous suffit d’utiliser un éditeur de texte tel que le Bloc-Notes ou Notepad++ et d’enregistrer votre fichier au format Batch (Extension .bat). III. Voici le code de ce script @Echo off GOTO Menu :Menu Echo —————————————- Echo ! Gestion de l’arret du systeme ! Echo —————————————- Echo 1 – Planifier un arret du systeme. Echo 2 – Planifier un redemarrage du systeme. Echo 3 – Annuler l’arret planifier.

Lire cet article
Bash

Réaliser plusieurs ping en un script

I. Présentation Le but de ce petit script est d’effectuer en une seule commande un test de l’ensemble des étapes de sortie des paquets vers le net. Ainsi en cas de dysfonctionnement d’une machine sur la route de sortie, nous pourrons déterminer à quel endroit précis ce dysfonctionnement ce situe en un script. Ce script est utile pour les réseaux importants, en effet, dans un réseau de particulier ou la seule route de sortie est celle vers la passerelle, puis vers le net, il est inutile d’utiliser un tel script. II. Le script #!/bin/bash tab[0]=127.0.0.1 tab[1]=192.168.1.18 tab[2]=192.168.1.1 tab[3]=194.2.0.20 i=1 while (( $i < ${#tab[*]} )); do ping -c 1 ${tab[$i]} -q tabR[$i]=${?}; i=$((i+1)); done clear i=1 while (( $i < ${#tab[*]} )); do if [ ${tabR[$i]} -eq 0 ]; then echo  » ${tab[$i]} répond correctement au ping.  » else echo  » ${tab[$i]} ne répond pas, l’erreur peut venir de cette étape. » fi i=$((i+1)); done   III. Explication du script Dans

Lire cet article
Batch

Bien utiliser la date et l’heure

I. Qu’elles sont les commandes pour obtenir l’heure et la date Pour visionner la date utilisez la commande : date /t Pour visionner l’heure utilisez la commande : time /t II. Comment modifier l’heure et la date ? Pour modifier la date, tapez simplement la commande : date Pour modifier l’heure, tapez simplement la commande : time III. Comment découper la date ? %DATE:~Position_de_Depart,Nombre_De_Caractères% Nombre de caractères correspond au nombre de caractères que vous souhaitez afficher à partir de la position de départ. Exemple avec la date du jour, soit : 17/11/2011 : IV. Exemples   Afficher seulement le jour : %DATE:~0,2%   Afficher seulement le mois : %DATE:~3,2%   Afficher seulement l’année : %DATE:~6,4%   Afficher la date complète sans les slashs : %DATE:~0,2%%DATE:~3,2%%DATE:~6,4%   V.Comment découper l’heure ? %time:~Position_de_Depart,Nombre_De_Caractères% Nombre de caractères correspond au nombre de caractères que vous souhaitez afficher à partir de la position de départ. Exemple avec l’heure 22h00 et 32 secondes : Vous remarquerez

Lire cet article
Batch

Copie automatique du contenu d’un périphérique

Nous allons voir comment créer un fichier .bat permettant d’effectuer une copie de périphérique ( tel qu’une clé USB ) de manière quasi-automatique. Pour cela nous utiliserons la commande ROBOCOPY Il nous suffit d’inscrire dans un fichier .bat la commande : Robocopy \E [LettrePeriph] [CheminDestination] \E :est l’option permettant de copier les sous-répertoires ( y compris les vides ) \S :permet de copier les sous-répertoires hormis les vides. \MOV :coupe les fichiers \MOVE :coupe les fichiers ET les répertoires. \XF [fichier] : Exclue les fichiers dans le chemin défini \XF [repertoires] : Exclue les répertoires dans le chemin défini

Lire cet article
Batch

Changer sa configuration TCP/IP rapidement

Si vous utilisez plusieurs configuration TCP/IP différentes et que vous trouvez ennuyeux de devoir tout ressaisir à chaque changement, ce script est fait pour vous ! Tout d’abord, copiez collez dans un fichier vide le code du script ci-dessous et enregistre-le en .bat. Ensuite modifier la valeur des variables pour adapter le script à vos besoins. Explication sur la correspondance des variables :  NomConnexion : Correspond au nom exacte de la connexion dont la configuration doit être modifiée (évitez les accents).  IP : Correspond à l’adresse IP que vous souhaitez attribuer à cette connexion.  Masque : Correspond au masque de sous-réseau.  Passerelle : Correspond à la passerelle par défaut.  DNS : Correspond au serveur DNS principal. @echo off echo Mise a jour de la configuration TCP/IP du PC. Patientez… SET NomConnexion=Local Area Connection SET IP=172.17.0.4 SET Masque=255.255.0.0 SET Passerelle=172.17.0.254 netsh interface IP set address « %NomConnexion% » static %IP% %Masque% %Passerelle% 1 SET DNS=172.22.0.2 netsh interface IP set DNS « %NomConnexion% » static %DNS%

Lire cet article