x-kom hosting

Instalacja skryptu HLTV i odczyt stron www

snikers1997
utworzono
utworzono

Witam mam taki problem mam serwer VPS na debianie i zainstalowałem tam serwer cs 1.6 oraz hltv.

Ale jeszcze chcę zainstalować skrypt hltv, który będzie mi wyświetlał demka na stronie www, ale mam z tym małe problemy ;/

 

Pierw przedstawię na czym stoję:

Po zalogowaniu się na serwer VPS przez putty gdy stwarzam plik "touch wysylanie.sh" to on mi się tworzy w folderze root

Ogólnie po zalogowaniu przez ftp także od razu wyświetla mi się w folderze root, lecz mogę cofnąć, aby wejść np. w folder "var"

 

No ale teraz tak chcę abyście mi pomogli w:

 

1. Podanie dokładnych ścieżek dla tych dwóch lokalizacji, biorąc pod uwagę, 

* że plik "wysylanie.sh" jest tworzony w folderze root

* serwer cs czyli tam gdzie demka są także w folderze root/server/cs/cstrike

* a strona www jest przed folderem root, czyli: var/www (Wszystko dokładniej przedstawione na screenie)

gdy już pomożecie mi z tymi ścieżkami

 

2. To co wpisać w crontab -e

tak, aby ten plik, który znajduje się w folderze root pod nazwą wysylanie.sh, był wykonywany co 30 minut

 

3. Odczyt stron mi nie działa:

gdy jest plik index.html i wpisze byle jaki tekst to wyświetla, ale .php już nie, po prostu wchodząc na adres strony .php chce ten plik pobierać zamiast go otworzyć jak na innych stronach.

 

Jest to dla mnie ważne, więc liczę na waszą pomoc i z góry bardzo dziękuje :)

MasterYoghourt
komentarz
komentarz (edytowane)
Ale jeszcze chcę zainstalować skrypt hltv,

Daj namiar na ten skrypt. Tylko go nie wklejaj tutaj, jak ma więcej niż 20 wierszy.

 

 

Po zalogowaniu się na serwer VPS przez putty gdy stwarzam plik "touch wysylanie.sh" to on mi się tworzy w folderze root

Tu się przyda lektura drugiego rozdziału o poruszaniu się w drzewie katalogów:

http://www.gabo.hi.pl/linux/polecenia.htm
 

Poruszanie się po konsoli może Ci ułatwić program Midnight Commander, który jest podobny do DOS'owego, Norton Commandera. Wywołujesz go poleceniem: mc

Jeśli nie masz tego programu to tutaj przykład jak go zainstalować: http://wiki.linux.pl/apt

Jednak to nie załatwi nie znajomości konsoli.

 

 

Ogólnie po zalogowaniu przez ftp także od razu wyświetla mi się w folderze root, lecz mogę cofnąć, aby wejść np. w folder "var"

W okienkach łatwiej jest się poruszać, ale musisz się nauczyć podstawowych poleceń konsoli. Jeśli znasz chodź trochę DOS'a to już połowa za Tobą.

 

. Podanie dokładnych ścieżek dla tych dwóch lokalizacji, biorąc pod uwagę, 

* że plik "wysylanie.sh" jest tworzony w folderze root

Dokładna ścieżka dla pliku wysylanie.sh to: //root/

Katalog/partycja root znajduje się w na samym szczycie drzewa katalogów.

Serwer CS umieściłeś w jednym z podkatalogów root.

 

 

a strona www jest przed folderem root, czyli: var/www

/var nie jest wyżej niż /root. Są na tym samym, najwyższym poziomie katalogów w systemach Linuks. Tutaj przyda Ci się lektura struktury katalogów w Linuks: http://pl.wikibooks.org/wiki/Linux/System_plik%C3%B3w/Drzewo_katalog%C3%B3w

 

 

To co wpisać w crontab -e

Fajnie jakbyś sprawdził wpierw konfigurację Cron'a i czy w ogóle jest uruchomiony. Aby dodać nowe zadanie dla Cron'a musisz otworzyć jego tabelę(skrypt konfiguracyjny) do edycji, która znajduje się w //etc/cron.d/crontab

Tutaj powinieneś albo używać menadżera plików mc, albo jakiegoś edytora tekstu. W mc masz skróty klawiszowe F3/F4 do podglądu/edycji plików, jak dobrze pamiętam.

Tutaj masz opis Cron'a, żeby wiedzieć jaki wiersz wpisać dla nowego zadania: http://www.ubuntu-pomoc.org/cron-automatyzacja-systemu/

 

 

gdy jest plik index.html i wpisze byle jaki tekst to wyświetla, ale .php już nie, po prostu wchodząc na adres strony .php chce ten plik pobierać zamiast go otworzyć jak na innych stronach.

