This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

Messages recommandés

Bonjour,

Je souhaite forcer l'allumage de mon PC qui sert de serveur de sauvegarde au syno à l'ide du script ci-dessous. Ce script fonctionne en ssh, mais une exécution via le planificateur de tâche ne rallume pas le PC.

Y aurait-il une âme charitable pour m'aider à résoudre mon problème?

le script:

#!/usr/local/python/bin/python

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto('xff'*6 + 'x00x00x00x00x00x00'*16, ('192.168.x.x', 9))

Partager ce message


Lien à poster
Partager sur d’autres sites

A priori oui.

J'espérais une simple réponse "oui" ou "non" mais bon ...

De pplus le script fonctionne en ssh

je suppose que tu veux dire en ligne de commande?

Comment le lances-tu ce script?

Si c'est en tapant "python <nom du script>", il n'est pas étonnant qu'il ne marche pas en batch (cron ou planificateur de tache, c'est kif kif) car la commande "python" n'est pas dans le PATH par défaut.

Assure-toi que le script est exécutable (chmod +x) et, comme ligne de commande du planificateur de tache, met uniquement son chemin complet (sans la préfixer de "python")

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de refaire un essai, connecté en ssh, en lançant le script par un

cd /volume1/Sripts
./Wol2PC.py 

Le fonctionnement est ok, le pc s'est allumé.

Dans le planificateur de tâches, j'ai saisi:

utilisateur: root

Script défini par l'utilisateur: /volume1/Scripts/Wol2PC.py

Modifié par maitryoda

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne vois pas ce qui ne va pas, le chemin de python est correct, le chemain d'accès au script également. Je sêche...

Si quelqu'un a une idée, je suis preneur

dans le planificateur, le champ de formulaire "script défini par l'utilisateur" est multiligne.

Suffit donc de remplacer

/volume1/Scripts/Wol2PC.py

par (une commande par ligne):

exec >/tmp/wol.log 2>&1
/volume1/Scripts/Wol2PC.py

ce qui permettra de voir dans "/tmp/wol.log" ce qui coince

Modifié par CoolRaoul

Partager ce message


Lien à poster
Partager sur d’autres sites

Le fichier de log est bien créé suite à vérification par un dir /tmp en ssh, mais ce dernier est vide

Nous voila peu avancés alors

Dernier essai et apres je sèche (faudra attendre qu'un spécialiste python passe par ici)

En ligne de commande, en lançant le script de cette façon:

env - /volume1/Scripts/Wol2PC.py

est-ce que ça fonctionne aussi?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca fonctionne pas et je viens de me rendre compte de le scripts ne fonctionnait plus non plus par un ./Wol2PC.py.

A n'y rien comprendre...

Et quelle syntaxe utilises-tu quand ca fonctionne alors (comme indiqué dans ton 1er message)?

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé je suis sur mon tel je n'ai pas modifié le Wol2PC.py et je le lance avec un ./Wol2PC.py

Ceci est une réponse à quelle question?

**EDIT**

« La réponse est oui. Mais quelle était la question ? »

(Woody Allen)

Lol

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon je reprend posément: lors de ton 1er message tu nous disais "Ce script fonctionne en ssh"

Tu l'avais lancé de quelle façon quand il a fonctionné à ce moment-là?.

(ou bien doit-on conclure qui'il n'a *jamais* marché?)

Partager ce message


Lien à poster
Partager sur d’autres sites

Il a marché.

Connecté en ssh, je faisais cd /volume1/Scripts puis ./Wol2PC.py et le PC démarrait

Mais je viens de me rendre compte que le Wol ne fonctionnait plus du tout sur mon PC donc ... Je refais fonctionner le Wol du PC et je me refais tous les essais

Partager ce message


Lien à poster
Partager sur d’autres sites

Il a marché.

Connecté en ssh, je faisais cd /volume1/Scripts puis ./Wol2PC.py et le PC démarrait

Mais je viens de me rendre compte que le Wol ne fonctionnait plus du tout sur mon PC donc ... Je refais fonctionner le Wol du PC et je me refais tous les essais

Ok, a suivre donc

Partager ce message


Lien à poster
Partager sur d’autres sites

Eureka j ai trouvé en fait l'origine du problème:

la config du pc

En fait il n'acceptait plus que les réveils par broadcast.

Du coup le script ne pouvait plus fonctionner.

J'ai trouvé un scripts sympa sur le net qui a parfaitement fonctionné en ssh et par le planificateur de tâches. Je le posterai demain au cas où quelqu'un est intéressé.

Du coup je ne sais pas pourquoi le script d'origine a fonctionné plusieurs fois... peu être une mise à jour de mon pc...

Modifié par maitryoda

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Voici le script fonctionnel si cela peut intéresser quelqu'un:

#!/usr/local/python/bin/python
# wol.py

import socket
import struct

def wake_on_lan(macaddress):
    """ Switches on remote computers using WOL. """

    # Check macaddress format and try to compensate.
    if len(macaddress) == 12:
        pass
    elif len(macaddress) == 12 + 5:
        sep = macaddress[2]
        macaddress = macaddress.replace(sep, '')
    else:
        raise ValueError('Incorrect MAC address format')
 
    # Pad the synchronization stream.
    data = ''.join(['FFFFFFFFFFFF', macaddress * 20])
    send_data = '' 

    # Split up the hex values and pack.
    for i in range(0, len(data), 2):
        send_data = ''.join([send_data,
                             struct.pack('B', int(data[i: i + 2], 16))])

    # Broadcast it to the LAN.
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    sock.sendto(send_data, ('192.168.0.255', 7))
    

if __name__ == '__main__':
    # Use macaddresses with any seperators.
    wake_on_lan('0F:0F:DF:0F:BF:EF')
    wake_on_lan('0F-0F-DF-0F-BF-EF')
    # or without any seperators.
    wake_on_lan('0F0FDF0FBFEF')

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous

Me retrouvant coincé avec le paquet de TontonGlen et la version revue et corrigée (qui fonctionnait sous DSM 4.2) j'aimerais bien tenter cette solution.

En revanche je suis une bille en ligne de commande Linux, mais si on m'explique clairement et avec des étapes, je vais pouvoir m'en sortir avec votre aide.

Une âme charitable pourrait-elle m'indiquer pas à pas comment mettre ce script en place et comment le lancer (si possible depuis DSM) ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant