Aprenda Linux

Agendando reinicio automático no linux

Esse artigo tem como propósito ensinar a reiniciar o linux automaticamente,  principalmente uma grande quantidade de máquinas, e que levaria um bom tempo se tivesse que conectar em cada uma para reiniciar. No meu caso eu precisava reiniciar 340 máquinas duas vezes por semana. Sem dúvida deve existir mais formas que essa, mas como eu tinha pouco tempo para resolver esse problema, utilizei uma forma simples e fácil para solucionar a treta.

Criei um script com o nome reboot.sh, com o seguinte comando:

vim reboot.sh

E inserir o seguinte conteúdo:

#!/bin/bash

shutdown -r now

Agora basta salvar  e sair com o :wq

Concedendo permissão ao arquivo

Para alterarmos o arquivo precisamos dar permissão de escrita a ele, com o seguinte comando:

chmod 777 reboot.sh

O chmod é utilizado para conceder permissões em arquivos e diretórios. Utilizando o valor 777 concede todos os direitos (read, write, execute) para o usuário, grupo e os outros.

Agendando tarefa no linux

O próximo passo é agendar para executar nosso script duas vezes por semana. Para isso vamos utilizar o cron que é o agendador de tarefas dos sistemas linux.

Basta acessar o crontab com o comando:

vi /etc/crontab

Agora é necessários inserir no arquivo as linhas com os dias que irão rodar nosso script.  Lembrando que o # é utilizado para inserir um comentário.

# m h dom mon dow user  command

#Reinicia na segunda
45 15   * * 1   root   /./reboot.sh
#Reinicia na quinta-feira
12 10   * * 4   root   /./reboot.sh

Uma pequena explicação sobre as linhas acima:

  1. Minuto(m)
  2. Hora(h)
  3. Dia do mês(dom)
  4. Mês(mon)
  5. Dia da semana(dow)
  6. Usuário(user)
  7. Comando(command)

Todos estes campos, sem contar com o 6 e 7, são especificados por números. Veja a tabela abaixo para os valores destes campos:

  1. Minuto 0-59
  2. Hora 0-23
  3. dia do mês 1-31
  4. Mês 0-12
  5. Dia da semana 0-6(onde 0 é domingo) 1 é segunda, e assim vai.

Feito isso já estamos com a tarefa agendada, agora temos que reiniciar o serviço com o comando abaixo:

/etc/init.d/cron restart

Você deve estar se perguntando, como esse cara fez para colocar o script e agenda essa tarefa em 340 máquinas. Eu rodo um programa em shell que automatiza esse tipo de tarefa, fazendo com que replique para todas as máquinas, quando possível posto mais informações sobre o mesmo. Como falei anteriormente é um modo simples e rápido que encontrei para resolver meu problema, caso tenham forma mais simples de resolver, basta postarem no comentários.

Esse dois links é para explicar um pouco mais sobre o crontab e o comando chmod.

https://pt.wikipedia.org/wiki/Chmod

https://pt.wikipedia.org/wiki/Crontab

Deixe uma resposta

O seu endereço de email não será publicado