Eteindre ou redémarrer son PC à distance avec Twitter
Twitter est un service de micro-blogging très tendance en ce moment. Sa principale fonction est la diffusion de messages courts (140 caractères), mais on peut aussi s'en servir pour faire d'autre chose. On pourra par exemple l'utiliser pour contrôler son ordinateur à distance, en ordonnant un arrêt ou un reboot immédiat.
1. Sous Windows
Pour les utilisateurs de Windows, il existe un logiciel du nom de TweetMyPC. Une fois celui-ci installé et configuré avec votre login et votre mot de passe, il s'occupera de scruter régulièrement votre compte Twitter et attendra que vous lui donner un ordre à distance.
2. Sous Linux
Pour les linuxiens, il n'existe aucun programme équivalent. J'ai donc développé rapidement un petit script bash qui propose les mêmes fonctionnalités. Lancez les commandes suivantes pour récupérer ce script et lui donner les bons droits :
cd && wget www.tux-planet.fr/public/dev/shell/script-tweet-my-pc
mv script-tweet-my-pc tweet-my-pc.sh
chmod +x tweet-my-pc.sh
Puis on ajoutera ce dernier en crontab via la commande crontab -e ou sudo crontab -e si vous êtes sous Ubuntu. Pensez à adapter le nom de login de votre compte Twitter et le chemin de votre homedir :
*/2 * * * * /home/seb/tweet-my-pc.sh username > /dev/null
3. Utilisation
Trois actions sont possibles avec la version actuelle de ces deux programmes :
- Shutdown : éteindre son ordinateur
- Restart : redémarrer son ordinateur
- Logoff : fermer une session
Pour les utiliser, il suffit donc de vous connecter à votre compte Twitter et écrire un message comportant l'un de ces mots clé. Attention, ces derniers sont sensibles à la case et il faut donc saisir les commandes avec une majuscule pour la première lettre. Par exemple, Restart fonctionnera tandis que restart ne marche pas.
A l'heure où Twitter est accessible de partout (Internet, Téléphone mobile...), cet utilitaire peut donc s'avérer très pratique. Il faudra tout de même être vigilant et ne pas se faire pirater son compte, sous peine d'offrir un accès contraignant à des pirates informatiques. L'idéal étant sûrement de créer un nouveau compte dédié à cette fonction.
16 Commentaires pour "Eteindre ou redémarrer son PC à distance avec Twitter"
Flux des commentaires de cet article Ajouter un commentaireLe buzz sur ce soft date de la semaine dernière et tu as bashé un équivalent dans l'intervalle ?
Félicitations et merci !
Et un démarrage par envoi de packet magique via Twitter ça le fait ?
@shamanphenix : hé hé !
@Eric Reboisson : je pense pas que cela soit possible.
Excellent article !
@pti-seb : ok, dommage ça pourrait être bien pratique...
la commande tr $USERNAME semble me poser problème.
mon nom de compte est 7alouest
si je fais un
echo $ACTION
j'obtiens rr au lieu de restart
r est la seule lettre qui ne figure pas dans 7alouest
les autres y sont :
..esta..t
du coup le script ne fonctionne pas chez moi (sauf à le modifier, cela va de soi).
la commande tr ne me semble pas appropriée.
Qu'en pensez-vous ?
Ma solution consiste à ne pas retirer les caractère du login Twitter avec la commande tr mais de simplement retirer les deux points. Je modifie ensuite le test en ajoutant $USERNAME
"$USERNAME Restart"
et ça marche
sympa comme astuce, on va la présenter dans les colonnes de notre magazine Opensource-Magazine
@7alouest : effectivement, le script n'est peut-être pas optimisé pour les pseudos avec des chiffres. Au pire on peut le modifier pour le mettre en dur dedans.
Bonjour,
Je te félicite pour ton blog qui est très intéressant et très actif.
En ce qui concerne ton billet, je suis intéressé de son application en entreprise.
nous utilisons tweeter mais en privé, pas ouvert sur l'extérieur. j'aurai aimé paramétrer un serveur qui parse justement les messages twitter de ma boite et fait des actions en fonction .. Mais as tu une idée afin de pouvoir se connecter sur des tweet privé. Y a t'il moyen par exemple avec curl de me loger avec mon compte tweeter d'entreprise et parser tous les tweets de ma boite ??
@bartounet : regarde par ici peut-être, avec la commande curl et les options pour y passer le username et password de twitter. Il faudra sans doute adapter le reste.
En effet ca marche impeccable, merci beaucoup, il faut maintenant que je trouve les application en entreprise.
Aucun interet , surtout avec X11VNC sous ubuntu. On peut acceder a son ordinateur via un client VNC.
Mais bon, c'est surement pour le Fun !
@Roberto : ça n'a surtout aucun rapport.
Ce serait possible de m'expliquer cette ligne ?
if [ ! -f `which curl` ]
Je comprends pas le test que l'on fait.
Je vois l'idée, on test pour voir si curl est installé, mais je comprend pas la mise en application.
(je fais un double post, j'ai fais trop long pour éditer mon commentaire précédent.)
La ligne sed --quiet --expression='s/\(.*\)/\1/p' aussi j'ai de la peine à comprendre.
On fait la substitution sur quoi exactement ?
Si j'ai bien compris, on change "\(.*\)" en "\1". Mais à quoi correspond "\1" ?
Sympa et intéressant.
Dommage que bartounet n'ait pas indiqué son code pour utiliser un Twitt privé.
Néanmoins, le code contient un bug:
ACTION=`echo $LAST_TWEET | tr -d "$USERNAME: "`
[ tr -d "$USERNAME: "] n'est pas approprié, l'instruction fera bugger le programme si le login Twitter contient des caractères contenus dans les commandes Restart / Shutdown / Logoff
Ce n'est pas [ tr ] qui convient, car il supprime tout les caractères contenus dans le nom d'utilisateur Twitter.
Pas besoin de "coder en dur" le nom de l'utilisateur non plus.
Il suffit d'utiliser un recherche/remplace sur une chaîne de caractère.
L'utilisation de la fonction du shell des accolades de variables avec susbtitution suffit:
ACTION=${LAST_TWEET# *${USERNAME}: *}
D'autre part, juste une remarque de programmation défensive: USERNAME est une variable d'environnement du shell, il est préférable d'en utiliser un autre nom dans les script; ne serait-ce que la mettre en minuscule suffirait.
Cette précaution vaut pour toutes les variables utilisées dans les script, car par convention et tradition, les variables nommées en majuscules sont réservées à l'environnement.
Amicalement,
@PapaEcho