Demande d'aide script Php

Discussion et échanges de scripts pour la box eedomus

Demande d'aide script Php

Messagepar galaksy2001 » 03 Avr 2017 17:35

Bonjour tout le monde,

J' héberge un serveur minecraft sur mon Synology. Pour le lancer, je dois exécuter une commande via SSH. Je souhaiterai le faire avec l'eedomus.

J'ai donc récupéré un script PHP qui me permet d'éteindre mon syno via SSH et je l'ai modifié. Bien sur, ça ne fonctionne pas !

Je pense que cela est du au fait que je ne lance pas qu'une seule commande comme le fichier original, mais plusieurs commandes les unes après les autres (remonter dans le répertoire parent, accèder au dossier minecraft, puis lancer le serveur). La syntaxe ne doit pas être la bonne ...

Je vous joins le fichier :

Code : Tout sélectionner
<?php

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('phpseclib/Net/SSH2.php');

$ssh = new Net_SSH2('XXX.XXX.X.XX');
if (!$ssh->login('XXX', 'XXXXX')) {
    exit('Login Failed');
}

echo $ssh->read('~ #');      // ce que vous voyez à l'invite SSH
$ssh->write("cd ..\n");      // remonte dans le répertoire parent, attention à ne pas oublier le \n qui simule la touche 'Entrée'
$ssh->write("cd volume2/minecraft\n");      // accès au répertoire minecraft
$ssh->write("nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui\n");  // exécution de la commande pour lancer le serveur
echo $ssh->read('~ #');


?>


Si une âme charitable veux bien se pencher sur le sujet, merci par avance ;)
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar galaksy2001 » 08 Avr 2017 21:54

:(
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar blues » 09 Avr 2017 02:19

Pourquoi 2 commandes "cd" ?
Il faudrait essayer de lancer tout en une commande :
$ssh->write("cd ../volume/minecraft;nohup jre1.8.0_101....nogui\n");
Il faut aussi être sûr que le classpath est bien défini au moment de la commande je pense.
Si cela ne fonctionne toujours pas, essayer d'ajouter en début de commande "export CLASSPATH=.:<chemin jar minecraft>"
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37

Re: Demande d'aide script Php

Messagepar galaksy2001 » 09 Avr 2017 20:22

Merci pour ta réponse blues ;)

La première commande "cd .." me permet de remonter dans le répertoire parent pour ensuite accéder au dossier minecraft.

Merci pour les ";" : je ne savais pas comment tout lancer en une seule commande. ;)

J'ai fait le test : même résultat, ça mouline ... Je verrai demain l'export classpath, aujourd'hui j'ai pas les yeux en face des trous :D
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar Madoma73 » 11 Avr 2017 08:37

Quand tu lances ta commande en live sur le syno, tu es en root ou en admin ?
tu as quelle version de DSM ?
Pierre
Madoma73
 
Messages : 1441
Inscription : 16 Sep 2012
Localisation : 38

Re: Demande d'aide script Php

Messagepar galaksy2001 » 14 Avr 2017 17:06

Je suis en root, version DSM 5.2-5967 donc pas de limitation sur le compte root comme sur DSM 6.
Ma commande fonctionne bien via putty en SSH.
En tout cas merci les gars de me filer un coup de main ! ;)

Je vois ce soir cette histoire de l'export classpath ... et je vous tiens au jus. :D
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar galaksy2001 » 15 Avr 2017 18:35

Bon...ça mouline toujours...

@ blues : la syntaxe est bien la bonne : "export CLASSPATH=.:<chemin jar minecraft>" ?
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar influman » 16 Avr 2017 16:01

galaksy2001 a écrit:Bon...ça mouline toujours...

@ blues : la syntaxe est bien la bonne : "export CLASSPATH=.:<chemin jar minecraft>" ?


plutôt que de faire un "cd..", pourquoi ne pas déjà donner le chemin absolu depuis la racine ?
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Demande d'aide script Php

Messagepar galaksy2001 » 17 Avr 2017 14:30

Parce que quand je me connecte avec mon compte root, je n'arrive pas directement à la racine ;)
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar influman » 18 Avr 2017 15:07

galaksy2001 a écrit:Parce que quand je me connecte avec mon compte root, je n'arrive pas directement à la racine ;)


si tu as les droits pour changer de répertoire avec des "CD..", tu peux donc donner le chemin absolu depuis la racine : "/.../../../volume2/.."
ou alors j'ai pas compris quelque chose.

Sinon tu crées un lien et/ou un alias pour y accéder
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Demande d'aide script Php

Messagepar galaksy2001 » 18 Avr 2017 21:12

Ben parce que c'est toute la différence entre toi et moi :
Toi tu sais de quoi tu causes et moi je cherche à comprendre le php en bidouillant des scripts pré-existants ! :D
J'ai bien conscience que ma méthode n'est pas la meilleure et qu'un jour ou l'autre il va falloir que je trouve le temps de m'y mettre.
En attendant merci pour tes précieux conseils ;)

Si j'ai bien compris "/.../" permet d'ouvrir le chemin absolu depuis la racine

