A voir également:
- Wakeonlan linux
- Wakeonlan - Télécharger - Connexion à distance
- Linux mint - Télécharger - Systèmes d'exploitation
- Diskinternals linux reader - Télécharger - Stockage
- Linux live usb creator - Télécharger - Outils Internet
- Distribution linux - Guide
4 réponses
zefcafougnette
Messages postés
1
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
15 novembre 2007
4
15 nov. 2007 à 09:54
15 nov. 2007 à 09:54
Bonjour,
Pour réveiller des machines sous linux en Wake on lan, j'utilise la méthode suivante :
1 - J'active l'option dans le BIOS de la machine
2 - je configure un service qui configure les cartes réseau
3 - je lance la commande eth-wake MAC_ADRESSE ( voir script wol.sh) sous root
Il semble que linux ne conserve pas les paramètres de configuration des cartes réseaux lorsqu'on arrête la machine. La configuration du BIOS ne suffit pas non plus.
J'utilise le script WakeOnLan sur des machine de production sous Readhat Entreprise. Pour des machine sous windows, je n'ai pas de solution pour le moment.
Script pour réveillée une machine Linux :
wol.sh
#!/bin/bash
#
# Script pour demarrer un machine en WakeOnLan
#
# Il faut fournir le nom de la machine en parametre
#
#Je verifie que le nom de la machine a ete donne
#
export LIGCMD=$(basename $0)
export MACHINE=$1
if [ $# -eq 0 ]; then
echo
echo " Le nom de la machine a demarrer doit etre passe en parametre."
echo
echo " ${LIGCMD} <nom de la machine>"
echo
exit 1
fi
#
# Je verifie que la commande peut etre utilisee sur la machine qui lance le script
#
if ! (which ether-wake > /dev/null 2>&1); then
echo
echo "Le script $(basename $0) ne peut pas etre lance sur cette machine."
echo
exit 1
fi
#
# Je verifie que la machine n'est pas demarrer
#
if (ping -c 2 ${MACHINE} >/dev/null 2>&1); then
echo
echo "La machine ${MACHINE} est en cours de fonctionnement."
echo
exit 1
fi
#
# Je defini l'adresse mac de la machine a demarrer
#
case ${MACHINE} in
machine1 | machine1.mondomaine.lan )
MAC_ADDR=XX:XX:XX:XX:XX:XX ;;
machine2 | machine2.mondomaine.lan )
MAC_ADDR=YY:YY:YY:YY:YY:YY ;;
* )
echo "La machine ${MACHINE} n'est pas repertoriee pour le WOL.";
exit 1 ;;
esac
#
# Je lance la commande de WakeOnLan
#
echo
echo "Envoi de la commande de demarrage pour la machine ${MACHINE}"
echo
ether-wake ${MAC_ADDR}
exit 0
Script du service
WakoOnLan à placer dans /etc/init.d (chkconfig WakoOnLan on) :
#!/bin/bash
#
# WakeOnLan Script pour configurer le WOL sur les interfaces reseau
#
# chkconfig: 2345 99 05
#
# description: Activation du Wake On Lan
#
# Source function library.
. /etc/init.d/functions
#
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
. /etc/sysconfig/network
# Le reseau est-il demarre
if [ "${NETWORKING}" = "no" ]; then
echo "Wake On Lan non active"
exit 0
fi
#
# Determination des interfaces reseau actives
#
cd /etc/sysconfig/network-scripts
interfaces=$(ls ifcfg* | \
LANG=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
-e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
LANG=C sort -k 1,1 -k 2n | \
LANG=C sed 's/ //')
#
# Activation du Wake On Lan pour les interfaces montees
#
for i in $interfaces; do
if (ethtool $i|grep "Supports Wake-on"|grep g > /dev/null 2>&1); then
echo -n "Activation du WakeOnLan pour $i"
daemon /sbin/ethtool -s $i wol g
echo
fi
done
exit 0
Pour réveiller des machines sous linux en Wake on lan, j'utilise la méthode suivante :
1 - J'active l'option dans le BIOS de la machine
2 - je configure un service qui configure les cartes réseau
3 - je lance la commande eth-wake MAC_ADRESSE ( voir script wol.sh) sous root
Il semble que linux ne conserve pas les paramètres de configuration des cartes réseaux lorsqu'on arrête la machine. La configuration du BIOS ne suffit pas non plus.
J'utilise le script WakeOnLan sur des machine de production sous Readhat Entreprise. Pour des machine sous windows, je n'ai pas de solution pour le moment.
Script pour réveillée une machine Linux :
wol.sh
#!/bin/bash
#
# Script pour demarrer un machine en WakeOnLan
#
# Il faut fournir le nom de la machine en parametre
#
#Je verifie que le nom de la machine a ete donne
#
export LIGCMD=$(basename $0)
export MACHINE=$1
if [ $# -eq 0 ]; then
echo
echo " Le nom de la machine a demarrer doit etre passe en parametre."
echo
echo " ${LIGCMD} <nom de la machine>"
echo
exit 1
fi
#
# Je verifie que la commande peut etre utilisee sur la machine qui lance le script
#
if ! (which ether-wake > /dev/null 2>&1); then
echo
echo "Le script $(basename $0) ne peut pas etre lance sur cette machine."
echo
exit 1
fi
#
# Je verifie que la machine n'est pas demarrer
#
if (ping -c 2 ${MACHINE} >/dev/null 2>&1); then
echo
echo "La machine ${MACHINE} est en cours de fonctionnement."
echo
exit 1
fi
#
# Je defini l'adresse mac de la machine a demarrer
#
case ${MACHINE} in
machine1 | machine1.mondomaine.lan )
MAC_ADDR=XX:XX:XX:XX:XX:XX ;;
machine2 | machine2.mondomaine.lan )
MAC_ADDR=YY:YY:YY:YY:YY:YY ;;
* )
echo "La machine ${MACHINE} n'est pas repertoriee pour le WOL.";
exit 1 ;;
esac
#
# Je lance la commande de WakeOnLan
#
echo
echo "Envoi de la commande de demarrage pour la machine ${MACHINE}"
echo
ether-wake ${MAC_ADDR}
exit 0
Script du service
WakoOnLan à placer dans /etc/init.d (chkconfig WakoOnLan on) :
#!/bin/bash
#
# WakeOnLan Script pour configurer le WOL sur les interfaces reseau
#
# chkconfig: 2345 99 05
#
# description: Activation du Wake On Lan
#
# Source function library.
. /etc/init.d/functions
#
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
. /etc/sysconfig/network
# Le reseau est-il demarre
if [ "${NETWORKING}" = "no" ]; then
echo "Wake On Lan non active"
exit 0
fi
#
# Determination des interfaces reseau actives
#
cd /etc/sysconfig/network-scripts
interfaces=$(ls ifcfg* | \
LANG=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
-e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
LANG=C sort -k 1,1 -k 2n | \
LANG=C sed 's/ //')
#
# Activation du Wake On Lan pour les interfaces montees
#
for i in $interfaces; do
if (ethtool $i|grep "Supports Wake-on"|grep g > /dev/null 2>&1); then
echo -n "Activation du WakeOnLan pour $i"
daemon /sbin/ethtool -s $i wol g
echo
fi
done
exit 0
ben_o_it
Messages postés
1
Date d'inscription
mardi 19 décembre 2006
Statut
Membre
Dernière intervention
19 décembre 2006
1
19 déc. 2006 à 00:58
19 déc. 2006 à 00:58
Bonjour,
J'ai un pb pour activer le wake on lan selon le noyaux que j'utilise (je suis un peu novice sous linux).
J'ai 2 noyaux linux sur un pc :
1) un noyau 2.4.27 , pré-compilé
2) un noyau 2.6.19 , configuré et compilé par mes soins
Qd j'éteins mon pc apres l'avoir démarré sur le noyau (1), j'arrive à le redémarrer avec le wake on lan sans pb.
Par contre qd je l'ai éteins avec le noyau (2), je n'y arrive pas.
J'ai beau cherché sur internet, je n'arrive pas à trouver ce que j'ai mal configuré dans mon noyau (2).
Est-ce que quelqu'un pourrait m'aider ? Qu'est-ce que je peux avoir mal configuré pour la compilation de mon noyau ?
J'ai un pb pour activer le wake on lan selon le noyaux que j'utilise (je suis un peu novice sous linux).
J'ai 2 noyaux linux sur un pc :
1) un noyau 2.4.27 , pré-compilé
2) un noyau 2.6.19 , configuré et compilé par mes soins
Qd j'éteins mon pc apres l'avoir démarré sur le noyau (1), j'arrive à le redémarrer avec le wake on lan sans pb.
Par contre qd je l'ai éteins avec le noyau (2), je n'y arrive pas.
J'ai beau cherché sur internet, je n'arrive pas à trouver ce que j'ai mal configuré dans mon noyau (2).
Est-ce que quelqu'un pourrait m'aider ? Qu'est-ce que je peux avoir mal configuré pour la compilation de mon noyau ?
voila uns vision legèrement différente ce basant sur les logs trouvés dans le DHCP.
ce script permet de réveillé un host via son nom, ou via son adresse mac, ou de réveiller tout les hosts du réseau.
a placer dans /usr/local/sbin/wakeonlan en 750
installer via /usr/local/sbin/wakeonlan install
Usage : /usr/local/sbin/wakeonlan list|dicover|wakeall|wake [HOST or MAC_ADDRESS]
ce script permet de réveillé un host via son nom, ou via son adresse mac, ou de réveiller tout les hosts du réseau.
#!/bin/sh # /// revision-script 1.0 \\\ # Author : Clément ROGER # Author : Be4free.com # Author : <clement.be4free AT gmail DOT com> # Licence : Under GPL # If you modify this script or if you want to add functions please email # your version to clement.be4free AT gmail DOT com function wol_install { if [ ! -d "/var/lib/wol/" ] ; then mkdir -p /var/lib/wol/ ; chmod 640 /var/lib/wol/ ; fi if [ ! -f "/var/lib/wol/discover" ] ; then touch /var/lib/wol/discover ; chmod 640 /var/lib/wol/discover ; fi } function wol_list { mac_list=`cat /var/lib/wol/discover` for mac_address in $mac_list ; do echo $mac_address | { IFS=";" read mac name echo $name } done } function wol_discover { mac_list=`cat /var/log/syslog | grep dhcpd | grep DHCPREQUEST | sed 's/^.*from//' | cut -d " " -f 2,3 | sed 's/\ (/;/' | sed 's/)//' | sort | uniq` for mac_address in $mac_list ; do cat /var/lib/wol/discover | grep -x $mac_address >> /dev/null 1>&1 if [ "$?" == 1 ] ; then echo $mac_address >> /var/lib/wol/discover fi done } function wol_wake { argv=$1 cat /var/lib/wol/discover | grep $argv | { IFS=";" read mac name ether-wake $mac } } if [ ! -d "/var/lib/wol/" ] || [ ! -f "/var/lib/wol/discover" ] || [ ! -r "/var/lib/wol/discover" ] && [ $1 != "install" ] ; then echo "Error : $0 db are not installed, please type '$0 install'" exit 1; fi case $1 in install) wol_install ;; list) wol_list ;; discover) wol_discover ;; wakeall) wol_discover mac_list=`cat /var/lib/wol/discover | cut -d ";" -f 1` for mac_address in $mac_list ; do wol_wake $mac_address done ;; wake) if [ "$1" != "" ] ; then cat /var/lib/wol/discover | grep $2 >> /dev/null 2>&1 if [ "$?" != "0" ] ; then echo "undiscovered host, please try '$0 discover' first" exit 1; fi wol_wake $2 else echo "Usage : $0 wake [HOST or MAC_ADDRESS]" exit 1; fi ;; *) echo "Usage : $0 list|dicover|wakeall|wake [HOST or MAC_ADDRESS]" ;; esac
a placer dans /usr/local/sbin/wakeonlan en 750
installer via /usr/local/sbin/wakeonlan install
Usage : /usr/local/sbin/wakeonlan list|dicover|wakeall|wake [HOST or MAC_ADDRESS]
voila un howto en englais qui explique comme ça marche un wake on lan sur Linux et sur Window$:
http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/
http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/