Skocz do zawartości
Zaloguj się, aby obserwować  
globox99

Skrypt akutomatycznych komend SH!

Polecane posty

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

#!/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

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 przez globox99 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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 przez ArabSmall (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

#!/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 przez globox99 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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

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ę

Zaloguj się, aby obserwować  

×