v-list-cron-job 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #!/bin/bash
  2. # info: list cron job
  3. # options: USER JOB [FORMAT]
  4. #
  5. # The function of obtaining cron job parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. job=$2
  12. format=${3-shell}
  13. # Includes
  14. source $VESTA/func/main.sh
  15. # JSON list function
  16. json_list() {
  17. echo "{"
  18. echo -n ' "'$job'": {
  19. "MIN": "'$MIN'",
  20. "HOUR": "'$HOUR'",
  21. "DAY": "'$DAY'",
  22. "MONTH": "'$MONTH'",
  23. "WDAY": "'$WDAY'",
  24. "CMD": "'$CMD'",
  25. "JOB": "'$JOB'",
  26. "SUSPENDED": "'$SUSPENDED'",
  27. "TIME": "'$TIME'",
  28. "DATE": "'$DATE'"
  29. }'
  30. echo
  31. echo '}'
  32. }
  33. # SHELL list function
  34. shell_list() {
  35. echo "MINUTE: $MIN"
  36. echo "HOUR: $HOUR"
  37. echo "DAY: $DAY"
  38. echo "DAY OF WEEK: $WDAY"
  39. echo "COMMAND: $CMD"
  40. echo "SUSPENDED: $SUSPENDED"
  41. echo "TIME: $TIME"
  42. echo "DATE: $DATE"
  43. }
  44. # PLAIN list function
  45. plain_list() {
  46. echo -e "$MIN\t$HOUR\t$DAY\t$WDAY\t$CMD\t$SUSPENDED\t$TIME\t$DATE"
  47. }
  48. # CSV list function
  49. csv_list() {
  50. echo "MIN,HOUR,DAY,WDAY,CMD,SUSPENDED,TIME,DATE"
  51. echo "$MIN,$HOUR,$DAY,$WDAY,\"$CMD\",$SUSPENDED,$TIME,$DATE'"
  52. }
  53. #----------------------------------------------------------#
  54. # Verifications #
  55. #----------------------------------------------------------#
  56. check_args '2' "$#" 'USER JOB [FORMAT]'
  57. is_format_valid 'user'
  58. is_number_format_valid "$job" "job_id"
  59. is_object_valid 'user' 'USER' "$user"
  60. #----------------------------------------------------------#
  61. # Action #
  62. #----------------------------------------------------------#
  63. # Defining config
  64. conf=$USER_DATA/cron.conf
  65. # Checking job id
  66. cron_line=$(grep "JOB='$job'" $conf)
  67. if [ -z "$cron_line" ]; then
  68. check_result $E_NOTEXIST "cron job $job doesn't exist"
  69. fi
  70. # Parsing cron job
  71. eval $cron_line
  72. # Replacing quoted and backslahed text
  73. CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
  74. # Listing data
  75. case $format in
  76. json) json_list ;;
  77. plain) plain_list ;;
  78. csv) csv_list ;;
  79. shell) shell_list ;;
  80. esac
  81. #----------------------------------------------------------#
  82. # Vesta #
  83. #----------------------------------------------------------#
  84. exit