Manual do Crontab – Agendamento de Tarefas no Linux

Realizar as mesmas tarefas repetidamente, seja diariamente, semanalmente ou mensalmente, é uma tarefa que, com o tempo, cansa e degenera, dependendo da sua complexidade, em que a deixamos de lado. A solução para esse problema é automatizá-lo o máximo possível. Assim como Windows nos permite automatizar certas tarefas, Linux também nos oferece esta opção através do Crontab, mas não exclusivamente.

Se queremos automatizar o funcionamento do Linux, seja para fazer uma cópia de segurança, para gerar relatórios, para modificar a configuração ou para qualquer outra coisa, a solução é usar o Crontab em combinação com o Cron, pois, ao contrário do Windows, precisamos de dois mínimo de aplicações.

Manual do Crontab

O que é Crontab?

O Crontab é um arquivo de texto onde são criadas automações com base em uma série de parâmetros, um arquivo de texto que é lido por Cron . Ambos os aplicativos estão disponíveis nativamente na maioria das distribuições Linux mais comuns, portanto não é necessário instalar nenhum repositório em nosso computador para poder usá-los.

Crontab nos oferece uma série de scripts, um por linha, que nos permitem personalizar o tempo exato em que queremos executar uma ou várias tarefas e suas repetições ao longo do tempo. Na verdade, seu nome deriva da palavra grega Cronos , que significa tempo. Cada script contém informações sobre a data exata em que deve ser executado, data essa indicada por uma série de números. Por exemplo, um botão. O script a seguir executará o nfsfind todos os domingos às 5h30 da manhã

30 5 * * 0 /usr/lib/fs/nfs/nfsfind

Os dois primeiros números representam a hora em que o comando será executado, sendo o primeiro número o minuto e o segundo as horas. O formato de hora utilizado pelo Crontab é de 24 horas, portanto, se quisermos realizar a tarefa às 5 da tarde, este seria o número 17. Os asteriscos representam todos os valores, enquanto o número 0 corresponde aos domingos.

Não confunda Cron com Crontab

Enquanto o Crontab nos permite realizar as tarefas do nosso sistema automações , estes são executados, embora não exclusivamente, com o aplicativo Cron, um aplicativo que é executado em segundo plano e que executa todas as tarefas que configuramos anteriormente no Crontab. Esta aplicação utiliza a hora do nosso sistema para as realizar, pelo que é importante, se utilizarmos uma máquina virtual, que tanto a hora da máquina convidada como a do nosso computador sejam sempre as mesmas, pois, caso contrário, a hora programada não será correto.

Cron lê o conteúdo do arquivo Crontab a cada minuto, então podemos editá-lo a qualquer momento para realizar tarefas que queremos realizar na mesma sessão, sem ter que forçar o aplicativo a ler seu conteúdo novamente para encontrar novos scripts para executar.

Nem todos os usuários têm a capacidade de criar arquivos Crontab para automatizar tarefas do sistema. O administrador do sistema tem a possibilidade de permitir ou negar esta opção através do arquivo cron.allow ou cron.den respectivamente, arquivos encontrados em /etc/cron.do /etc/ dependendo da versão da distribuição Linux que possuímos. instalado em nosso computador.

Como automatizar tarefas no Linux

Como mencionamos acima, os scripts do Crontab começam com a data em que queremos que sejam executados, seguido do comando. A sintaxe do Crontab é a seguinte.

Gerenciamento de Cronograma

minuto hora día-del-mes mes día-de-la-semana ruta-comandos

  • Minuto, isso pode ser de 0 a 59
  • Tempo, como mencionamos, o Crontab usa o formato de 24 horas, então o intervalo de números é de 0 a 23.
  • Dia do mês, não há muito mistério, neste parâmetro, pois vai de 1 a 31.
  • Mês, de 1 a 12
    • Janeiro 1
    • Fevereiro de 2
    • Março de 3
    • Abril de 4
    • Maio de 5
    • junho de 6
    • Julho de 7
    • Agosto de 8
    • Setembro de 9
    • Outubro de 10
    • Novembro de 11
    • 12 dezembro.
  • Dia da semana, de 0 a 6, sendo domingo o número 0 embora algumas versões do Crontab também permitam o uso do número 7. Desta forma, o código para os dias da semana é
    • 0 domingo
    • 1 segunda-feira
    • 2 terça-feira
    • 3 quarta-feira
    • 4 quinta-feira
    • Sexta-feira sexta-feira
    • 6 sábado

Mas, além disso, também podemos usar o asterisco (*) para especificar todos os valores possíveis de uma variável. Se quisermos estabelecer vários valores, podemos fazê-lo através da vírgula (,) ou um intervalo de valores separando-os com um hífen (-). Também podemos definir diferentes etapas com “/”.

