logs.sh 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. # LGSM logs.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: UltimateByte
  5. # Website: http://gameservermanagers.com
  6. lgsm_version="100215"
  7. # Description: Acts as a log rotater, removing old logs.
  8. local modulename="Log Manager"
  9. # Check if logfile variable and file exist, create logfile if it doesn't exist
  10. if [ -n "${consolelog}" ]; then
  11. if [ ! -e "${consolelog}" ]; then
  12. touch "${consolelog}"
  13. fi
  14. fi
  15. # Log manager will start the cleanup if it finds logs older than "${logdays}"
  16. if [ $(find "${scriptlogdir}"/ -type f -mtime +"${logdays}"|wc -l) -ne "0" ]; then
  17. fn_printdots "Starting"
  18. # Set addon logs directories
  19. sourcemodlogdir="${systemdir}/addons/sourcemod/logs"
  20. ulxlogdir="${systemdir}/data/ulx_logs"
  21. darkrplogdir="${systemdir}/data/darkrp_logs"
  22. legacyserverlogdir="${rootdir}/log/server"
  23. # Setting up counting variables
  24. scriptcount="0" ; consolecount="0" ; gamecount="0" ; srcdscount="0" ; smcount="0" ; ulxcount="0" ; darkrpcount="0" ; legacycount="0"
  25. sleep 1
  26. fn_printok "Starting"
  27. fn_scriptlog "Starting"
  28. sleep 1
  29. echo -en "\n"
  30. fn_printinfo "Removing logs older than "${logdays}" days"
  31. fn_scriptlog "Removing logs older than "${logdays}" days"
  32. sleep 1
  33. echo -en "\n"
  34. # Logging logfiles to be removed according to "${logdays}", counting and removing them
  35. # Script logfiles
  36. find "${scriptlogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  37. scriptcount=$(find "${scriptlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  38. find "${scriptlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  39. # SRCDS and unreal logfiles
  40. if [ "${engine}" == "unreal2" ]||[ "${engine}" == "source" ]; then
  41. find "${gamelogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  42. gamecount=$(find "${gamelogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  43. find "${gamelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  44. fi
  45. # Console logfiles
  46. if [ -n "${consolelog}" ]; then
  47. find "${consolelogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  48. consolecount=$(find "${consolelogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  49. find "${consolelogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  50. fi
  51. # Source addons logfiles
  52. if [ "${engine}" == "source" ]; then
  53. # SourceMod logfiles
  54. if [ -d "${sourcemodlogdir}" ]; then
  55. find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  56. smcount=$(find "${sourcemodlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  57. find "${sourcemodlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  58. fi
  59. # Garry's Mod logfiles
  60. if [ "${gamename}" == "Garry's Mod" ]; then
  61. # ULX logfiles
  62. if [ -d "${ulxlogdir}" ]; then
  63. find "${ulxlogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  64. ulxcount=$(find "${ulxlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  65. find "${ulxlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  66. fi
  67. # DarkRP logfiles
  68. if [ -d "${darkrplogdir}" ]; then
  69. find "${darkrplogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  70. darkrpcount=$(find "${darkrplogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  71. find "${darkrplogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  72. fi
  73. fi
  74. fi
  75. # Legacy support
  76. if [ -d "${legacyserverlogdir}" ]; then
  77. find "${legacyserverlogdir}"/ -type f -mtime +"${logdays}"|tee >> "${scriptlog}"
  78. legacycount=$(find "${legacyserverlogdir}"/ -type f -mtime +"${logdays}"|wc -l)
  79. find "${legacyserverlogdir}"/ -mtime +"${logdays}" -type f -exec rm -f {} \;
  80. # Remove folder if empty
  81. if [ ! "$(ls -A "${legacyserverlogdir}")" ]; then
  82. rm -rf "${legacyserverlogdir}"
  83. fi
  84. fi
  85. # Count total amount of files removed
  86. count=$((${scriptcount} + ${consolecount} + ${gamecount} + ${srcdscount} + ${smcount} + ${ulxcount} + ${darkrpcount} + ${legacycount}))
  87. # Job done
  88. fn_printok "Removed ${count} log files"
  89. fn_scriptlog "Removed ${count} log files"
  90. sleep 1
  91. echo -en "\n"
  92. fi