Guest User

Untitled

a guest
Apr 5th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. set -u
  4.  
  5. declare -r username='transmission'
  6. declare -r password='transmission'
  7. declare -r download_dir='/var/lib/transmission-daemon/downloads'
  8.  
  9. declare -t log='/var/log/transmission-purge.log'
  10.  
  11.  
  12. log()
  13. {
  14. local timestamp="$(/bin/date +'%Y-%m-%dT%H:%M:%S%z')"
  15. local level="$1"
  16. shift 1
  17. printf "%s - %s - %b\n" "$timestamp" "$level" "$@" | \
  18. /usr/bin/tee -a "$log" >&2
  19. }
  20.  
  21. log_info()
  22. {
  23. log 'INFO' "$@"
  24. }
  25.  
  26. log_error()
  27. {
  28. log 'ERROR' "$@"
  29. }
  30.  
  31. die()
  32. {
  33. log 'ERROR' "$@"
  34. exit 1
  35. }
  36.  
  37. log_info '----------------------------------------'
  38.  
  39. trap 'log_info "----------------------------------------"' \
  40. HUP INT TERM EXIT
  41.  
  42. if [ ! -d "$download_dir" ]; then
  43. die "Transmission download directory '$download_dir' not found"
  44. fi
  45.  
  46. log_info "List tasks"
  47.  
  48. output="$(transmission-remote -n "$username":"$password" -l)"
  49. status=$?
  50.  
  51. log_info "Tasks\n$output"
  52.  
  53. if [ $status -ne 0 ]; then
  54. die "Failed to list tasks, status: $status"
  55. fi
  56.  
  57. log_info "Check orphan files"
  58.  
  59. /bin/ls -1 "$download_dir" | \
  60. while IFS='' read -r line || [[ -n "$line" ]]; do
  61. case $output in
  62. *"$line"*) ;;
  63. *) log_info "Orphan: ${download_dir}/${line}" ;;
  64. esac
  65. done
  66.  
  67. log_info "Free Spaces\n$(df -h /)"
Add Comment
Please, Sign In to add comment