11
Posted by alex on Nov 16th, 2008

Il existe des centaines de méthodes pour faire des backups, plusieurs avec rsync. Rsync étant un outil merveilleux et très puissant, dans ce billet je vais vous expliquer une méthode efficace qui économise l'espace disque.

Pour l'exemple on va prendre pour acquis que la sauvegarde se fait tous les jours, mais ça pourrait aussi bien être toutes les semaines, tous les deux jours, etc... Cette méthode permet donc de garder une sauvegarde des trois derniers jours mais sans utiliser trois fois l'espace.

Quelques avantages de cette méthode:

  • On ne copie que les fichiers qui ont changés donc utilisation moindre d'espace et un backup beaucoup plus rapide.
  • On peut remonter trois jours en arrière sans se casser la tête (Souvent les backups incrémentaux garde juste les fichiers qui ont changé, donc pour restaurer un backup on doit tout reconstruire en partant du backup le plus ancien au plus récent.... Nous on va tricher, on va faire semblant que chaque backup est une image complète du dossier source :) )
  • Dans un système de fichiers, un simple fichier peut avoir plusieurs noms, ce qu'on appelle des "hardlinks". Cela permet à nos sauvegardes d'avoir chacun un lien vers un fichier identique au lieux de le copier trois fois. Si le fichier change entre les sauvegardes, nous supprimons le hardlink et le fichier modifier prend sa place!

Tout d'abord voici de quoi aurait l'air le script shell:

#!/bin/sh
TARGET=/mnt/sda2/backups
SOURCE=/home/
/bin/rm -Rf $TARGET/backup.2
/bin/mv $TARGET/backup.1 $TARGET/backup.2
/bin/mv $TARGET/backup.0 $TARGET/backup.1
/usr/bin/rsync -a --no-o --delete --safe-links --link-dest=$TARGET/backup.1 $SOURCE $TARGET/backup.0/

Explication:

SOURCE est le dossier que vous désirez sauvegarder.

TARGET est la destination des sauvegardes (de préférence un disque dur différent ou, au moins, une partition différente).

Dans le dossier $TARGET vous devez créer trois dossiers: backup.0, backup.1 et backup.2. Ceux-ci contiendront vos sauvegardes d'aujourd'hui, d'hier et d'avant hier respectivement.

Le script commence par supprimer le dossier backup.2 qui est le plus ancien backup. Il décale les autres dossiers afin de pouvoir créé un nouveau backup.0, c'est à dire le plus récent (aujourd'hui).

La magie se passe dans la dernière ligne. Rsync va scanner le dossier source en le comparant avec la sauvegarde du jour précédent (--link-dest=$TARGET/backup.1). Il va vérifier tous les fichiers trouvés dans le répertoire source et les comparer avec ceux du jour précédent, backup.1. Lorsqu'il trouve un fichier qui a changé depuis la dernière sauvegarde, il le copie dans backup.0. Par contre, et c'est là toute la beauté de la chose, si le fichier n'a PAS changé, il va créé un lien dur vers le fichier se trouvant dans la sauvegarde d'hier.

De cette façon chaque dossier de sauvegarde backup.0, backup.1 et backup.2 seront des images "complètes" de votre dossier source, mais les fichiers identiques entre les sauvegardes seront stoqués une seule fois sur le disque !

La dernière étape est de planifier un cron job pour automatiser les sauvegardes !

Note: Si vous utilisez une vielle version de rsync, il se peut que l'argument --link-dest n'existe pas ou soit brisé, voici donc une version alternative. Cette version va dupliquer la journée d'hier (en créant des liens durs, pas des copies) et ensuite rsync va simplement synchroniser ça avec la version actuelle. Ça revient exactement au même résultat que l'autre script, mais beaucoup moins efficace en terme de vitesse:
#!/bin/sh
TARGET=/mnt/sda2/backups
SOURCE=/home/
/bin/rm -Rf $TARGET/backup.2
/bin/mv $TARGET/backup.1 $TARGET/backup.2
cp -al $TARGET/backup.0 $TARGET/backup.1
/usr/bin/rsync -a --no-o --delete --safe-links $SOURCE $TARGET/backup.0/
Read more...
11 comments
0
Posted by alex on Nov 16th, 2008

Vous pouvez configurer un message qui va s'afficher dès la connexion d'un utilisateur via remote desktop. Lorsque l'utilisateur aura cliqué sur OK, le message disparaîtra et il pourra terminer la procédure de connexion.

