Réveiller son Mac à distance

Utiliser la capacité Wake-on-lan de votre interface réseau

Mon Mac se met en veille prolongée après un certain temps non utilisé. Pour des raisons diverses, j’aimerais pouvoir le réveiller à distance, par exemple lorsque je suis sur mon lieu de travail ou chez un ami via SSH pour récupérer un fichier, mais celui-ci ne se réveille pas lorsqu’il est endormi profondément le petit chenapan. Problème.

Les plus curieux connaîtront la case à cocher Réactiver lors d’un accès administrateur via le réseau Ethernet dans la partie Economiseur d’énergie des Préférences Systèmes :

energy
Préférences Système

Mais ceci n’est pas suffisant, la carte réseau à beau veiller, il faut lui donner le mot de passe magique pour lui faire réveiller le Mac. Voici comment implémenter cette fonction.
A noter que ceci ne fonctionne pas uniquement sur un Mac, toute machine pouvant interpréter PERL le pourra : Linux, Unix, même Windows en y installant un interpréteur PERL.

wakeonlan par José Pedro Oliveira

La solution nous vient de José Pedro Oliveira qui fournit un script PERL qui permet d’exploiter les fonctions WOL (Wake-on-lan) des interfaces réseaux (note : toutes les cartes ethernet ne sont pas WOL). Ce script, sobrement appelé wakeonlan est disponible en suivant ce lien : http://gsd.di.uminho.pt/jpo/software/wakeonlan/. Le récupérer et le désarchiver.
Il peut être utilisé tel quel à l’endroit où il a été désarchivé, mais pour plus de cohérence, plaçons-le – comme j’ai l’habitude de le faire – sous ~/bin ou pour les puristes sous /usr/local/bin.
Il ne reste plus qu’à utiliser la commande pour réveiller une machine distante, en renseignant son adresse IP et son identifiant MAC, de cette façon :

$  wakeonlan -i 192.168.1.1 xx:xx:xx:xx:xx:xx

La chaine xx:xx:xx:xx:xx:xx représente l’adresse MAC de l’interface distante, elle peut être trouvée avec la commande ifconfig. Cette commande retourne beaucoup d’informations, mais il suffit de chercher cette chaine composée de 6 octets et séparée par deux points (:).

Voici un exemple chez moi avec :

$ wakeonlan -i 192.168.1.3 00:14:ca:b2:33:e2

En image :

wakeonlan
wakeonlan PERL script

Voilà!
A noter que l’option -i 192.168.1.3 n’est pas nécessaire sur un réseau local.