Advertisement
vagnerfonseeca

restart-services.sh

Mar 27th, 2024
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #!/usr/bin/expect
  2. # Restart Services Linux
  3. # Define as variaveis server, username, and password
  4. # para logar remotamente
  5. set remote_server $::env(NOTIFY_HOST_ADDRESS_4)
  6. set username "vagner"
  7. set password " "
  8. # Define a variavel do prompt
  9. set prompt "(%|#|>|\\$ )"
  10. set prompt [string trim $prompt]
  11. # Define a variavel SERVICO com o nome do serviço gerado pelo CMK
  12. set SERVICO $::env(NOTIFY_SERVICEDESC)
  13. # Testa a varivel SERVICO para saber com qual
  14. # serviço do Linux ela se refere
  15. switch $SERVICO {
  16. "Systemd Timesyncd Time" {
  17. set SERVICE "systemd-timesyncd"
  18. }
  19. "Postfix status" {
  20. set SERVICE "postfix"
  21. }
  22. "nginx" {
  23. set SERVICE "nginx"
  24. }
  25. default {
  26. puts "Servico não reconhecido"
  27. }
  28. }
  29. # Inicia uma sessao remota com SSH
  30. spawn ssh "$username@$remote_server"
  31. # Aguarda algum prompt de password para enviar a senha
  32. expect {
  33. "Password:" {send "$password\r"}
  34. "password:" {send "$password\r"}
  35. "Senha:" {send "$password\r"}
  36. }
  37. # Aguarda o prompt de comandos
  38. expect -re "(.*)$prompt"
  39. # Verifica se o servico SERVICE esta rodando
  40. # se nao estiver reinicia o servico com comando SUDO
  41. send "systemctl status $SERVICE\r"
  42. expect {
  43. "Active: active" {
  44. puts "O serviço $SERVICE esta ativo"
  45. }
  46. "Active: inactive" {
  47. puts "O serviço $SERVICE esta inativo"
  48. send "sudo systemctl restart $SERVICE\r"
  49. expect "password"
  50. send "$password\r"
  51. expect "$ "
  52. puts "O serviço $SERVICE foi reiniciado"
  53. }
  54. }
  55. # Sai do script
  56. send "exit\r"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement