lgsm local mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

118 lines
2.7 KiB

#!/bin/bash
# LinuxGSM alert_email.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Sends email alert.
local commandname="ALERT"
local commandaction="Alert"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_details_gameserver(){
#
# Quake Live Server Details
# =====================================
# Server name: ql-server
# Server IP: 1.2.3.4:27960
# RCON password: CHANGE_ME
# Server password: NOT SET
# Maxplayers: 16
# Status: OFFLINE
{
echo -e ""
echo -e "${gamename} Server Details"
echo -e "================================="
# Server name
echo -e "Server name: ${servername}"
# Server ip
echo -e "Server IP: ${ip}:${port}"
# Server password
if [ -n "${serverpassword}" ]; then
echo -e "Server password: ********"
fi
# RCON password
if [ -n "${rconpassword}" ]; then
echo -e "RCON password: ********"
fi
# Admin password
if [ -n "${adminpassword}" ]; then
echo -e "Admin password: ********"
fi
# Stats password (Quake Live)
if [ -n "${statspassword}" ]; then
echo -e "Stats password: ********"
fi
# Maxplayers
if [ -n "${maxplayers}" ]; then
echo -e "Maxplayers: ${maxplayers}"
fi
# Game mode
if [ -n "${gamemode}" ]; then
echo -e "Game mode: ${gamemode}"
fi
# Game world
if [ -n "${gameworld}" ]; then
echo -e "Game world: ${gameworld}"
fi
# Tick rate
if [ -n "${tickrate}" ]; then
echo -e "Tick rate: ${tickrate}"
fi
# TeamSpeak dbplugin
if [ -n "${dbplugin}" ]; then
echo -e "dbplugin: ${dbplugin}"
fi
# Online status
if [ "${status}" == "0" ]; then
echo -e "Status: OFFLINE"
else
echo -e "Status: ONLINE"
fi
} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"| tee -a "${emaillog}" > /dev/null 2>&1
}
fn_print_dots "Sending Email alert: ${email}"
sleep 0.5
fn_script_log_info "Sending Email alert: ${email}"
info_distro.sh
info_config.sh
info_glibc.sh
info_messages.sh
if [ -f "${emaillog}" ]; then
rm "${emaillog}"
fi
{
fn_info_message_head
fn_info_message_distro
fn_info_message_performance
fn_info_message_disk
fn_info_message_gameserver
fn_info_logs
} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"| tee -a "${emaillog}" > /dev/null 2>&1
if [ -n "${emailfrom}" ]; then
mail -s "${alertsubject}" -r "${emailfrom}" "${email}" < "${emaillog}"
else
mail -s "${alertsubject}" "${email}" < "${emaillog}"
fi
exitcode=$?
if [ "${exitcode}" == "0" ]; then
fn_print_ok_nl "Sending Email alert: ${email}"
fn_script_log_pass "Sending Email alert: ${email}"
else
fn_print_fail_nl "Sending Email alert: ${email}"
fn_script_log_fatal "Sending Email alert: ${email}"
fi