Za pewne brakuje wpisu w skrypcie konfiguracyjnym serwera http, by brał pod uwagę również index o rozszerzeniu *.php. W tym celu musisz otworzyć do edycji plik //etc/http/conf/httpd.conf albo //etc/apache/conf/httpd.conf. Następnie odnajdź poniższą sekcję/dyrektywę i ma ona tak wyglądać:

....

<Directory ......>

.....

DirectoryIndex index.html index.htm index.php index.php5

...

</Directory>

....

 

Masz ogromne braki w obsłudze Linuksa, wpierw opanuj podstawy. Masz tutaj krótki kurs Linuksa od podstaw do zaawansowanych spraw: http://kik.pcz.pl/so-add/KSL/

Wystarczy, że opanujesz poziom średni, powodzenia.

 

A i bym zapomniał, jak dokonujesz jakiś zmian w skryptach konfiguracyjnych serwerów, musisz wykonać restart danej usługi, by zmiany zostały wprowadzone. Tutaj masz o restarcie usług: http://pl.docs.pld-linux.org/administracja_uslugi.html

Edytowane przez MasterYoghourt
  • Dobra wypowiedź 1
snikers1997
komentarz
komentarz

Wielkie dzięki Master :) Dużo przydatnych linków mi podałeś :)

 

No dobra udało mi się trochę po ogarniać i teraz to wygląda u mnie tak:
Odczyt stron działa już ładnie, więc problem rozwiązany. :)
mój serwer teraz znajduje się od głównego katalogu to /home/cs udało mi się przenieść :)
No i plik wysylanie.sh udało mi się utworzyć w katalogu głównym, czyli przed root :)
 
Została tylko jedna sprawa proszę was o dokładne przedstawienie jak wpisać te wykonywanie
tego skryptu co 30 minut (wysylanie.sh) do tego crona.
 
#!/bin/bash
DEMDIR=”/home/cs/cstrike” # folder z demami – tam gdzie HTLV nagrywa
DESCDIR=”/var/www/hltv/dema” # folder docelowy z demami spakowanymi
find ${DEMDIR}/*.dem -cmin +30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania
find ${DEMDIR}/*.gz -cmin +30 -exec mv {} ${DESCDIR}/ \; # przenoszenie po 30min
find ${DESCDIR}/*.gz -mtime +7 -exec rm {} \; 2> /dev/null # kasowanie po 7 dniach
MasterYoghourt
komentarz
komentarz (edytowane)

Nie umieszczasz żadnych swoich plików w katalogu głównym. Swoje pliki trzymasz w katalogu użytkownika albo administratora, czyli albo //home/użytkownik/, albo //root. Bo to jak wkładać swoje bagaże do przedziału silnika samochodu.

 

#!/bin/bash
DEMDIR=”/home/cs/cstrike” # folder z demami – tam gdzie HTLV nagrywa
DESCDIR=”/var/www/hltv/dema” # folder docelowy z demami spakowanymi
find ${DEMDIR}/*.dem -cmin +30 -exec gzip -5 {} \; # pakowanie po 30min od zakończenia nagrywania
find ${DEMDIR}/*.gz -cmin +30 -exec mv {} ${DESCDIR}/ \; # przenoszenie po 30min
find ${DESCDIR}/*.gz -mtime +7 -exec rm {} \; 2> /dev/null # kasowanie po 7 dniach

Zwróć uwagę na drugi i trzeci wiersz, jeśli masz inne położenie dem, to popraw ścieżki w tym skrypcie.

 

Jeśli chodzi o crontab to zobacz czy nie ma go w //etc/. Następnie zrób sobie kopię tego pliku w swoim katalogu użytkownika, jakbyś coś sknocił, to będziesz mógł powrócić. Teraz pod podobnymi wierszami, ale jeszcze przed końcowym znakiem "#" dopisz coś takiego:

*/30    *    *    *    *     root    //root/wysylanie.sh

Zakładam, że wysylanie.sh przeniosłeś to katalogu //root/. Liczba gwiazdek ma znaczenie.

Edytowane przez MasterYoghourt
snikers1997
komentarz
komentarz (edytowane)

No gdy wpisuje nano //etc/crontab

wyskakuje mi:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.


SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


# m h dom mon dow user  command
37 * * * * root cd / && run-parts --report /etc/cron.hourly
17 4 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/$
20 1 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/$
49 0 10 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc$
#

A gdy wpisuje crontab -l :

# Edit this file to introduce tasks to be run by cron. 
# 
# Each task to run has to be defined through a single line 
# indicating with different fields when the task will be run 
# and what command to run for the task 
# 
# To define the time you can provide concrete values for 
# minute (m), hour (h), day of month (dom), month (mon), 
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system 
# daemon's notion of time and timezones. 
# 
# Output of the crontab jobs (including errors) is sent through 
# email to the user the crontab file belongs to (unless redirected). 
# 
# For example, you can run a backup of all your user accounts 
# at 5 a.m every week with: 
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ 
# 
# For more information see the manual pages of crontab(5) and cron(8) 
# 
# m h dom mon dow command 
*/30 * * * * /wysylanie.sh

