CarmaBlog

Agilité, Développement Java, Nouvelles technologies et plus…
  • rss
  • Accueil
  • Management
  • Programmation agile
  • Technologie
  • Linux
  • Evénement
  • Contact
  • A propos de l'auteur
  • English
  • Francais

Comment éjecter proprement un disque dur externe sous Ubuntu?

Fabian Piau | mardi 23 juin 2009 - 15:02
911 vues
  • Twitter
  • Facebook
  • Google +1
  • LinkedIn

Il se trouve que j’ai deux disques durs externes de marque Western Digital : le modèle Passport et le modèle My Book. Loin de moi l’idée de faire de la publicité ici, mais la manipulation qui suit a été adaptée à ces deux modèles.

A vous de modifier légèrement les scripts pour les adapter à votre modèle.

Les deux disques sont parfaitement reconnus par Ubuntu (le montage comme le démontage). Sauf que, malgré un démontage réussi, le disque dur est toujours en activité. Autrement dit, des vibrations émanent du disque qui tourne encore dans le boitier. Ainsi, quand je débranche la prise USB, j’ai le droit à un charmant claquement sec qui vient de la tête de lecture.

Ce qui n’est pas bon du tout et risque d’entraver la longévité du disque à long terme.

Ce problème n’apparaît pas sous Windows XP. Quand le disque est éjecté, son alimentation est coupée automatiquement dans le même temps.

Pour palier ce problème, voici donc une solution pour permettre à vos disques durs externes de s’éjecter proprement sous Ubuntu. Les scripts sont différents suivant l’alimentation du disque.


Pour un disque fonctionnant par alimentation externe + prise USB

(cas du modèle WD My Book)

#!/bin/bash

WD=/dev/sdc1
# demontage
gksudo "umount $WD"
# arret du disque
gksudo "hdparm -Y $WD"
# message
echo message:Le disque dur WD My Book peut maintenant être débranché en toute sécurité. | zenity --notification --listen --window-icon="info" | zenity --notification --window-icon="info" --text="Le disque dur WD My Book peut maintenant être débranché en toute sécurité."

“dev/sdc1″ représente le point de montage du disque externe. Ce point est à adapter dans votre cas.

La neuvième ligne n’est pas indispensable. Elle informe simplement l’utilisateur qu’il peut maintenant débrancher le disque en toute sécurité.

Infobulle

Infobulle de confirmation d'éjection

Pour vous aider, voici la commande pour connaître les points de montage des périphériques. Il s’agit de l’utilitaire Fdisk. Regardez avant et après branchement de votre disque dur. Ainsi, vous repérerez rapidement le point de montage utilisé.

sudo fdisk -l
Fdisk - avant branchement

Fdisk - avant branchement

Fdisk - après branchement

Fdisk - après branchement


Pour un disque auto-alimenté par USB

(cas du modèle WD Passport)

#!/bin/bash

cd /sys/bus/usb/devices
bon_usb=$(grep -H Western usb?/?-?/manufacturer | cut -d"/" -f1,2)
cd ${bon_usb}/power
gksudo "sh -c 'echo "suspend" > level'"
echo message:Le disque dur WD Passport peut maintenant être débranché en toute sécurité. | zenity --notification --listen --window-icon="info" | zenity --notification --window-icon="info" --text="Le disque dur WD Passport peut maintenant être débranché en toute sécurité."

Personnellement, j’ai créé deux lanceurs (raccourcis) dans le gnome panel pour chacun des scripts, avec en icône le disque en question. C’est du plus bel effet!

Lanceurs

Lanceurs

Icône My Book             Icône Passport

Par prudence, l’exécution de ces deux scripts vous demandera le mot de passe administrateur (sudo).


Astuce en dernier recours

Une dernière chose, dans le cas où les scripts ne fonctionneraient pas. J’avais élaboré une solution vraiment “système D”. D’ailleurs, je continue à l’utiliser sous Windows quand celui-ci refuse obstinément d’éjecter mon WD Passport.

L’astuce est de retirer la prise USB très doucement et progressivement. On sent alors qu’il y a deux étapes : une première où le disque s’arrête de tourner gentiment (comme après l’exécution du script), et une seconde où il s’éteint réellement.

Articles similaires

Laptop's batteryExploiter au maximum la batterie de votre portable
Commentaires
Pas de Commentaires »
Catégories
Linux
Tags
bash, démonter, disque dur, éjecter, script, ubuntu
Flux rss des commentaires Flux rss des commentaires

WatiN, un outil pour tester les applications web

Fabian Piau | mercredi 10 juin 2009 - 10:28
681 vues
  • Twitter
  • Facebook
  • Google +1
  • LinkedIn

Il y a quelques jours, j’ai découvert une nouvelle catégorie d’outils qui permet de tester les applications web.

WatiN (prononcez “what-in”) est un framework .NET d’automatisation.

