Aproveite as vantagens do comando crontab Linux para automatizar várias tarefas rotineiras e repetitivas, simplificando sua vida. Esta ferramenta excelente e fácil de usar, combinada com alguns scripts, pode não só automatizar todos os tipos de tarefas, mas também ajudar a evitar erros humanos simples ou esquecimento.

Aqui você aprenderá o que é crontab, como adicionar tarefas automatizadas e alguns exemplos do mundo real.

O que é o Crontab?

Crontab é um processo daemon executado em segundo plano em quase todas as máquinas Linux e é usado para agendar e executar tarefas automatizadas em intervalos de tempo definidos. Também é frequentemente usado por desenvolvedores de software para executar tarefas demoradas em segundo plano.

Isso pode ser qualquer coisa, incluindo, mas não se limitando a, enviar e-mails em lote, verificar seu feed do Twitter, realizar backups ou simplesmente realizar um lembrete.

Comandos básicos do Crontab

Cada usuário Linux na máquina tem seu próprio arquivo crontab, que contém seus jobs crontab ativos. Aqui estão alguns comandos básicos de terminal que você usará para visualizar e modificar o arquivo crontab:

instagram viewer

  • crontab-l Liste todos os trabalhos do crontab.
  • crontab -e Edite o arquivo crontab.
  • crontab -r Remova todas as entradas do arquivo crontab.

Os comandos acima serão para o usuários atuais arquivo crontab. Se você precisar modificar o arquivo crontab de um usuário diferente, basta usar o -você opção. Por exemplo, você pode editar o jdoe arquivo crontab do usuário com o comando:

Ubuntu Linux: adicionar e remover usuários de grupos de maneira fácil

Quer gerenciar melhor os usuários no Ubuntu Linux? A resposta é criar grupos e, em seguida, usar o recurso de adicionar usuário do Ubuntu.

sudo crontab -ujdoe -e

Formato de trabalhos do Crontab

Cada trabalho crontab consiste em uma linha e é formatado conforme abaixo:

MINUTO HORA DIA MÊS SEMANA COMANDO

A tabela abaixo explica os diferentes elementos do crontab job:

Elemento Ranage Descrição
Minuto 0 - 59 O minuto para executar o trabalho crontab em.
Hora 0 - 23 A hora de execução do crontab job.
Dia 1 - 31 O dia do mês para executar o trabalho crontab em.
Mês 1 - 12 O mês para executar o trabalho crontab em.
Dia da semana 0 - 6 O dia da semana em que executar o crontab job.
Comando Qualquer comando do Linux que você pode executar no terminal.

Você pode usar um asterisco (*) em qualquer um dos campos para denotar um caractere curinga, o que significa que o trabalho do crontab será executado independentemente do período de tempo. Por exemplo, o trabalho crontab abaixo será executado todas as noites exatamente às 3h20:

20 3 * * * /root/backup.sh

Valores Múltiplos

Cada período de tempo também pode incluir vários elementos. Você pode especificar os valores exatos, separando-os com uma vírgula, e o trabalho crontab abaixo será executado a cada hora 20 e 50 minutos após a hora:

20,50 * * * * /path/to/command.sh

No entanto, se você deseja executar o trabalho crontab em intervalos específicos dentro de um período de tempo, você pode usar */PERÍODO, e o trabalho crontab abaixo será executado automaticamente 15 minutos após a hora a cada três horas:

15 * / 3 * * * /path/to/command.sh

Mantendo o trabalho do Crontab em silêncio

Dependendo de tudo, você pode querer eliminar toda a saída dos trabalhos do crontab para que eles não acabem na pasta de correio do sistema. Você pode fazer isso anexando > / dev / null 2> & 1 para qualquer trabalho crontab. Por exemplo:

0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1

Adicionando trabalhos do Crontab

Geralmente, o método mais usado para adicionar ou modificar jobs crontab é o crontab -e comando. Execute este comando no terminal:

crontab -e

Isso abrirá um editor de texto tal como nano com o conteúdo do seu arquivo crontab. Cada trabalho do crontab reside em uma linha e você pode adicionar, modificar e remover linhas conforme desejado. Uma vez feito isso, salve e feche o arquivo pressionando Ctrl + W, seguido pelo Y e Digitar, que ativará imediatamente todos os trabalhos crontab dentro do arquivo.

