Skocz do zawartości
Zasepa

Logi ze screen

Polecane posty

Witam

Potrzebuje skryptu albo ustawień o ile takie są aby wszystko to co dzieje się na screen było zapisywane do logów.

Proszę o pomoc. Gdyż bez tego nie wiem co się dzieje z aplikacją pod moją nieobecność.

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po co Ci logi jak odpalasz aplikację w screen? Przecież masz całą historię w oknie.

 

A jak potrzebujesz dodatkowo czegoś takiego to zainteresuj się tee.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zapomniałem napisać. Kupiłem vps. Loguje się do niego przez konsole putty. Na screenie stawiam aplikację. Niestety gdy opuszczę program. Np na noc, to potem nie wiem co aplikacja robiła przez ten czas.

Syndrom

Mam te ustawienia dodać do pliku screenrc a gdzie go znajdę?

Z tego co teraz wyczytałem to mam go utworzyć w katalogu użytkownika?

i ma się nazywać ".screenrc" z kropka na początku? i tyle? Trzeba jakoś restartować tą usługę screen, aby po dodaniu tego pliku wszystko działało?

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

screen -L stworzy ci pliczek screenlog.0 w którym będzie cały output screena.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A nie prościej, szybciej i mniej awaryjnie to użyć inita na noc? Jak Ci apka padnie to ją zrestartuje i masz elegancko logi. W systemd to paręnaście linijek z tego większość z szablonu w zależności jaka apka.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja muszę mieć wszystkie logi z aplikacji.(screena) I mieć możliwość przeglądania ich w danej chwili i z danego czasu.

Niestety nie znam się dobrze aby samemu poradzić z tym problemem.

Proszę o pomoc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Chodziło mi żebyś dodał -L do linii polecenia screen.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

Przykładzik na szybko:

 

- logujesz się na putty

- odpalasz screena przykładowo:

screen -S jakasnazwa -L

odpalasz apke

klikasz CTRL +A, D (najprościej tłumacząc - minamalizujesz screena i wracasz do konsoli)

 

-L - odpala logowanie screena screenlog.0 (gdzie 0 jest kolejnym ID odpalonego screena, jak odpalisz kolejnego to bedzie screenlog.1)

 

Żeby sprawdzić jakie screeny są uruchomione:

screen -ls

Żeby wrócić do screena, którego odpaliliśmy wcześniej:

screen -r jakasnazwa

Z kolei żeby scrollować w aktywnym screenie:

CTRL+A, ESC - przechodzisz w copy-mode

Żeby wyjść wystarczy: ENTERx2

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Z kolei żeby scrollować w aktywnym screenie:

CTRL+A, ESC - przechodzisz w copy-mode

Żeby wyjść wystarczy: ENTERx2

Dzięki ci za to tą poradę własnie wkurzało mnie ze nie mogę przewinąć.

 

Jeśli chodzi o plik "screenlog.0" to on się tworzy w katalogu użytkownika? On jest non stop aktualizowany? Nie ma jakiegoś opóźnienia w aktualizacji logów do pliku? Plik jest na stałe nawet po wyłączeniu screena?

 

Zobaczę i dam znać czy jest to porządny efekt.

 

Bardzo dziękuje z pomoc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

Tak, zapisywany jest tam output screena (czyli to co widoczne jest w screenie) i nawet po wyłączeniu screena tam będzie.

 

Jeśli uruchamiasz aplikacje w screenie, ale nie wykonujesz żadnych innych operacji (poza uruchomieniem samej tej aplikacji) to może rozważ uruchomienie z kierowaniem output do pliku?

 

Przykładowo

screen -S mojscreen

./mojaapka.sh > log.txt

CTRL+A, D

 

I teraz zamiast wracać do screena, robimy po prostu:

 

Aby wyświetlić w konsoli całość (nie polecam :) - lepiej użyć less - niżej info)

cat log.txt

 

Aby śledzić ostatnią aktywność oraz każdą nową:

tail -f log.txt

 

Aby prześledzić od początku log:

less log.txt

^ SHIFT+G, aby zjechać na sam koniec logu

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zrobiłem tak:

screen -S mojscreen -L

./mojaapka.sh > log.txt

CTRL+A, D

 

I działa świetnie

Lecz to nie koniec. Mam problem, gdyż posiadam skrypt na uruchomienie tej aplikacji w bash.

I tu moje pytanie jak zaimplementować to do skryptu? Testowałem różne warianty i w gdy dam w jednej linijce aby utworzyło screena i uruchomiło aplikację to nie działają logi :( w dwóch linijkach wszystko działa. ale niewiem jak przełożyć to na skrypt. Bo tutaj tworzę screena właczam aplikację i wychodze ze screena kombinacją klawiszy. A jak ma to skrypt zrobić?

Proszę o pomoc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

Możesz uruchomić skrypt, który będzie startował screen jako detached (zminimalizowany).

 

Utwórz plik startScreen.sh z zawartością:

#!/bin/sh
screen -dmS NAZWA_MOJEGO_SCREENA "./mojapka.sh" >> NAZWA_LOGU.txt

Nie zapomnij ustawić prawa do wykonania:

chmod +x startScreen.sh

No i teraz tylko odpal skrypt, a screen sam się uruchomi zminimalizowany, a będziesz mógł go przywrócić przez screen -r NAZWA_MOJEGO_SCREENA (edit: oczywiście screen odpala w sobie apkę i zaczyna zrzucać log do pliku ;) )