En utilisant WatiN et en programmant un peu, vous n’aurez plus qu’à lancer un simple programme pour être capable de surfer sur Internet sans avoir besoin de surfer! Etrange? Voici quelques explications.

Pourquoi n’automatiserez-vous pas votre vie de tous les jours? Les choses et routines que vous avez l’habitude de faire quand vous vous connectez à Internet.

Ce framework reproduit, action par action, le scénario que vous avez programmé. Les actions pouvant être automatisées sont variées: un clic sur un bouton, la sélection d’une valeur dans une liste, la prise d’une copie d’écran de la page web en cours, l’enregistrement de la page, etc.

Le langage de programmation utilisé est le C#. Si vous êtes familier avec la programmation Java, C# ne devrait pas être trop dur à prendre en main. On y retrouve les notions de la programmation objet et un langage similaire.

N’étant pas un adepte de Microsoft et utilisant Eclipse couramment, je dois admettre que Microsoft Visual Studio est un très bon produit. Après 2 ou 3 jours, vous le prenez en main facilement et créez des scénarios WatiN un peu plus complexes (que ceux que l’on va voir dans l’article).

Techniquement, pour “trouver” les boutons, listes et autres éléments HTML, WatiN navigue dans la structure HTML de la page web (les balises).
WatiN peut interagir avec beaucoup d’éléments HTML (voir la liste complète ici).
WatiN peut identifier ces éléments par leur id, nom, classe, texte, url, valeur, style… Cela dépend du code de la page à tester.

Pour bien comprendre, voici notre premier exemple:

public void login()
{
   // Ouvrir une nouvelle fenêtre Internet Explorer
   // et aller sur un site sécurisé
   ie = new IE("http://www.my-secured-website.com/login.php");

   // Trouver le champ texte username et saisir "toto"
   ie.TextField(Find.ByName("username")).TypeText("toto");

   // Trouver le champ texte password et saisir "titi"
   ie.TextField(Find.ByName("password")).TypeText("titi");

   // Selectionner la base de données
   ie.SelectList(Find.ByName("userDb")).SelectByValue("db2");

   // Cliquer sur le bouton de login pour se connecter
   ie.Button("loginId").Click();
}

Cette fonction automatise la connexion à une application web.

Voici maintenant le code HTML de la page web testée (login.php):

<html>

<head>
</head>

<body>
    <table>
        <tr>
            <td width="100">User Name</td>
            <td>
                <input value="" maxlength="50" name="username" type="text">
            </td>
        </tr>
        <tr>
            <td>Password</td>
            <td>
               <input maxlength="50" name="password" type="password">
            </td>
        </tr>
        <tr>
            <td>Database</td>
            <td>
                <select name="userDb">
                  <option selected value="#">Select a database</option>
                  <option value="db1">DataBase 1</option>
                  <option value="db2">DataBase 2</option>
                  <option value="db3">DataBase 3</option>
                  <option value="db4">DataBase 4</option>
                </select>
            </td>
        </tr>
        <tr height="30"><td></td></tr>
        <tr>
            <td>
                <input name="login" id="loginId" type="button" value="Login">
            </td>
        </tr>
    </table>
</body>

</html>

Qu’est ce qui se passe pendant l’exécution?

WatiN ouvre Internet Explorer, va à l’URL spécifiée, cherche le champ texte nommé “username” et saisit la chaîne “toto”. Il fait de même pour le champ contenant le mot de passe.
Ensuite, il sélectionne une base de données dans la liste nommée “userDb”. Finalement, il soumet le formulaire en cliquant sur le bouton identifié par “loginId”.

Login page

A cette étape, WatiN va sélectionner la base de données et connecter l’utilisateur.
WatiN applique une couleur jaune sur les éléments avec lesquels il est en train d’interagir (effet de clignotement).

Dans l’exemple, on utilise Internet Explorer (ie) mais WatiN supporte aussi le navigateur Firefox.

Vous pouvez utiliser “WatiN Test Recorder tool” pour générer du code compatible avec WatiN. Lien ici.
Vous aurez peut-être besoin de modifier légèrement le code généré pour effectuer quelques optimisations, mais ce sera déjà un bon point de départ.

Watin Test recorder Demo

Enfin, un deuxième et dernier exemple : une recherche sur Google (3 lignes de code sont nécessaires)

// Ouvrir une fenêtre Internet Explorer
// et aller sur Google
IE ie = new IE("http://www.google.com");
 
// Trouver le champ texte q et saisir "comment utiliser watin"
ie.TextField(Find.ByName("q")).TypeText("comment utiliser watin");

// Cliquer sur le bouton de recherche
ie.Button(Find.ByName("btnG")).Click();

L’exemple s’arrête ici mais, on peut imaginer un traitement sur les résultats.

Articles similaires

LaunchyLaunchy, lanceur d’applications
Commentaires
1 Commentaire »
Catégories
Programmation agile
Tags
.net, automatisation, c#, test ihm, watin
Flux rss des commentaires Flux rss des commentaires
Page 1 sur 11

