Script de sauvegarde des bases de données avec MySQLDump

Dans cet article nous allons écrire un petit script pour faire des sauvegardes de chaque base de données. Pour ce faire nous allons utiliser la commande MySQLDump.

Nos bases de données :

remarque : On ne veux pas sauvegarder les bases de données information_schema; performance_schema et mysql.

Notre script :

Nous commençons par déterminer une variable pour stocker la date (TIME), ensuite on crée notre dossier de backup (mkdir), notre variable « databases » va contenir le résultat de la commande mysql « SHOW DATABASES; » tout en excluant les bases de données qu’on ne veut pas sauvegarder (on exclut également le titre « Database« )

Ensuite on parcourt la variable précédente (donc on parcourt chaque base de données) que l’on sauvegarde avec mysqldump et que l’on « gzip« .

Si on va dans notre dossier de sauvegarde, on voit que tout a bien été crée.

Télécharger le script en cliquant ici.

PowerShell partie 3 : Les dossiers et les droits

En powershell la création de dossiers se fait avec la commande New-item voici quelques options utilisées lors de la création d’un dossier :

Options

Sert à

-path

Indiquer le chemin

-type

Indiquer si c’est un dossier ou un fichier (“file” ou “directory”)

-name

Indiquer le nom du dossier

Exemple de la création d’un dossier nommé partage et se trouvant à la racine de C :

new-item -path c:\ -type directory -name partage

Créer des dossiers c’est bien beau mais moi je veux les partager et surtout donner des droits.

La commande permettant de donner des droits aux fichiers et dossiers est icacls. Elle fonctionne comme suit :

icacls C:\partage /setowner “user” /T → rend l’utilisateur propriétaire du dossier et des sous-dossiers (T)

icacls C:\partage /grant “user:(F)” /T → « user » obtiendra le droit “contrôle totale” (:(F)) sur le dossier et ses sous-dossiers.

Pour les droits NTFS des dossiers je vais créer un script. Voici à quoi ressembera mon script :

import-module activedirectory

icacls C:\partage\CE /grant « G_ce:(F) »

icacls C:\partage\Clientele /grant « G_clientele:(F) » /T

icacls C:\partage\Clientele\RelationCli /grant « G_clientele:(R) » /T
icacls C:\partage\Clientele\RelationCli /grant « G_relacli:(F) » /T

icacls C:\partage\Clientele\SAV /grant « G_clientele:(R) » /T
icacls C:\partage\Clientele\SAV /grant « G_sav:(F) » /T

icacls C:\partage\Informatique /grant « G_info:(F) » /T

icacls C:\partage\RH /grant « G_rh:(F) » /T

icacls C:\partage\ServiceEco /grant « G_serveco:(F) » /T

icacls C:\partage\ServiceEco\Achats /grant « G_serveco:(R) » /T
icacls C:\partage\ServiceEco\Achats /grant « G_achats:(F) » /T

icacls C:\partage\ServiceEco\Facturation /grant « G_serveco:(R) » /T
icacls C:\partage\ServiceEco\Facturation /grant « G_facturation:(F) » /T

PowerShell partie 2 : Modification de l’annuaire AD

Pour utiliser les commandes liées à l’annuaire AD il faut importer le module contenant ces commandes, c’est ce qu’on va faire grâce à la commande import-module activedirectory, on pourra voir toutes les commandes de ce module avec la commande get-command activedirectory.

Création d’OU

Voilà mon script pour ajouter une OU si elle n’existe pas :

La variable $nom sert à saisir le nom de la novelle OU.

La variable $cnldap est le chemin de la nouvelle OU, elle sera sous le contrôleur de domaine « kvbooktic.local » et sous l’OU « powerOU ».

Dans la variable $testou on commence par obtenir toutes les OU avec le même nom que le nom d’OU que l’on vient d’entrer. Get-adorganizationalunit permet de chercher dans les OU, -filter {name –eq $nom} filtre par noms égaux a $nom, -searchbase $cnldap permet de chercher dans le chemin ou l’OU se trouvera.

La fonction if sert à savoir si la variable $testou est vide ou non, si elle est vide c’est qu’il n’existe pas d’OU portant le nom $nom.

La commande new-adorganizationalunit sert à créer une nouvelle OU, l’option –name indique le nom de l’OU et l’option –path donne le chemin ou sera créé l’OU.

Lire la suite

PowerShell partie 1 : Les bases

Les scripts auront l’extension .ps1 pour indiquer à Windows que c’est un script PowerShell.

Les commandes sont des commandes dites objets, elles se construisent comme ceci :

Action-Objet

Dans les actions on a par exemple : get, set, new, write, start, stop, remove, import, etc.

Certaines commandes sont disponibles via des alias comme par exemple :

Write remplace write-output ;

F : fera comme set-location F : ;

Dir pour get-children ;

ou encore copy pour copy-item ;

Etc.

Lire la suite

Script pour une table de routage statique.

J’ai un routeur sous Debian, et je souhaite configurer ce routeur avec une table de routage statique.

J’utilise donc la commande ip route add [réseau] via [passerel] pour ajouter chaque route, mais quand je redémarre, toutes les routes partent… Vu que je n’ai pas envie de retaper toutes les lignes à chaque démarrage j’ais fais un script exécuter au démarrage et créant ma table de routage.

L’autre avantage de ce script c’est que si je remplace ma machine actuelle par une autre machine, je n’ai qu’à remettre le script, et tout sera configuré et fonctionnel !

Quelques précisions :

La machine en question est une Debian 9, donc je n’utilise pas les net-tools qui ne sont plus présent par défaut depuis Debian 9. Si vous avez une version ultérieur, la commande ip route add [réseau] via [passerel] ne fonctionnera pas a moins d’avoir installer les outils d’iproute2

Le script prend en argument un fichier csv.

Vous pouvez télécharger le script ici.

Une fois le script téléchargé vous n’avez plus qu’à créer un fichier CSV utilisant les virgules comme séparateur et ayant les réseaux à joindre dans la première colonne et le prochain saut dans la deuxième colonne.

Comme ceci :

Ensuite lancer le script avec le fichier CSV en argument et ce sera tout bon. Placer vous dans le dossier du script et utiliser la commande ./script_table.sh (nom_du_fichier.csv).

Script de création de zone et de Virtual Host.

Suite à l’article détaillant la création d’une zone et l’ajout d’un VH (Virtual Host), article que vous pouvez retrouver ici.

J’ai créé un script bash pseudo-graphique qui fait tout ce travail il est composé de plusieurs fichiers différents, le fichier principal (celui qu’il faut lancer) est le fichier nommé bind_apache.sh.

Le script commence par vérifier si Bind9 et Apache2 sont installés, et les installe si ce n’est pas le cas.

Ensuite le script va trouver votre adresse IP ou vous la demander.

Une fois que l’adresse IP est entrée, vous avez accès à un menu qui va proposer plusieurs options en rapport avec la création de zone et la création de Virtual Host Apache2.

Un exemple de création de zone :

Vous pouvez télécharger ce script en cliquant ici.