Atalho para adicionar empregos

Em vez de modificar manualmente o arquivo crontab, há um único comando rápido que você pode executar para adicionar um trabalho. Por exemplo, se você deseja adicionar este trabalho crontab que é executado todos os domingos às 14h:

0 14 * * 0 /path/to/command.sh

Você pode adicionar o trabalho ao seu arquivo crontab com o único comando:

(crontab -l; echo "0 14 * * 0 /path/to/command.sh";) | crontab

O comando acima simplesmente lista todos os trabalhos atualmente em seu arquivo crontab, imprime o novo trabalho e canaliza tudo para crontab substituindo seu conteúdo.

Listando / removendo arquivo Crontab

Você pode listar todos os trabalhos atualmente ativos em seu arquivo crontab com o comando:

crontab -l

Você também pode remover todos os trabalhos crontab e esvaziar o conteúdo do arquivo crontab com o comando:

crontab -r

Exemplo: Tocar sons!

Precisa de um lembrete rápido a cada duas horas enquanto trabalha para que você saiba que o tempo passou? Pegue seu clipe de áudio favorito em quase qualquer formato (.wav, .mp4, qualquer coisa) e se ele for salvo em (por exemplo) /home/myuser/myalert.wav jogue-o automaticamente com o crontab job:

0 * / 2 * * * aplay /home/myuser/myalert.wav

Que tal dar a você uma boa despedida do trabalho da semana com sua música favorita tocando automaticamente às 17h todas as sextas à tarde? Pegue o seu clipe de música favorito e, se for salvo em, digamos /home/myuser/friday_song.mp4 você adicionaria o trabalho crontab:

0 17 * * 5 aplay /home/myuser/friday_song.mp4

Exemplo: arquivos de backup com Rsync

Um dos muitos usos excelentes do crontab é a capacidade de fazer backup automático de seus arquivos em um servidor remoto. Reduza substancialmente o risco de perder dados importantes novamente com este excelente tutorial de rsync.

Exemplo: verifique se os sites estão online

Talvez você queira verificar automaticamente a cada cinco minutos se vários sites estão online ou não e ser notificado por e-mail se algum estiver fora do ar. Aqui está um pequeno script PHP bacana que fará exatamente isso.


php
// Endereço de e-mail para notificação de sites desativados
$ email = '[email protected]';
// Definir URLs para verificar
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Percorrer URLs
$ down = [];
foreach ($ urls as $ url) {
// Verificar URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Enviar e-mail se houver sites inativos
if (contagem ($ down)> 0) {
mail ($ email, "Urgente - Sites desativados!", "Seu bot detectou que os seguintes sites são atualmente inativo:
". implode ("
", $ para baixo));
}
// Sair
sair (0);
/ **
* Verificar URL < br /> * /
função check_url (string $ url): int
{
// Enviar via cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);
$ response = curl_exec ($ ch);
// Obter status e fechar conexão
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}

Simplesmente modifique o endereço de e-mail e os URLs desejados para verificar na parte superior do arquivo e salve em algum lugar como /home/myuser/check_sites.php . Para que este script seja executado a cada cinco minutos e notifique você por e-mail sobre quaisquer sites que estejam fora do ar, adicione o trabalho crontab:

  * / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1  

Automatize sua vida!

Com este artigo você terá compreendido o poder de automação do crontab e como ele pode ser usado para automatizar muitas das tarefas rotineiras e repetitivas em seu vida.

Você aprendeu o que é crontab, sobre o arquivo crontab, como os jobs do crontab são formatados e alguns exemplos do mundo real de como ele pode ser utilizado.

4 Aplicativos de automação do Linux para otimizar suas tarefas e fluxos de trabalho

Quer economizar tempo e evitar tarefas repetitivas? A resposta é automação! Aqui estão alguns aplicativos de automação de desktop Linux úteis para experimentar.

Relacionado Tópicos
  • Programação
  • Linux
Sobre O autor
Matt Dizak (13 artigos Publicado)
Mais de Matt Dizak

Inscreva-se no nosso Boletim informativo

Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books gratuitos e ofertas exclusivas!

Mais uma etapa!!!

Por favor, confirme o seu endereço de e-mail no e-mail que acabamos de enviar para você.

.