fn_details_distro 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. # LGSM fn_details_distro function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="061115"
  6. # Description: Variables providing useful info on the Operating System such as disk and performace info.
  7. # Used for fn_details, fn_debug and fn_email.
  8. ## Distro infomation
  9. # Returns architecture, kernel and distro/os.
  10. arch=$(uname -m)
  11. kernel=$(uname -r)
  12. if [ -n "$(command -v lsb_release)" ]; then
  13. os=$(lsb_release -s -d)
  14. elif [ -f /etc/debian_version ]; then
  15. os="Debian $(cat /etc/debian_version)"
  16. elif [ -f /etc/redhat-release ]; then
  17. os=$(cat /etc/redhat-release)
  18. else
  19. os="$(uname -s) $(uname -r)"
  20. fi
  21. # Glibc version number
  22. # e.g: 1.17
  23. glibcv=$(ldd --version |grep ldd|awk '{print $NF}')
  24. # tmux version
  25. # e.g: tmux 1.6
  26. if [ -z "$(command -v tmux)" ]; then
  27. tmuxv="\e[0;31mNOT INSTALLED!\e[0m"
  28. elif [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -lt "16" ]; then
  29. tmuxv="$(tmux -V) (>= 1.6 required for console log)"
  30. else
  31. tmuxv=$(tmux -V)
  32. fi
  33. ## Performance
  34. # Average server load
  35. load=$(uptime|awk -F 'load average: ' '{ print $2 }')
  36. # Memory
  37. # Older versions of free do not support -h option.
  38. if [ "$(free -h > /dev/null 2>&1; echo $?)" -ne "0" ]; then
  39. option="-m"
  40. else
  41. option="-h"
  42. fi
  43. physmemtotal=$(free ${option} | awk '/Mem:/ {print $2}')
  44. physmemused=$(free ${option} | awk '/Mem:/ {print $3}')
  45. physmemfree=$(free ${option} | awk '/Mem:/ {print $4}')
  46. swaptotal=$(free ${option} | awk '/Swap:/ {print $2}')
  47. swapused=$(free ${option} | awk '/Swap:/ {print $3}')
  48. swapfree=$(free ${option} | awk '/Swap:/ {print $4}')
  49. # Uptime
  50. uptime=$(</proc/uptime)
  51. uptime=${uptime/[. ]*/}
  52. minutes=$(( uptime/60%60 ))
  53. hours=$(( uptime/60/60%24 ))
  54. days=$(( uptime/60/60/24 ))
  55. # Disk usage
  56. # available space on the partition.
  57. filesystem=$(df -hP ${rootdir} | grep -v "Filesystem" | awk '{print $1}')
  58. totalspace=$(df -hP ${rootdir} | grep -v "Filesystem" | awk '{print $2}')
  59. usedspace=$(df -hP ${rootdir} | grep -v "Filesystem" | awk '{print $3}')
  60. availspace=$(df -hP ${rootdir} | grep -v "Filesystem" | awk '{print $4}')
  61. # used space in serverfiles dir.
  62. serverfilesdu=$(du -sh ${serverfiles} | awk '{print $1}')
  63. if [ -z ${serverfilesdu} ]; then
  64. serverfilesdu="0M"
  65. fi
  66. # Backup info
  67. if [ -d "${backupdir}" ]; then
  68. # used space in backups dir.
  69. backupdirdu=$(du -sh ${backupdir} | awk '{print $1}')
  70. if [ -z ${backupdirdu} ]; then
  71. backupdirdu="0M"
  72. fi
  73. # number of backups.
  74. backupcount=$(find "${backupdir}"/*.tar.gz | wc -l)
  75. # most recent backup.
  76. lastbackup=$(ls -t "${backupdir}"/*.tar.gz | head -1)
  77. # date of most recent backup.
  78. lastbackupdate=$(date -r ${lastbackup})
  79. # size of most recent backup.
  80. lastbackupsize=$(du -h "${lastbackup}" | awk '{print $1}')
  81. fi