SSH - Tarefas agendadas

Procédure

SSH - Tarefas agendadas

Grande parte da administração do sistema pode ser automatizada através de scripts Perl, ou scripts shell executados em intervalos regulares. Por exemplo, pode ter um script para verificar se o seu disco não está cheio que corre uma vez por hora para o avisar se houver algum problema. O mecanismo mais comum para agendar comandos em sistemas Linux é através do pacote cron.

Em Debian, o pacote cron é parte do sistema base e está a correr por omissão.

O cron é fornecido com a Debian para dois propósitos:

  • Para correr tarefas do sistema numa base diária/semanal/mensal.

  • Para permitir aos utilizadores configurarem as suas próprias tarefas agendadas.


O pacote Cron cria automaticamente os seguintes directórios:

/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly


À exceção do primeiro, que é especial, estes directórios permitem-lhe agendar tarefas para todo o sistema de uma forma simples. Qualquer script colocado dentro deles será executado com a frequência que o seu nome sugere.

Por exemplo, se colocar um script dentro de /etc/cron.daily ele será executado uma vez por dia, todos os dias.

Estes directórios são úteis em alguns casos, mas se precisar de ajustar mais os tempos de execução, isso pode ser feito editando o ficheiro /etc/crontab, que explicaremos a seguir:

A maneira normal que as pessoas usam o cron é através do comando crontab. Isto permite-lhe ver ou editar o seu ficheiro crontab, que é um ficheiro por utilizador que contém entradas que descrevem os comandos a executar e a hora a que devem ser executados.

Para mostrar o seu ficheiro, execute o seguinte comando:

crontab -l


O utilizador root pode ver o ficheiro crontab de qualquer utilizador adicionando -u nome de utilizador, por exemplo :

crontab -u nome de utilizador -l


O formato destes ficheiros é bastante simples de compreender. Cada linha é uma coleção de seis campos separados por espaços.

Os campos são :

  1. O número de minutos após a hora (0 a 59)

  2. A hora no formato de hora militar (24 horas) (0 a 23)

  3. O dia do mês (1 a 31).

  4. Mês (1 a 12).

  5. Dia da semana (0 ou 7).

  6. O comando a executar.


O seu aspeto seria o seguinte:

* * * * * * Comando a ser executado - - - - - - | | | | | | | | +-----> Dia da semana (0-7) | | | +-----------> O mês (1 - 12) | +-----------------> O dia do mês (1 - 31) | +-----------------------> A hora (0 - 23) +-----------------------------> Minutos (0 - 59)

(Cada um dos primeiros cinco campos contém apenas números, mas podem ser deixados como * para indicar que qualquer valor é aceitável).


Agora que já vimos a estrutura, devemos tentar executar alguns exemplos:

Edite o seu ficheiro crontab:

crontab -e


Isto irá executar o seu editor predefinido no seu ficheiro crontab (criando-o se necessário). Quando salvar o arquivo e sair do seu editor, seu crontab será instalado no sistema, a menos que tenha erros.

O editor padrão é o nano

Introduza o seguinte texto:

0 * * * * * /bin/ls > /var/log/ls.log


Quando tiver guardado o ficheiro e saído do seu editor, verá uma mensagem como :

crontab: installing new crontab


Pode verificar se o ficheiro contém o que espera com:

crontab -l


Aqui dissemos ao Cron para executar o comando /bin/ls e redirecionar a saída do comando para o ficheiro /var/log/ls.log sempre que o minuto for igual a 0, ou seja, executará o comando à hora, todas as horas.

Outros exemplos:

Executar o comando "night" dez minutos após a meia-noite, todos os dias

10 0 * * * * /bin/night


Executar o comando "Monday" todas as segundas-feiras às 2h

0 2 * * * 1 /usr/local/bin/lundi


Se quiser executar algo com muita regularidade, pode utilizar uma sintaxe diferente: em vez de utilizar apenas números, pode utilizar intervalos ou conjuntos.

Uma série de números indica que cada ponto desse intervalo estará disponível, por isso, se usar a seguinte linha, estará a executar um comando às 1 horas, 2 horas, 3 horas e 4 horas:

* 1-4 * * * * /bin/command


Um conjunto é semelhante, consistindo num conjunto de números separados por vírgulas, cada item da lista será correspondido. O exemplo anterior tem o seguinte aspeto utilizando sets:

1,2,3,4 * * * * /bin/command

Avaliar este artigo :

5/5 | 2 opinião

Este artigo foi útil para si ?

Article utileSim

Article non utileNão

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artigos semelhantes

2mn leitura

Como configurar a firewall num servidor VPS dedicado?

1mn leitura

Como faço para me conectar como root em um servidor VPS dedicado com Putty?

0mn leitura

Comandos SSH Linux / Debian

0mn leitura

SSH - Comando Apt-get: Instalando e desinstalando pacotes


Fazer uma pergunta à equipa do LWS e à sua comunidade