Portál AbcLinuxu, 10. května 2025 19:41

Dotaz: PHP čtení screenu

19.8.2013 22:05 Filip Koželuh
PHP čtení screenu
Přečteno: 359×
Odpovědět | Admin

Dobrý den,

již několik dnů zkoumám a prohlížím jak udělat tkz. online konzoly pro herní servery. Například server pustím příkazem "screen -d -m -S server5790 java -jar war.jar". Avšak bych chtěl provést na webu, aby se screen zobrazoval tkz. online konzoly. Jedná se o remote server, tudíž potřebují pomocí SSH2 se na server připojit a pomocí nějaké PHP funkce vypsat screen například do texťáku nebo jakkoliv jinak.

 

Potkal se již někdo s tímto problémem? Díky Koželuh

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 19.8.2013 22:34 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP čtení screenu
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.php.net/manual/en/function.proc-open.php
Hello world ! Segmentation fault (core dumped)
19.8.2013 23:38 Filip Koželuh
Rozbalit Rozbalit vše Re: PHP čtení screenu

Dobrý den,

děkuji za nasměrování. Avšak této funkci vůbec nerozumíme. Nějaké přípojení na vzdálený server případně co a jak. Byl by jste tak hodný a ochotný a dal nám dokupy nějaký provizorní kód z kterého by jsme mohli nabírat informace ? Díky

Josef Kufner avatar 21.8.2013 01:57 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP čtení screenu
proc_open('ssh example.com ./get-screenshot.sh', ...);
Přičemž ./get-screenshot.sh je skript na serveru, který pořídí screenshot a vypíše ho na stdout. Tedy něco jako:
#!/bin/sh
screen -X hardcopy /tmp/screenshot \
&& cat /tmp/screenshot \
&& rm /tmp/screenshot
Samozřejmě potřebuješ mít rozběhanou autentikaci nešifrovaným RSA klíčem, aby se ssh na nic neptalo.
Hello world ! Segmentation fault (core dumped)
rADOn avatar 20.8.2013 10:32 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: PHP čtení screenu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Do ovladani screeny se neser pokud nemusis. Herni servery obvykle maji nejakou variantu rcon protokolu kterou se nechaji ovladat pres ip socket. Jestli je to minecraft (soude podle te javy) tak staci v konfiguraku nastavit port pro rcon.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
20.8.2013 13:35 Filip Koželuh
Rozbalit Rozbalit vše Re: PHP čtení screenu

Zdravíčko,

bohužel se nejedná o minecraft, jedná se o hru kterou tvoříme a zde bohužel rcon ještě nemáme... Potřebujeme pouze číst co je v screenu nechceme odesílat příkazy. Stačí nám pouze to čtení, případně se dá číst i error.log, jelikož tam máme výpis kompletně celé konzole. Avšak bych potřeboval udělat třeba, aby to vypisovalo posledních 40 řádků. Jelikož když log bude mít 100MB tak ať se to každých pár vteřin nestahuje celé.

rADOn avatar 20.8.2013 15:24 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: PHP čtení screenu
Google - třetí výsledek: Can I take a text screenshot of a GNU Screen session?. Ne ze by to bylo potreba – podle toho co pises muzes nechat screenu napokoji a proste jen tailnout poslednich N radek z logu.

Ale stejne mi to pripada jako pitomej napad. Aby to slo v php tak budes muset mit privatni klic k session se serverem citelnej pod nobodym. Nemluve o tom ze jakykoliv popen je potencialni riziko, natoz ssh nekam jinam…

Jestli staci jen ohak do doby nez poridite opravdovej rcon, stacilo by z crontabu pravidelne poustet tail, vyblej ho do souboru a ten zverejnit pres http. Kdyz by mermomoci slo o vteriny tak muzes cist i ten velkej log a pomoci http navazovani dotahnout jen konec souboru.

Nekde bych jste vyhrabal skript kterej takhle pozira log a aktualizuje podle nej seznam lidi na serveru, dokonce to i fungovalo :-)
"2^24 comments ought to be enough for anyone" -- CmdrTaco
20.8.2013 15:27 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: PHP čtení screenu
pokud je to vlastni hra, vytvorte si nejake api... a nemusite se ani pripojovat pres ssh
20.8.2013 22:40 Filip Koželuh
Rozbalit Rozbalit vše Re: PHP čtení screenu

Zdravíčko :-)

Bohužel již nemáme zájem hru dále rozšiřovat. Potřebujeme to nějak vyřešit následovným způsobem. Načítání do PHP pomocí SFTP či jiné linux funkce error.log nebo přímo otevírat screen ze serveru.

20.8.2013 23:39 potato
Rozbalit Rozbalit vše Re: PHP čtení screenu
Ono se může snadno ukázat, že přidat hře příčetné ovládací rozhraní je podstatně snažší (a především robustnější) než bastlení čehosi levou rukou za pravým uchem se screenem z php.
21.8.2013 00:47 Filip Koželuh
Rozbalit Rozbalit vše Re: PHP čtení screenu

Dobrý den, ano to máte pravdu. Avšak bohužel jsme definitivně s projektem skončili a rád bych ho využíval. Tudíž přidání API či RCONu apod. není pro mě řešení.

21.8.2013 08:25 potato
Rozbalit Rozbalit vše Re: PHP čtení screenu
jsme definitivně s projektem skončili a rád bych ho využíval
Na to nemohu říci, než že to je protimluv.

Hodlám-li něco využívat, dokonce využívat novým způsobem, tak jsem s tím neskončil. Naopak, mám s tím nějaké další cíle, a jde o objektivní posouzení, jak jich nejlépe dosáhnout.
21.8.2013 11:51 Filip Koželuh
Rozbalit Rozbalit vše Re: PHP čtení screenu

Dobrý den,

omlouvám se. Avšak zde žádám o radu jak udělat čtení screenu nebo vytáhnutí souboru pomocí SFTP nebo SSH2. Nechci tady rozebírat naší hru. Máme své důvody proč s hrou dále nepokračovat... Příště prosím již pouze příspěvky k tématu. Díky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.