bonjour
je bloque complètement avec ce script j'ai tout essayé ...
j'ai utilisé ce script :
<?php
$connection = ssh2_connect('127.0.0.1',22);
$login = $_GET["login"];
$password = $_GET["password"];
if ( (strlen($login) == 0) || (strlen($password) == 0) ){
die('Please specify login and password!');
}
if (!ssh2_auth_password($connection, $login, $password)) {
die('Unable to authenticate');
}
else {
$str = 'echo ' . $password . '|sudo -S poweroff';
// str_replace is used to escape " characters in the password
$str = str_replace("\"", "\\\"", $str);
$stream = ssh2_exec($connection, $str);
$errorstream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
// enable blocking for both streams
stream_set_blocking($errorstream, true);
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
echo "<br>";
echo stream_get_contents($errorstream);
echo "<br>";
echo "shutting down...";
}
?>
j'ai modifié ip, mdp, utilisateur
j'ai aussi essayé :
stefanski a écrit:Voici une adaptation de ce que j'ai trouvé sur le forum pour que ça fonctionne. Il faut :
- Installer Web Station sur le Synology
- Installer PHP 5.6 sur le Synology
- Activer l'extension ssh2 dans Web Station/PHP
Créer un fichier synology-shutdown.php dans un répertoire "script" dans le répertoire "web" créé par le Synology avec le contenu ci-dessous :
- Code : Tout sélectionner
<?php
$connection = ssh2_connect('127.0.0.1',22);
$login = $_GET["login"];
$password = $_GET["password"];
if ( (strlen($login) == 0) || (strlen($password) == 0) ){
die('Please specify login and password!');
}
if (!ssh2_auth_password($connection, $login, $password)) {
die('Unable to authenticate');
}
else {
$str = 'echo ' . $password . '|sudo -S poweroff';
// str_replace is used to escape " characters in the password
$str = str_replace("\"", "\\\"", $str);
$stream = ssh2_exec($connection, $str);
$errorstream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
// enable blocking for both streams
stream_set_blocking($errorstream, true);
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
echo "<br>";
echo stream_get_contents($errorstream);
echo "<br>";
echo "shutting down...";
}
?>
Créer un actionneur qui appelle de la sorte :
http://[VAR1]/script/synology-shutdown.php?login=[VAR2]&password=[VAR3]
Et configurer les variables suivantes dans l'actionneur :
- VAR1 : IP du Synology (et éventuellement port si différent de 80)
- VAR2 : login d'un utilisateur admin sur le Synology
- VAR3 : mot de passe de l'utilisateur
ainsi que ca :
DjMomo a écrit:Eteindre (ou rebooter) son NAS Synology via un appel PHPCréer un fichier "
shutdown_diskstation.sh" avec le contenu suivant :
- Code : Tout sélectionner
#!/bin/sh
fichier=/volume1/web/shutdown_diskstation
if [ -f $fichier ]
then
echo "Le fichier $fichier existe --> Arrêt NAS"
rm $fichier
poweroff
else
echo "Le fichier $fichier n'existe pas"
fi
Placer ce fichier dans le dossier
/bin. Le changer de propriétaire avec
- Code : Tout sélectionner
chown root:root /bin/shutdown_diskstation.sh
et exécutable avec
- Code : Tout sélectionner
chmod u+x /bin/shutdown_diskstation.sh
.
Créer un fichier "
shutdown_diskstation.php" avec le contenu suivant :
- Code : Tout sélectionner
<?
$fichier = "shutdown_diskstation";
if(!$fp = fopen($fichier,"w+"))
echo "Erreur lors de l'ouverture de $fichier";
fclose($fp);
?>
Le placer dans le dossier /volume1/web.
Editer la crontab en rajoutant la ligne :
- Code : Tout sélectionner
* * * * * root sh /bin/shutdown_diskstation.sh > /dev/null 2>&1
Il vous suffit alors d'appeler
http://IP_NAS/shutdown_diskstation.php et dans la minute qui suit, votre NAS s'éteint.
Si vous voulez placer le fichier php dans un sous-dossier de /volume1/web/, il faut modifier le chemin de la variable "fichier" dans le script sh.
Si vous voulez rebooter plutôt qu'arrêter le NAS, il faut remplacer "poweroff" par "reboot" dans le script sh.
Enjoy, sur ce, je file à la plage
après tout ces essais infructueux je me demande si la clés shh que j'ai installé (car avec le nouveau dsm impossible de modifier les fichier via scp) n'est pas le problème ????
merci pour votre aide