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.
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