Więc mam to zostawić w tym drugim czy usunąć i wpisać pod

49 0 10 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc$

ten:

*/30 * * * *    root    //root/wysylanie.sh

 

No i czy to polecenie ma być z takimi odstępami?:

*/30    *    *    *    *     root    //root/wysylanie.sh

czy:

*/30 * * * *    root    //root/wysylanie.sh

 

No i ostatnie czy te ścieżki będą prawidłowe skoro ten plik będzie znajdował się w folderze root

 

DEMDIR=”/home/cs/cstrike # folder z demami – tam gdzie HTLV nagrywa
DESCDIR=”/var/www/hltv/dema # folder docelowy z demami spakowanymi

Edytowane przez snikers1997
MasterYoghourt
komentarz
komentarz

Nie rozumiem, wpisujesz "crontab -l" i masz już te zadanie wpisane ? Mniejsza z tym, za długo to trwa, jeśli ci działa, to zostaw tak jak jest.

 

No i ostatnie czy te ścieżki będą prawidłowe skoro ten plik będzie znajdował się w folderze root

A co ma umiejscowienie skryptu jeśli odwołuje się on do pełnej ścieżki ? Tylko, że jak zmienisz umiejscowienie skryptu, to w cron musisz także to zaktualizować. Dałem ci link do kursu Linuksa, jest tam dział o pisaniu skryptów bash, przestudiuj to. Napisz kilka skryptów, pobaw się tym, to pomoże Ci w konfiguracji całego Linuksa, gdyż większość w nim modyfikujesz za pomocą skryptów konfiguracyjnych, które zwykle są dosyć logiczne.

 

No i czy to polecenie ma być z takimi odstępami?:

Możesz dać po jednej spacji, ale odstęp musi być.

snikers1997
komentarz
komentarz (edytowane)
Dobra udało mi się nareszcie znaleźć inny skrypt tego HLTV i elegancko mi działa, nareszcie ! :)
 
Ale teraz mam pytanko, bo szukam i szukam i nie mogę znaleźć. Jakiś pliczek index.php zakodowany, żeby to HLTV było wyświetlane w ładniejszym typie, znaczy jeżeli chodzi o styl to sam zrobię, ale zakodowanie. Data, mapa, czas, itd. :D :D I to będzie na tyle i będę bardzo wdzięczny, a "Master" Tobie bardzo dziękuje za pomoc, dzięki Twojej pomocy, drugi skrypt bez problemowo załatwiłem, podałeś ciekawą stronki i wgl popisałeś mi trochę :)
Dzięki :)
 
Może uda się to edytować:
 
<?
//folder w którym mam demka
$folder = "hltv";

$ext   = array('zip', 'rar');

$sciezka = pathinfo($_SERVER['PHP_SELF']);
$adres = 'http://'.$_SERVER['HTTP_HOST'].$sciezka['dirname'].'/';

$files = scandir($folder);
$list  = array();

foreach($files as $file) 
{
	$file = pathinfo($file);
	if (in_array($file['extension'], $ext)) 
	{
		$list[] = $file['basename'];
	}
}
rsort($list, SORT_STRING);

echo '<table>
<tr><td>Kopiuj link</td><td>Mapa</td><td>Data</td><td>Godzina</td><td>Rozmiar</td><td>Pobierz</td></tr>';

foreach ($list as $nazwa) 
{
	$demo = $folder.'/'.$nazwa;
	$dane = explode('-', $nazwa);
		
	$data = $dane[1];
	$rok = substr($data, 0, 2);
	$mies = substr($data, 2, 2);
	$dzien = substr($data, 4, 2);
	$godz = substr($data, 6, 2);
	$min = substr($data, 8, 2);
		
	$data = '20'.$rok.'-'.$mies.'-'.$dzien;
	$godzina = $godz.':'.$min;
		
	$mapa = $dane[2];
	$mapa = explode('.', $mapa);
	$mapa = $mapa[0];
		
	$rozmiar = round( filesize($demo) / 1024 / 1024, 2);
	
	echo '<tr>
	<td><input type="text" value="'.$adres.$demo.'" readonly="yes" onclick="this.select()" /></td>
	<td>'.$mapa.'</td>
	<td>'.$data.'</td>
	<td>'.$godzina.'</td>
	<td>'.$rozmiar.' MB</td>
	<td><a href="'.$adres.$demo.'">Pobierz</a></td>
	</tr>';
}
?>

 

Edytowane przez snikers1997
MasterYoghourt
komentarz
komentarz

Z tym musisz uderzyć na dział programowanie i spytać kogoś kto zna PHP.

snikers1997
komentarz
komentarz

Okej napisałem w innym dziale do zamknięcia :) A masterowi dzięki za pomoc :)

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.