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.
 
 

87 lines
3.0 KiB

#!/bin/bash
# LGSM logs.sh function
# Author: Daniel Gibbs
# Website: http://gameservermanagers.com
lgsm_version="100215"
# Description: Acts as a log rotater, removing old logs.
local modulename="Log Manager"
# Check if logfile variable and file exist, create logfile if it doesn't exist
if [ -n "${consolelog}" ]; then
if [ ! -e "${consolelog}" ]; then
touch "${consolelog}"
fi
fi
# Set source log directory
if [ -z "${systemdir}" && "${engine}" == "source" ]; then
srcdslogdir="${systemdir}/logs"
# Set addons directories
sourcemodlogdir="${systemdir}/addons/sourcemod/logs"
# Set gmod addons directories
if [ "${gamename}" == "Garry's Mod" ]; then
ulxlogdir="${systemdir}/data/ulx_logs"
darkrplogdir="${systemdir}/data/darkrp_logs"
fi
fi
# log manager will active if finds logs older than ${logdays}
if [ $(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l) -ne "0" ]; then
fn_printdots "Starting"
sleep 1
fn_printok "Starting"
fn_scriptlog "Starting"
sleep 1
echo -en "\n"
fn_printinfo "Removing logs older than ${logdays} days"
fn_scriptlog "Removing logs older than ${logdays} days"
sleep 1
echo -en "\n"
# Retrocompatibility, for logs directly in /log folder
# Find game logfiles older than ${logdays} and write that list to the current script log
if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
find "${gamelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}"
fi
# Find script logfiles older than ${logdays} and write that list to the current script log
find "${scriptlogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}"
# Find console logfiles older than ${logdays} and write that list to the current script log
if [ -n "${consolelog}" ]; then
find "${consolelogdir}"/ -type f -mtime +${logdays}|tee >> "${scriptlog}"
fi
# Retrocompatibility, for logs directly in /log folder
# Count how many script logfiles will be removed
if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
gamecount=$(find "${gamelogdir}"/ -type f -mtime +${logdays}|wc -l)
fi
# Count how many script logfiles will be removed
scriptcount=$(find "${scriptlogdir}"/ -type f -mtime +${logdays}|wc -l)
echo "${consolelog}"
# Count how many console logfiles will be removed
if [ -n "${consolelog}" ]; then
consolecount=$(find "${consolelogdir}"/ -type f -mtime +${logdays}|wc -l)
else
consolecount=0
fi
# Count total amount of files to remove
count=$((${scriptcount} + ${consolecount}))
if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
count=$((${scriptcount} + ${consolecount} + ${gamecount}))
else
count=$((${scriptcount} + ${consolecount}))
fi
# Removing logfiles
if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
find "${gamelogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \;
fi
find "${scriptlogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \;
if [ -n "${consolelog}" ]; then
find "${consolelogdir}"/ -mtime +${logdays} -type f -exec rm -f {} \;
fi
fn_printok "Removed ${count} log files"
fn_scriptlog "Removed ${count} log files"
sleep 1
echo -en "\n"
fi