vagnerfonseeca

restart-services.sh

Sep 9th, 2025
96
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 1.52 KB | Source Code | 1 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"
Add Comment
Please, Sign In to add comment