Se ainda não estiver muito claro, mostramos os códigos de tempo que podemos usar para executar tarefas periodicamente, dependendo de sua periodicidade

  • 0 * * * * Usando o código de tempo, o script será executado a cada hora.
  • 0 0 * * * Todos os dias o script será executado apenas uma vez
  • 0 0 * * 0 O script é executado uma vez por semana
  • 0 0 1 * * Será executado uma vez por mês
  • 0 0 1 1 * O script será executado uma vez por ano

Uma vez esclarecido como funciona o agendamento de tarefas no Crontab, a primeira coisa que faremos é criar o arquivo onde criaremos todos os processos que queremos automatizar usando o seguinte comando

crontab nombre-archivo

Se não queremos criar um novo, ou já o criamos e queremos editá-lo, usamos este comando

crontab -e

Se quisermos excluir o arquivo Crontab criado

crontab -d

Com o seguinte comando, podemos listar todas as tarefas incluídas no arquivo Crontab

crontab -d

Os administradores do sistema podem limitar o uso de automações do sistema editando os arquivos cron.allow ou cron.den, arquivos encontrados em /etc/cron.d/ ou /etc/ se não tivermos modificado sua localização anteriormente.

automatizar tarefas

Para editar o arquivo Crontab que criamos, usaremos o editor de texto incluído em todas as distribuições Linux, embora também possamos editá-lo diretamente do Crontab adicionando a variável -e.

nano nombrearchivo

Apresentamos o código numérico acompanhado de asteriscos e o script que queremos executar. Em seguida, precisamos dar permissões ao Cron para executá-lo, caso contrário, ele não saberá de sua existência e nunca poderá executá-lo. Para isso, usaremos o comando

chmod ugo+x nombrearchivo

Inicialmente, usar o Crontab para automatizar tarefas não parece nada fácil e lembra a necessidade (quase comum) do Linux de recorrer à linha de comando para praticamente tudo, limitando assim mais usuários a adotarem o Linux como sistema operacional no dia-a-dia. hoje. .

O agendador de tarefas do Windows utiliza uma interface gráfica que não é muito fácil de usar sem o conhecimento necessário, porém, é muito mais intuitiva que a oferecida pelo Linux através da linha de comando.

Exemplo de trabalho Crontab e Cron

A primeira coisa que devemos fazer para automatizar tarefas no Linux é criar o arquivo onde vamos incluir todos os comandos que queremos que sejam executados no computador no momento da configuração. Neste exemplo vamos criar o arquivo “teste” que será responsável por deletar todos os arquivos e pastas vazias encontrados no diretório tmp. Para isso, vamos inserir o seguinte comando.

crontab prueba

Em seguida, devemos inserir o comando (ou comandos separando-os com ponto e vírgula “;” sem as aspas). Neste exemplo, vamos usar o Crontab para deletar os arquivos da pasta tmp.

find /tmp -type f -empty -delete

Em seguida, editamos o arquivo para adicionar o agendamento, ou seja, quando queremos que as tarefas que inserimos no arquivo sejam executadas.

crontab -e

Para que seja executado todos os dias às 10 da manhã, devemos adicionar 0 10 * * * antes do script, deixando a linha da seguinte maneira

0 10 * * * find /tmp -type f -empty -delete

Se quisermos que seja executado em outro horário, basta modificar o número 10 para a hora (em formato de 24 horas) em que queremos que seja executado. Também podemos usar o códigos de tempo que mostramos na seção Gerenciamento de programação para configurá-lo. Por fim, utilizamos o seguinte comando para que o Cron possa executar o arquivo de automações que criamos.

[code]chmod ugo+x prueba

Alternativas ao Cron

Como mencionamos nas seções anteriores, o Cron se encarrega de executar os comandos que inserimos anteriormente no Crontab. O Cron é uma ferramenta perfeita para equipes que trabalham 24 horas por dia, embora também possamos adaptá-lo ao nosso horário de trabalho, mesmo que isso tire recursos da equipe durante a execução das tarefas. Se estamos procurando opções mais simples para o Cron, mostramos algumas das melhores alternativas.

anacrônico

Anacron nos permite agendar a execução automatizada de tarefas em um dia, semana ou mês, a qualquer momento. Se o computador estiver desligado, na próxima vez que iniciarmos o computador, a tarefa que inserimos anteriormente no Crontab será executada. Com o Cron, se o computador for desligado na data especificada, a tarefa não será executada quando ligarmos o computador. O Anacron está disponível na maioria das distribuições Linux e podemos instalá-lo no computador através do seguinte comando.

sudo apt install anacron

Companheira

Cronie nos oferece uma experiência muito mais completa que Cron, e um pequeno conjunto de aplicativos (entre os quais Anacron está incluído) e com os quais podemos programar fluxos de trabalho de maneira muito rápida e fácil através do Crontab. Ao contrário do Anacron, para instalar o Cronie, ele não está disponível nos repositórios do Linux, por isso devemos visitar sua página da web em GitHub para baixá-lo ou use o seguinte comando.

wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz