Рестартер TrinityCore под Linux

Приведу пример примитивного рестартера TrinityCore под Linux:

Создаем первый файл auth.sh с содержимым:

#!/bin/bash
while :; do
/home/trinity/release/bin/authserver -c /home/trinity/release/etc/authserver.conf
sleep 10
done

По нему будет запускаться сервер идентификации. Если он работает без ошибок, то в /etc/rc.local можно прописать путь к этому файлу, чтобы он грузился при запуске системы.

Создаем второй файл world.sh с содержимым:

#!/bin/sh
logfile='/home/trinity/release/bin/logs/shserver.log'
srvrun='/home/trinity/release/bin/worldserver'
srvname=worldserver
outfile='/home/trinity/release/bin/logs/crash.log'
 
 
if [ `ps ax | grep "$srvrun" | grep -v "grep" | wc -l` = 0 ]; then
   kill `ps xu | grep "$srvname" | grep "$srvrun" | grep -v "grep" | awk '{print $2}'`
   echo "Server CRASHED !!! Start Bugreport System" `date` >> $outfile
   echo "Server.log Log FILE Last 30 Lines:" >> $outfile
   cat $logfile | tail -n 30 >> $outfile
   echo "END bugtracker system." >> $outfile
   sleep 20 && $srvrun
fi
exit 0

По нему будет запускаться игровой сервер. Запускать можно через screen командой:

screen -AmdS world /home/trinity/release/bin/world.sh

online.pl скрипт количества пользователей онлайн

Приведу пример скрипта выполняющего sql запрос в mysql базу с выводом результата. Можно прицепить его к графикам Zabbix, Cacti и т.д. чтобы мониторить например количество игроков онлайн на каком нибудь игровом сервере.

#!/usr/bin/perl
use DBI;
my $host = "localhost";
my $port = "3306";
my $user = "root";
my $pass = "";
my $db = "test";
$dbh = DBI->connect("DBI:mysql:$db:$host:$port",$user,$pass);
$sth = $dbh->prepare("SELECT count(id) FROM `online`");
$sth->execute;
while ($ref = $sth->fetchrow_arrayref) {
print "$$ref[0]\n";
}
$rc = $sth->finish;
$rc = $dbh->disconnect;

Рестартер TrinityCore под Windows

Пример простого рестартера TrinityCore под Windows:

@ECHO OFF
CLS
ECHO Trinity Core
:1
start "Trinity Core" /B /MIN /WAIT TrinityCore.exe -c TrinityCore.conf
if %errorlevel% == 0 goto end
goto 1
:end

Создать пустой файл с расширением bat и поместить в него указанный выше код, сам файл положить в директорию bin.

Вариант резервного копирования

Напишу ниже простой пример резервного копирования mysql баз данных с помощью mysqldump.

Читать далее «Вариант резервного копирования»