J'ai donc lancé la commande suivante :
Code : Tout sélectionner
"/.../volume2/minecraft/nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui\n"


Ça mouline toujours ...

Edith : ensuite, un alias à créer, je vois bien de quoi tu causes mais je ne sais pas comment le faire. Je ne ferai pas le boulet en te demandant de l'aide aussi à ce sujet : c'est à moi de m'y mettre !
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar blues » 18 Avr 2017 22:24

"Ça mouline" n'est pas très causant... Tu peux voir au niveau du serveur que quelque chose "mouline" ? Le programme java ne génère aucun fichier de log ? Au pire envoyer les sorties standards vers un fichier : "... nogui >/var/tmp/monlog 2>&1\n"
Cela devrait générer le visuel de l'appel de la commande telle que tu l'aurait à l'écran en la lançant directement mais en l'écrivant dans un fichier qu'il faudra consulter ensuite... Il y aura peut être l'explication de ce qui cloche... depuis le début c'est plus un problème de connaissances linux que php.
blues
 
Messages : 630
Inscription : 05 Fév 2012
Localisation : 37

Re: Demande d'aide script Php

Messagepar influman » 18 Avr 2017 23:23

lol non, quand je mettais ../.. c'était pour que tu remplaces avec les dossiers complets depuis la racine.

connecte toi via putty, mets toi dans le répertoire que tu veux de minecraft et tape "pwd", tu auras le chemin absolu complet normalement depuis la racine /
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Demande d'aide script Php

Messagepar galaksy2001 » 19 Avr 2017 19:51

@ blues : quand je dis "ça mouline" c'est vrai que c'est pas très clair !!! Je veux dire que quand je lance le fichier php via un navigateur, celui-ci ne me renvoie rien, même pas un message d'erreur, j'ai droit sur chrome au "chti cercle qui tourne en boucle" ;)

@ influman : ok :lol: j'ai rentré le chemin absolu et ben tu sais quoi ... ça mouline !!!

Je vais arrêter de vous faire perdre votre temps. De toutes façons, minecraft sur mon serveur me bouffe 85% de mon CPU ! Donc je laisse tomber cette solution.

Merci beaucoup les gars :thumbup: :thumbup:
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar influman » 19 Avr 2017 23:38

essaye juste ça comme script :

Code : Tout sélectionner
<?php
function ssh($host, $login, $mdp, $command)
{
    if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
    if(!($con = ssh2_connect($host, 22))){
        echo "échec connexion\n";
    } else {
        if(!ssh2_auth_password($con, $login, $mdp)) {
            echo "échec authentification\n";
        } else {
            // execute a command
            if (!($stream = ssh2_exec($con, $command ))) {
                echo "échec de l'exécution de la commande\n";
            } else {
                // collect returning data from command
                stream_set_blocking($stream, true);
                $data = "";
                while ($buf = fread($stream,4096)) {
                    $data .= $buf;
                }
                fclose($stream);
                return $data;
            }
        }
    }
}

$command = 'tonchemin/nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui'
$ret = ssh('192.168.0.tonIP', 'root', 'password', $command);
echo '<pre>' . $ret . '</pre>';
?>
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Demande d'aide script Php

Messagepar galaksy2001 » 21 Avr 2017 10:28

Merci influman ;)

J'ai essayé ton script : il me retourne un syntax error à la ligne 29.

Code : Tout sélectionner
Parse error: syntax error, unexpected '$ret' (T_VARIABLE) in /volume2/web/minecrafton.php on line 29


J'ai bien précisé l'adresse IP, le mdp à la ligne 29 et la commande à la ligne 28. Je ne vois pas où se trouve l'erreur de syntaxe. J'ai tenté en rajoutant le \n à la fin de la commande : idem .
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar rover820i » 21 Avr 2017 13:44

Il manque un ; à la fin de la ligne 28 :
Code : Tout sélectionner
MinecraftServer nogui';
rover820i
 
Messages : 3371
Inscription : 23 Juil 2016

Re: Demande d'aide script Php

Messagepar influman » 21 Avr 2017 14:18

et si tu dis encore que ça mouline, j'arrête ce sujet... :D
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: Demande d'aide script Php

Messagepar galaksy2001 » 22 Avr 2017 10:16

Merci influman ! Eh ben tu sais quoi ? Ca ne mouline plus ! Par contre j'ai un :

Code : Tout sélectionner
function ssh2_connect doesn't exist


Est-ce que, comme dans le script précédent, je dois pas lui indiquer la librairie, du genre :

Code : Tout sélectionner
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('phpseclib/Net/SSH2.php');


$ssh = new Net_SSH2('192.168.0.23');
galaksy2001
 
Messages : 727
Inscription : 06 Jan 2014

Re: Demande d'aide script Php

Messagepar rover820i » 22 Avr 2017 14:08

galaksy2001 a écrit:Merci influman !

De rien aussi, ça fait plaisir d'être transparent quand on aide :mrgreen:
rover820i
 
Messages : 3371
Inscription : 23 Juil 2016

Suivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 30 invité(s)