globox99 29 Zgłoś post Napisano Październik 6, 2012 Witam, potrzebuję pomocy w wykonaniu skryptu pod Linuxa w postaci skrypt.sh Ma on za zadanie wchodzić do konsoli servera Minecraft, następnie stopować go wtedy uruchomić skrypt ./mc.sh. Skrypt ma być wywoływany co 24h Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Październik 6, 2012 #!/bin/bash screen -S $names -X stuff "stop$(echo -ne '\r')" sleep 1 ./mc.sh $names = nazwa screena + crontab, aby skrypt był wykonywany co 24h. Udostępnij ten post Link to postu Udostępnij na innych stronach
globox99 29 Zgłoś post Napisano Październik 7, 2012 (edytowany) Hmm Dokładnie o to mi chodzi. Jeszcze jedną mam prośbę. Czy możesz zrobić mi tak aby skrypt wywoływał następujące komendy: 1. wchodzi do screena o nazwie "mine" 2. uruchamia komendę "say Uwaga za 2 minuty nastapi restart servera" 3. Odczeka 2 minuty 4. Wywoła komendę "kickall" 5. wywoła komendę "stop" 6. Odczeka 10 sekund 7. Uruchomi skrypt "mc.sh" I proszę abyś wbudował już w skrypt to aby był wywoływany co 24h Edytowano Październik 7, 2012 przez globox99 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Październik 7, 2012 To jest właśnie to, o czym kiedyś pisałem. Zero inwencji, zero myślenia, tylko DAJ mi! Na takie coś to chyba jedyną odpowiedzią może być insert coin! wrzuć monetę! insert coin! wrzuć monetę! Wskazówka: druga z linijek wysyła do screena komendę, trzecia usypia wywoływanie skryptu na N sekund. Musisz po prostu je skopiować kilka razy i pozmieniać wg swoich potrzeb. Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Październik 7, 2012 kafi, czego Ty próbujesz oczekiwać od tych ludzi.. on nawet nie zanalizował jak działa ten kod, inaczej sam by to zrobił Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Październik 7, 2012 (edytowany) Już napisałem taki skrypt bash.arabsmall.pl/mcinfo.sh tutaj go zmodyfikowałem dla Ciebie bash.arabsmall.pl/mcinfogb.sh Skrypt po 60 sekundach restartuje serwer (na czacie jest informacja za ile restart). Potem po 20 sekundach uruchamia skrypt mc.sh (musi być w tym samym katalogu co mcinfogb.sh). Co do 24 godzin to chyba będzie prawidłowy taki wpis (jeśli nie prosiłbym, aby ktoś mnie poprawił ). 0 0 * * * sh /sciezka/do/mcinfogb.sh a dodajesz go tak: crontab -e i na końcu dodajesz wpisz wyżej (dokładna ścieżka!). Zapisujesz plik i tyle. Na przykład jeśli plik mcinfogb.sh masz w katalogu /root/mcserver to będzie to tak wyglądać 0 0 * * * sh /root/mcserver/mcinfogb.sh Edit:Jeśli serwer uruchamiasz na root-cie to nie musisz nic zmieniać, a jeśli na innym użytkowniku to wtedy wpisz sed -i 's/root/{twoj-uzytkownik-na-ktorym-odpalasz-minecrafta}/' mcinfogb.sh na przykład jeśli odpalasz na użytkowniku arabsmall to wpisujesz sed -i 's/root/arabsmall/' mcinfogb.sh i odpalasz skrypt Edytowano Październik 7, 2012 przez ArabSmall (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
globox99 29 Zgłoś post Napisano Październik 7, 2012 (edytowany) #!/bin/bash #------Informacja------# #Skrypt powiadamiania graczy o restarcie serwera Minecraft #Skrypt wykonuje restart! #Autor: ArabSmall #Strona Autora: ArabSmall.pl | ArabSmall.pl/forum #Email: admin@arabsmall.pl #------Informacja------# #------Uwaga------# #Gdy uruchomimy serwer komenda; #screen -dmS {nazwa} {komenda} #moze wystapic problem ze skrypt sie nie wykona! #Ale wystarczy przejsc do konsoli minecrafta -> wyjsc i ponownie uruchomic #skrypt. Czyli wystarczy wpisac; #screen -dmS {nazwa} #potem wyjsc ze screen'a CTRL +A +D #i uruchomic ponownie skrypt! #------Uwaga------# #Nazwa screena; names=mine #Nazwa uzytkownika na ktorym zostal uruchomiony minecraft users=globox99 sed -i 's/globox99/globox99/' restart.sh 0 0 * * * sh /globox99/mc/restart.sh if [ -e /var/run/screen/S-$users/*$names ] then echo "Informuje graczy o restartowaniu serwera..." screen -S $names -X stuff "say Za 60 sekund serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 30 screen -S $names -X stuff "say Za 30 sekund serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 15 screen -S $names -X stuff "say Za 15 sekund serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 5 screen -S $names -X stuff "say Za 10 sekund serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 5 screen -S $names -X stuff "say Za 5 sekund serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "say Za 4 sekundy serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "say Za 3 sekundy serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "say Za 2 sekundy serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "say Za 1 sekunde serwer zostanie zrestartowany! (Prosimy o wyjscie)$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "say ||RESTART SERWERA||$(echo -ne '\r')" sleep 1 screen -S $names -X stuff "save-all$(echo -ne '\r')" screen -S $names -X stuff "kickall$(echo -ne '\r')" screen -S $names -X stuff "stop$(echo -ne '\r')" echo "Za 20 sekund serwer zostanie uruchomiony" sleep 19 echo "Uruchamiam serwer..." sleep 1 #Komenda startowa; ./mc.sh else echo -e "Przepraszam, ale nie ma screen'a o nazwie '$names' ktory nalezy do uzytkownika '$users'!\nSprawdz czy wpisales poprawna nazwe screen'a!" fi Tak będzie to wyglądać? Aby chodziło co 24 H? Edytowano Październik 7, 2012 przez globox99 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Październik 7, 2012 No samo z siebie nie będzie chodziło co 24h Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Październik 7, 2012 Pisałem co trzeba zrobić, aby chodziło co 24h. Crontab: wpisz crontab -e i dodaj wpis który podałem w poprzednim poście. Udostępnij ten post Link to postu Udostępnij na innych stronach
globox99 29 Zgłoś post Napisano Październik 7, 2012 Pisałem co trzeba zrobić, aby chodziło co 24h. Crontab: wpisz crontab -e i dodaj wpis który podałem w poprzednim poście. Ok dodałem ale teraz jak uruchomić to aby zaczęło chodzić? Ustawiłem co 2 minuty aby sprawdzić czy działa. jak włączyć teraz ten skrypt aby się sam powtarzał. crontab crontab nie działa Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Październik 7, 2012 Ale co zaczęło chodzić? Skrypt uruchamiasz ./mcinfogb.sh (najpierw chmod +x mcinfogb.sh) a crontab będzie uruchamiał ten skrypt codziennie o północy (00:00). Udostępnij ten post Link to postu Udostępnij na innych stronach