Langue

  • Français
  • English

Articles les plus consultés

  • Changer la langue de Firefox - 18 770 vues
  • Java EE & CDI vs. Spring - 10 068 vues
  • Personnaliser Gnome 3 (Shell) - 8 168 vues
  • Firefox Nightly, Aurora, Beta, Desktop, Mobile, ESR & Co. - 5 961 vues
  • Extensions WordPress de CarmaBlog - 5 355 vues
  • Open Street Map, une meilleure carte que Google Maps? - 3 127 vues
  • Ce fichier est actuellement utilisé, vous ne pouvez rien y faire… Merci Windows ! - 2 904 vues
  • Belbin – Théorie des rôles dans une équipe - 2 386 vues
  • Réaliser un sondage en ligne avec Google Docs - 2 028 vues
  • Changer le splash screen d’Eclipse en quelques secondes - 2 012 vues

Tags

extreme programming watin cloud java blog agilité bash ic wordpress agile hiberner docjax raccourci gestion des configurations c# script mongodb jquery mobilité informatique outil nosql nantes test unitaire fosdem intégration continue automatisation plugin windows seven chrome formation jug tdd .net itil disque dur ebook windows 7 moteur de recherche de documents ubuntu partage démonter google firefox éjecter build bonnes pratiques extension eclipse test wave

Articles récents

  • Saisissez l’opportunité de suivre un cours sur la Gamification mardi 2 avril 2013
  • Comparaison NoSQL: Couchbase et MongoDB vendredi 8 mars 2013
  • IconFinder, la recherche d’icônes efficace vendredi 1 mars 2013
  • Retour sur Fosdem 2013 mercredi 20 février 2013
  • Fosdem, une conférence vraiment libre lundi 28 janvier 2013
  • Formation en ligne gratuite sur MongoDB mardi 1 janvier 2013
  • Découvrez Maxthon mardi 11 décembre 2012
  • Eteindre, mettre en veille ou hiberner son ordinateur? dimanche 9 décembre 2012
  • Une version mobile de votre Blog WordPress dimanche 28 octobre 2012
  • Réaliser un sondage en ligne avec Google Docs lundi 24 septembre 2012
  • Open Street Map, une meilleure carte que Google Maps? mercredi 25 juillet 2012
  • Une première approche du Camel d’Apache vendredi 11 mai 2012
  • Ce fichier est actuellement utilisé, vous ne pouvez rien y faire… Merci Windows ! dimanche 22 avril 2012
  • Personnaliser Gnome 3 (Shell) jeudi 15 mars 2012
  • Offrez un petit coup de jeune à votre application – CSS mercredi 15 février 2012

Flux RSS

RSS Feed RSS - Articles

RSS Feed RSS - Commentaires

Abonnement via Email

Saisissez votre adresse email pour être informé des nouveaux articles.

Liens

  • Agile Nantes
  • Blog Ippon Technologies
  • Blog Netapsys
  • Blog Xebia France
  • Blog Zenika
  • Coursera
  • Developpef
  • Le Touilleur Express
  • Les Cast Codeurs Podcast
  • new Blog( perso );
  • OCTO talks !
  • The Coder's Breakfast

Suivez-moi!

Suivez-moi sur TwitterSuivez-moi sur LinkedInSuivez-moi sur Google+Suivez-moi sur About.meSuivez-moi sur SlideShare

Catégories

  • Evénement (9)
  • Linux (3)
  • Management (4)
  • Programmation agile (11)
  • Technologie (26)

Archives

  • Avril 2013 (1)
  • Mars 2013 (2)
  • Février 2013 (1)
  • Janvier 2013 (2)
  • Décembre 2012 (2)
  • Octobre 2012 (1)
  • Septembre 2012 (1)
  • Juillet 2012 (1)
  • Mai 2012 (1)
  • Avril 2012 (1)
  • Mars 2012 (1)
  • Février 2012 (1)
  • Janvier 2012 (2)
  • Décembre 2011 (1)
  • Novembre 2011 (2)
  • Octobre 2011 (2)
  • Septembre 2011 (1)
  • Juillet 2011 (1)
  • Juin 2011 (2)
  • Avril 2011 (1)
  • Mars 2011 (1)
  • Février 2011 (1)
  • Janvier 2011 (2)
  • Novembre 2010 (2)
  • Septembre 2010 (1)
  • Août 2010 (1)
  • Juillet 2010 (1)
  • Juin 2010 (1)
  • Mai 2010 (1)
  • Avril 2010 (1)
  • Mars 2010 (1)
  • Février 2010 (1)
  • Décembre 2009 (1)
  • Novembre 2009 (1)
  • Octobre 2009 (2)
  • Septembre 2009 (2)
  • Août 2009 (3)
  • Juillet 2009 (1)
  • Juin 2009 (2)
rss Flux rss des commentaires get firefox
Fabian Piau | Copyright © 2009 - 2013
Tous droits réservés | Haut ↑