Skocz do zawartości

start.sh


Nx

Rekomendowane odpowiedzi

Witam.

 

Mam problem:

 

 #!/usr/bin/perl -X  
use Socket;

#-----------------------------------------------------------
# Konfiguracja (Do ustawienia według opisu)
#-----------------------------------------------------------

my $host = "x.x.x.x"; # Adres IP serwera do sprawdzania (To jest ten zbindowany).
my $port = "27015";   # Port serwera, na którym chodzi.
use constant CHECKEVERY => 90; # Jak często sprawdzać serwer ? (Tutaj ustawiono co 90 sekund).
use constant TIMEOUT => 20;    # Jak długo czekać na jego odpowiedź zanim go zrestartujemy.

# Poniżej podaj ścieżkę do skryptu uruchamiającego/restartującego serwer.
# Oczywiście może to być także zwykła komenda zawierające odpowiednie opcje.
  
my $cmd  = "/home/hlds_l/scripts/hlds restart";

#-----------------------------------------------------------
# Nie edytuj tego poniżej, chyba, że wiesz co robisz :)
#-----------------------------------------------------------

my $MAXLEN = 128;
my $msg="\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00";
my $RET = "NONE!";
$SIG{ALRM} = sub { &TimeOut };
&Start;
sub CheckServer {
    my $ipaddr = inet_aton($host);
    my $portaddr = sockaddr_in($port, $ipaddr);
    $RET = "NONE!";
    socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp")) or die "socket: $!";
    send(SOCKET, $msg, 0, $portaddr) == length($msg) or die "Error Sending Query.\n";
    alarm(TIMEOUT);
    recv(SOCKET, $RET, $MAXLEN, 0);
    close SOCKET;
        sleep(CHECKEVERY);
}
sub Start {
    while (1) {
        &CheckServer;
        }
    }
sub TimeOut {
if ($RET eq "NONE!") {
    print "SERVER DOWN, RESTARTING!\n";
        $STARTSERV = `/usr/bin/perl -w $cmd`;
        print $STARTSERV . "\n";
    }
    sleep(CHECKEVERY);
    close SOCKET;
}

 

I gdy to zrobie i zapisze do pliku start.sh i gdy uruchomię "./start.sh" to wyskakuje błąd

 

./start.sh: line 2: use: command not found
./start.sh: line 8: my: command not found
./start.sh: line 9: my: command not found
./start.sh: line 10: use: command not found
./start.sh: line 11: use: command not found
./start.sh: line 16: my: command not found
./start.sh: line 22: my: command not found
./start.sh: line 23: my: command not found
./start.sh: line 24: my: command not found
./start.sh: line 25: {ALRM}: command not found
./start.sh: line 25: TimeOut: command not found
./start.sh: line 26: syntax error near unexpected token `&'
./start.sh: line 26: ` &Start;'

 

Dokładny opis tego znajduje się tu: http://hlds.pl/ServerChecker

Odnośnik do komentarza
Udostępnij na innych stronach

Mowisz, żebym zmienił na .pl to zmieniłem ale dalej jest błąd:

 

xen:/home# ./start.pl
./start.pl: line 2: use: command not found
./start.pl: line 8: my: command not found
./start.pl: line 9: my: command not found
./start.pl: line 10: use: command not found
./start.pl: line 11: use: command not found
./start.pl: line 16: my: command not found
./start.pl: line 22: my: command not found
./start.pl: line 23: my: command not found
./start.pl: line 24: my: command not found
./start.pl: line 25: TimeOut: command not found
./start.pl: line 26: syntax error near unexpected token `&'
./start.pl: line 26: ` &Start;'
xen:/home# ./start.pl: line 25: {ALRM}: command not found

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...