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