Ce message sert générallement à afficher une notice de bienvenue, des avertissements ou des nouvelles.

  1. Connectez vous en tant qu'administrateur sur votre serveur à l'aide de remote desktop.
  2. Cliquez sur "Start" -> "Administrative Tools" ->  "Local Security Policy."
  3. Allez dans "Local Policies"->"Security Options". Dans le panneau de droite recherchez les lignes "Interactive logon: Message text for users attempting to log on" et "Interactive logon: Title for users attempting to log on".
  4. Double cliquez sur les lignes afin de changer le titre et le message de sécurité qui apparaîtra.
  5. C'est déjà tout ! :)
0 comment
1
Posted by alex on Nov 16th, 2008

Ou comment effectuer une connexion par clé publique/privée avec Putty sous Windows.

Tout d'abord vous avez besoin d'un programme pour générer les clés ssh. Si vous ne l'avez pas déjà, vous pouvez utiliser Puttygen.

Génération de la clé et configuration du serveur

  • Démarrez PuttyGEN et cliquez sur "Generate"
  • Une fois ceci fait, enregistrez votre clé privée dans un fichier (à partir du menu File). Un message va vous demander si vous êtes sur de vouloir enregistrer la clée sans mot de passe. Cliquez sur oui.
  • Ne fermez pas l'application tout de suite !
  • Connectez-vous en SSH sur votre serveur et ouvrez le fichier ~/.ssh/authorized_keys (ou /home/votre_user/.ssh/authorized_keys)
  • Retournez à puttygen et copiez le texte AU COMPLET comme sur l'image:
  • Collez le contenu dans le fichier que vous êtes en train d'éditer sur le terminal (~/.ssh/authorized_keys) et quittez vi en enregistrant le fichier.

Configuration de Putty pour utiliser la clé.

  • Démarrez Putty et allez dans la section Connection->SSH->Auth. Entrez votre clé privée qu'on a enregistrée au début.
  • Rendez vous dans la section Session. Dans le champ "Host Name" entrez votre utilisateur @ le ip du serveur (voir l'image). Ensuite entrez un nom pour la session "Ma connexion" et appuyez sur save.
  • Et voila, cliquez maintenant sur Open et vous devriez vous connecter sans mot de passe !
Read more...
1 comment
7
Posted by alex on Oct 25th, 2008

J'ai passé quelques heures à faire du reverse engineering pour découvrir ce qui se produit lorsque j'appuie sur un des boutons tactiles de mon ordinateur portable de marque HP.

Les deux touches tactiles qui m'intéressaient particulièrement étaient celle qui normalement démarre le logiciel QuickPlay et celle qui démarre la lecture d'un dvd dans QuickPlay (ces deux mêmes touches sont aussi sur la télécommande IR). Puisque je suis contre tous les crapwares que HP nous impose, je n'utilise pas QuickPlay et je voulais démarrer d'autres applications à la place :) .

Bref le bouton qui démarre normallement QuickPlay démarre maintenant un Terminal ssh et le bouton "dvd" démarre windows media center(ou VLC, j'ai pas arrêté mon choix encore) :D .

La procédure est très simple, mais je ne l'ai pas trouvé après de nombreuses recherches sur google, j'ai dû la découvrir par essais-erreur.

Voici comment faire:

  1. Installer les drivers HP pour les touches (Il faut que les touches fonctionnent évidement ! Mais le logiciel QuickPlay n'est PAS obligatoire du tout !)
  2. Le fichier qui est exécuté lorsqu'on appuie sur la touche QuickPlay est \Program Files\HP\QuickPlay\QPMenu.exe
  3. Le fichier qui est exécuté lorsqu'on appuie sur la touche Dvd est \Program Files\HP\QuickPlay\DVDP.exe

Vous aurez deviné, il suffit de créer/remplacer les exécutables pour ouvrir ce qu'on veut !

L'astuce devrait fonctionner sur tous les portables de série dv2000-dv2900, sans doute d'autres gammes.

Pour créer un exécutable qui exécute un autre programme (parce qu'on ne peut pas bêtement copier firefox.exe dans le dossier) vous pouvez faire un simple programme C qui contient system("firefox.exe"); ou alors télécharger ce programme pour convertir un fichier .bat en exe.

J'ai fait un petit vidéo qui montre comment faire: ici le vidéo montre comment exécuter filezilla quand j'appuie sur la touche DVD. À la fin, vous devinerez, Filezilla démarre quand j'appuie sur la touche en question ;) .

J'ai aussi fait un miroir du programme là: bat_to_exe_converter.

Je ferai un article prochainement pour expliquer comment faire fonctionner ces touches sur FreeBSD ou Linux !

Bonne chance !

Read more...
7 comments
Go to Top