Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/expect
- # Restart Services Linux
- # Define as variaveis server, username, and password
- # para logar remotamente
- set remote_server $::env(NOTIFY_HOST_ADDRESS_4)
- set username "vagner"
- set password " "
- # Define a variavel do prompt
- set prompt "(%|#|>|\\$ )"
- set prompt [string trim $prompt]
- # Define a variavel SERVICO com o nome do serviço gerado pelo CMK
- set SERVICO $::env(NOTIFY_SERVICEDESC)
- # Testa a varivel SERVICO para saber com qual
- # serviço do Linux ela se refere
- switch $SERVICO {
- "Systemd Timesyncd Time" {
- set SERVICE "systemd-timesyncd"
- }
- "Postfix status" {
- set SERVICE "postfix"
- }
- "nginx" {
- set SERVICE "nginx"
- }
- default {
- puts "Servico não reconhecido"
- }
- }
- # Inicia uma sessao remota com SSH
- spawn ssh "$username@$remote_server"
- # Aguarda algum prompt de password para enviar a senha
- expect {
- "Password:" {send "$password\r"}
- "password:" {send "$password\r"}
- "Senha:" {send "$password\r"}
- }
- # Aguarda o prompt de comandos
- expect -re "(.*)$prompt"
- # Verifica se o servico SERVICE esta rodando
- # se nao estiver reinicia o servico com comando SUDO
- send "systemctl status $SERVICE\r"
- expect {
- "Active: active" {
- puts "O serviço $SERVICE esta ativo"
- }
- "Active: inactive" {
- puts "O serviço $SERVICE esta inativo"
- send "sudo systemctl restart $SERVICE\r"
- expect "password"
- send "$password\r"
- expect "$ "
- puts "O serviço $SERVICE foi reiniciado"
- }
- }
- # Sai do script
- send "exit\r"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement