You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6 KiB

  1. #!/bin/bash
  2. ignorefile="/tmp/ignore"
  3. restarts(){
  4. services=$(checkrestart "${list}" | awk '/These are the init scripts:/ { seen =1 } seen {print}'|egrep -v "These are the init scripts:|^$"|tr " " ","| awk -F "," '{ print $2 }'|grep -vi "processes")
  5. if [ $(echo $services | grep -ci "restart") -gt 0 ]; then
  6. services=$(checkrestart "${list}" | awk '/These are the init scripts:/ { seen =1 } seen {print}'|egrep -v "These are the init scripts:|^$"|tr "/" ","|tr " " "," | awk '{ print $3 }'|grep -vi "processes")
  7. fi
  8. numservice=$(echo $services | wc -w)
  9. if [ $numservice -gt 0 ]; then
  10. for service in $services; do
  11. logger "Restart service $service"
  12. /etc/init.d/$service restart
  13. if [ $? -ne 0 ]; then
  14. logger "Service $service had a problem on restart, error exit"
  15. exit 1
  16. fi
  17. done
  18. else
  19. logger "No services to restart !"
  20. exit 0
  21. fi
  22. }
  23. ignorelist(){
  24. list=""
  25. for line in $(cat $ignorefile); do
  26. list="$list -i $line"
  27. done
  28. }
  29. checkignorefile(){
  30. if [ ! -f $ignorefile ]; then
  31. logger "No ignorelist, becareful ! I'll exit just to be safe"
  32. exit 1
  33. fi
  34. }
  35. checkbin(){
  36. dpkg -L debian-goodies|grep -q checkrestart
  37. if [ $? -ne 0 ]; then
  38. logger "Failed to find checkrestart, so sad"
  39. exit 1
  40. fi
  41. }
  42. checkroot(){
  43. izroot=$(whoami)
  44. echo $izroot | grep -q "root"
  45. if [ $? -ne 0 ]; then
  46. logger "Failed to be root, so sad"
  47. exit 1
  48. fi
  49. }
  50. main(){
  51. checkroot
  52. checkbin
  53. checkignorefile
  54. ignorelist
  55. restarts
  56. }
  57. main