snikers1997 utworzono 6 kwietnia 2015 utworzono 6 kwietnia 2015 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 7 kwietnia 2015 komentarz 7 kwietnia 2015 (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 7 kwietnia 2015 przez MasterYoghourt 1
snikers1997 komentarz 7 kwietnia 2015 Autor komentarz 7 kwietnia 2015 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 8 kwietnia 2015 komentarz 8 kwietnia 2015 (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 8 kwietnia 2015 przez MasterYoghourt
snikers1997 komentarz 8 kwietnia 2015 Autor komentarz 8 kwietnia 2015 (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 nagrywaDESCDIR=”/var/www/hltv/dema” # folder docelowy z demami spakowanymi Edytowane 8 kwietnia 2015 przez snikers1997
MasterYoghourt komentarz 8 kwietnia 2015 komentarz 8 kwietnia 2015 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 8 kwietnia 2015 Autor komentarz 8 kwietnia 2015 (edytowane) Dobra udało mi się nareszcie znaleźć inny skrypt tego HLTV i elegancko mi działa, nareszcie ! :) http://185.36.169.161/hltv/ 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 8 kwietnia 2015 przez snikers1997
MasterYoghourt komentarz 10 kwietnia 2015 komentarz 10 kwietnia 2015 Z tym musisz uderzyć na dział programowanie i spytać kogoś kto zna PHP.
snikers1997 komentarz 10 kwietnia 2015 Autor komentarz 10 kwietnia 2015 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.