./startScreen.sh

Mam nadzieję, że pomogłem :)

Edytowano przez jotme (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Ja na podstawie screenlog.0 zrobiłem podgląd konsoli w panelu cs 1.6 dla kolegi i działa to dobrze.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zrobiłem tak:

 

screen -A -m -d -S -L testowyhlds ./hlds_run -game cstrike +port 27016 >> /home/serwer/loghlds.txt

Nie było sensu pisać wszystkich parametrów startowych do aplikacji więc dałem tylko 2.

Nie wiem czemu ale nie działa. Tworzy tylko plik logów ale nie uruchamia screena(logi są puste)

 

Jeśli uruchamianie aplikacji dam w cudzysłowach efekt jest ten sam.

Pytanie w którym miejscu dodać parametr -L dla screena? Testowałem w różnych miejscach i nie działa.

 

I jeszcze jedno pytanie. Zanim uruchomie apliakcję chciałym jeszcze wpisać do screena kilka innych komend jak to zrobić z poziomu skryptu?

I jeszcze jendo jak do uruchomionego screena z poziomu skryptu wpisać jakąś komendę?

Proszę o pomoc

Edytowano przez Zasepa (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

startServer.sh:

#!/bin/sh
screen -mdS testowyhlds ./hlds_run -game cstrike +port 27016 >> /home/serwer/loghlds.txt

Jaki jest efekt po uruchomieniu ./startServer.sh (wcześniej chmod+x oczywiście)

 

Co pokazuje "screen -ls"

 

Bez -L, bo log zapisujemy do konkretnego pliku loghlds.txt zamiast screenlog.0

 

Screen zakończy pracę jeśli program w nim zostanie również zakończony (nie będzie aktywny).

 

 

 

edit:

 


I jeszcze jedno pytanie. Zanim uruchomie apliakcję chciałym jeszcze wpisać do screena kilka innych komend jak to zrobić z poziomu skryptu?

 

 

A widzisz, stąd było moje pytanie odnośnie tego czy tylko startujesz aplikacje.

W tym przykładzie tego nie zrobisz, więc wracamy do rozwiązania od @Kamikadze

 

Czyli:

#!/bin/sh
screen -L -mdS testowyhlds ./hlds_run -game cstrike +port 27016

 

I konsola będzie dostępna i log zapisywany do screenlog.0

Edytowano przez jotme (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jakoś się obejdzie bez wpisywania dodatkowych komend.

 

Niestety ale nie działa prawidłowo.

Screen startuje, serwer działa, plik logu zostaje utworzony. Lecz jest pusty.

po wpisaniu screen -ls wyskakuje:

 


There is a screen on:
23624.testowyhlds (04/02/17 16:40:39) (Detached)

 

 

Więc wszystko działa. Tylko ze log jest pusty :(

 

Mam pytanie do "screen -L -mdS testowyhlds ./hlds_run -game cstrike +port 27016"

Czy jeżeli tworzę screena bez parametru -d w skrypcie to czy na koniec skryptu muszę jakoś zrobić to tzw Ctrl + A Ctrl + D w skrypcie?? bo ten skrypt na uruchomienie serwera będzie uruchamiany z crontab.

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

Utwórz z -d

Potem po prostu screen -r testowyhlds zeby przywolac screena + CTRL+A, D, żeby "zminimalizować".

 

Więc wszystko działa. Tylko ze log jest pusty

 

- A jaki plik sprawdzasz?

 

Jak wybierzesz screen -r testowyhlds to coś w nim jest zapisane? Widać coś w oknie?

 

Samo wywołanie screena lepiej niech nie idzie bezpośrednio tylko ze skryptu. Jutro po pracy mogę do Ciebie zerknąć jeśli chcesz, wyślij mi wtedy PW.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
- A jaki plik sprawdzasz?

 

no ten "loghlds.txt"

I jest on pusty

natomiast jak wejdę w ten screen (screen -r testowyhlds) to mam logi z serwera

Wiec czemu ich nie zapisuje?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Udało mi się.

Dałem tak:

 

screen -L -mdS testowyhlds ./hlds_run -game cstrike +port 27015

Wcześniej myślałem ze ten log będzie się tworzył w głównym katalogu użytkownika. Ale on się tworzy w katalogu gdzie jest uruchamiana aplikacja. I teraz wszystko działa.

 

Ale chciałem jeszcze dodać logi ze screena od hltv.

Dodałem tak samo. Lecz zamiast utworzyć się kolejny plik(screenlog.1) na logi to logi zapisują się do tego samego pliku co serwer(screenlog.0)

Pytanie jak to naprawić?

Bardzo dziękuje za pomoc

Edytowano przez Zasepa (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość jotme

Pierwszy odpalony screen będzie logował do screenlog.0, każdy n'ty do screenlog.n ***

Domyślnie***

 

W przeciwnym wypadku sprawdź jakie zmiany wprowadzałeś do pliku ~/.screenrc

Edytowano przez jotme (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tego pliku nie miałem.

Utworzyłem go w głównym katalogu użytkownika i wkleiłem zawartość:

 

logfile flush 0

log on
defutf8 on
msgwait 2
defscrollback 50
defobuflimit 50

 

Oczywiście chmod 755

Dobrze zrobiłem?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×