| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/bin/bash
- # LGSM logs.sh function
- # Author: Daniel Gibbs
- # Contributor: UltimateByte
- # 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
- # Log manager will start the cleanup if it finds logs older than "${logdays}"
- if [ $(find "${scriptlogdir}"/ -type f -mtime +"${logdays}"|wc -l) -ne "0" ]; then
- fn_printdots "Starting"
- # Set addon logs directories
- sourcemodlogdir="${systemdir}/addons/sourcemod/logs"
- ulxlogdir="${systemdir}/data/ulx_logs"
- darkrplogdir="${systemdir}/data/darkrp_logs"
- legacyserverlogdir="${rootdir}/log/server"
- # Setting up counting variables
- scriptcount="0" ; consolecount="0" ; gamecount="0" ; srcdscount="0" ; smcount="0" ; ulxcount="0" ; darkrpcount="0" ; legacycount="0"
- 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"
- # Logging logfiles to be removed according to "${logdays}", counting and removing them
- # Script logfiles
- find "${scriptlogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- scriptcount=$(find "${scriptlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${scriptlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- # SRCDS and unreal logfiles
- if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
- find "${gamelogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- gamecount=$(find "${gamelogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${gamelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Console logfiles
- if [ -n "${consolelog}" ]; then
- find "${consolelogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- consolecount=$(find "${consolelogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${consolelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Source addons logfiles
- if [ "${engine}" == "source" ]; then
- # SourceMod logfiles
- if [ -d "${sourcemodlogdir}" ]; then
- find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- smcount=$(find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${sourcemodlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # Garry's Mod logfiles
- if [ "${gamename}" == "Garry's Mod" ]; then
- # ULX logfiles
- if [ -d "${ulxlogdir}" ]; then
- find "${ulxlogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- ulxcount=$(find "${ulxlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${ulxlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- # DarkRP logfiles
- if [ -d "${darkrplogdir}" ]; then
- find "${darkrplogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- darkrpcount=$(find "${darkrplogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${darkrplogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- fi
- fi
- fi
- # Legacy support
- if [ -d "${legacyserverlogdir}" ]; then
- find "${legacyserverlogdir}"/ -type f -mtime +"${logdays}"| tee >> "${scriptlog}"
- legacycount=$(find "${legacyserverlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
- find "${legacyserverlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
- # Remove folder if empty
- if [ ! "$(ls -A "${legacyserverlogdir}")" ]; then
- rm -rf "${legacyserverlogdir}"
- fi
- fi
-
- # Count total amount of files removed
- count=$((${scriptcount} + ${consolecount} + ${gamecount} + ${srcdscount} + ${smcount} + ${ulxcount} + ${darkrpcount} + ${legacycount}))
- # Job done
- fn_printok "Removed ${count} log files"
- fn_scriptlog "Removed ${count} log files"
- sleep 1
- echo -en "\n"
- fi
|