v-list-web-domain-errorlog 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # info: list web domain error log
  3. # options: USER DOMAIN [LINES] [FORMAT]
  4. #
  5. # The function of obtaining raw error web domain logs.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. domain=$2
  12. ttl=${3-70}
  13. format=${4-shell}
  14. # Includes
  15. source $VESTA/func/main.sh
  16. source $VESTA/conf/vesta.conf
  17. # JSON list function
  18. json_list() {
  19. i=1
  20. objects=$(echo "$lines" |wc -l)
  21. echo '['
  22. for str in $lines; do
  23. str=$(echo "$str" |sed -e 's/"/\\"/g')
  24. if [ "$i" -lt "$objects" ]; then
  25. echo -e "\t\"$str\","
  26. else
  27. echo -e "\t\"$str\""
  28. fi
  29. (( ++i))
  30. done
  31. echo "]"
  32. }
  33. # SHELL list function
  34. shell_list() {
  35. echo "$lines"
  36. }
  37. # PLAIN list function
  38. plain_list() {
  39. echo "$lines"
  40. }
  41. # CSV list function
  42. csv_list() {
  43. echo "LOG"
  44. echo "$lines"
  45. }
  46. #----------------------------------------------------------#
  47. # Verifications #
  48. #----------------------------------------------------------#
  49. check_args '2' "$#" 'USER DOMAIN [LINES] [FORMAT]'
  50. is_format_valid 'user' 'domain' 'ttl'
  51. is_object_valid 'user' 'USER' "$user"
  52. is_object_valid 'web' 'DOMAIN' "$domain"
  53. #----------------------------------------------------------#
  54. # Action #
  55. #----------------------------------------------------------#
  56. # Check number of output lines
  57. if [ "$ttl" -gt '3000' ]; then
  58. read_cmd="cat"
  59. else
  60. read_cmd="tail -n $ttl"
  61. fi
  62. lines=$($read_cmd /var/log/$WEB_SYSTEM/domains/$domain.error.log)
  63. IFS=$'\n'
  64. # Listing data
  65. case $format in
  66. json) json_list ;;
  67. plain) plain_list ;;
  68. csv) csv_list ;;
  69. shell) shell_list ;;
  70. esac
  71. #----------------------------------------------------------#
  72. # Vesta #
  73. #----------------------------------------------------------#
  74. exit