maitryoda Posté(e) le 10 mai 2013 Partager Posté(e) le 10 mai 2013 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)) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 10 mai 2013 Partager Posté(e) le 10 mai 2013 Est-tu sur que le binaire python est-bien situé dans "/usr/local/python/bin/" ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 10 mai 2013 Auteur Partager Posté(e) le 10 mai 2013 A priori oui. De pplus le script fonctionne en ssh 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 11 mai 2013 Partager Posté(e) le 11 mai 2013 A priori oui.J'espérais une simple réponse "oui" ou "non" mais bon ... De pplus le script fonctionne en sshje 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") 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PiwiLAbruti Posté(e) le 11 mai 2013 Partager Posté(e) le 11 mai 2013 Qu'as-tu saisi dans le planificateur de tâches ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 11 mai 2013 Auteur Partager Posté(e) le 11 mai 2013 (modifié) 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é le 11 mai 2013 par maitryoda 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 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 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 (modifié) 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é le 14 mai 2013 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 Le fichier de log est bien créé suite à vérification par un dir /tmp en ssh, mais ce dernier est vide 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 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? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 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... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 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)? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 (modifié) Oui je n ai pas touché au script original Modifié le 14 mai 2013 par maitryoda 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 (modifié) Oui Ceci est une réponse à quelle question? **EDIT** « La réponse est oui. Mais quelle était la question ? » (Woody Allen) Modifié le 14 mai 2013 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 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 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 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é?) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 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 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 14 mai 2013 Partager Posté(e) le 14 mai 2013 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 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 14 mai 2013 Auteur Partager Posté(e) le 14 mai 2013 (modifié) 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é le 14 mai 2013 par maitryoda 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
maitryoda Posté(e) le 15 mai 2013 Auteur Partager Posté(e) le 15 mai 2013 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') 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babble Posté(e) le 15 décembre 2014 Partager Posté(e) le 15 décembre 2014 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) ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
babble Posté(e) le 16 novembre 2015 Partager Posté(e) le 16 novembre 2015 UP ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.