Script .bat de backup d’une table MySQL

29 07 2012

Voici un petit script .bat (Windows batch), qui permet de faire un backup d’une base MySQL (avec une table particulière si vous la précisez dans la commande).

Le backup est créé dans le même dossier que le script bat, et porte la date et l’heure dans son nom de fichier
ex: backup maBase maTable 2012-07-29_16h45m33.sql

:: Script de backup MySQL

:: Récupération de date/heure dans la variable datetime
echo off
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set datetime=%year%-%month%-%day%_%hour%h%min%m%secs%

:: Backup avec mysqldump
mysqldump -u root -proot maBase maTable > "backup maBase maTable %datetime%.sql"

Il y a plusieurs points sur lesquels il faut faire attention (prérequis) :

  • Ne mettez pas d’espace autour de l’opérateur d’affectation (=), sinon windows ne les reconnaitra pas
  • Vous devez avoir un compte MySQL ayant un mot de passe, sinon un prompt va vous demander le mot de passe à chaque exécution
  • Il n’y a pas d’espace entre -p et le mot de passe, alors qu’il y en a un entre -u et le nom d’utilisateur, ne cherchez pas pourquoi c’est comme ça ^^
  • Le programme mysqldump.exe doit se trouver dans un dossier appartement au Path (variable d’environnement de Windows)
    ex: C:\EasyPHP5.2.10\mysql\bin


Créer un lien symbolique sur Windows, comme sur Unix

2 07 2012

Voilà une astuce qui va plaire à tout ceux qui font du développement web sous techno Apache (PHP entre autre…).

Vous connaissez peut-être les liens symboliques sous Unix (qu’on voit souvent sous la dénomination “Symlinks” dans la configuration Apache, ex: FollowSymLinks).

En fait un lien symbolique est un pointeur sur un fichier, complétement transparent pour les programmes qui l’utilise.

Si vous créez un lien symbolique vers /Applications/mondossier dans /Users/Vincent/monSymLink, et que vous ouvrez le dossier /Users/Vincent/monSymLink dans n’importe quel programme, tout va se passer comme si ce dossier /Users/Vincent/monSymLink existait vraiment, ça n’est pas juste une redirection vers /Applications/mondossier, c’est le même dossier accessible depuis 2 liens différents.

Sous Windows cette fonctionnalité n’existait pas, en effet les raccourcis Windows sont juste des redirections qui ne fonctionnent en gros qu’avec l’explorateur Windows, mais pas au niveau du système de fichiers.

N’existait pas, car depuis Windows Vista, Microsoft a enfin introduit la gestion des liens symboliques dans son système d’exploitation, via la commande mklink :

mklink /D /H /J [LINK NAME] [TARGET]

/D : pour créer un lien de type dossier, vers un dossier (symlink)
/H : pour créer un lien de type fichier, vers un fichier (hardlink)
/J : pareil que le hardlink mais pour les dossier (junction)

Il faut vous placer dans le dossier où vous voulez créer le raccourcis avant, puis exécuter la commande.

Exemple :

cd "C:\test-mklink\"
mklink /H monLien.txt "C:\Users\Vincent\Desktop\monFichier.txt"

Pour plus d’info sur tout ça, je vous invite à lire ma source :
http://ipggi.wordpress.com/2009/09/07/windows-file-junctions-symbolic-links-and-hard-links/