Aumente a sua produtividade linux / unix: como usar crontab
Além de jogos de vídeo uma das grandes vantagens da utilização de computadores é que eles parecem não me importo de fazer tarefas chatas e repetitivas que preferiria não fazer. Para tarefas monótonas como backups diários de corrida estamos melhor agendá-las para executar em um determinado momento todos os dias, e fazer coisas mais interessantes com o nosso tempo. Linux e UNIX geralmente vêm com o utilitário “crontab” por padrão. Este comando muito útil permite agendar tarefas para serem executadas em um tempo e repetição especificado como configurado. Uma tarefa agendada usando “crontab” é chamado de “cron”.
O comando crontab permite instruir o servidor para executar um script em um minuto específico do dia especificado do mês particular. Para ver o que tarefas agendadas são configurados para rodar em sua máquina, execute o seguinte comando:
# crontab-l
Video: Unix: CRONTAB part-1
Se a sua máquina tem algumas tarefas agendadas configuradas ele irá mostrar algo como o seguinte:
0 6 * * * /opt/scripts/backup_script.sh
A configuração crontab acima mostra um trabalho cron que executa o shell script de todos os dias “backup_script” às 6 da manhã. O * significa para ser executado em cada instância do valor no campo. Então, um asterisco no dia, mês e dia de campos semana no exemplo acima significa que o script deve ser executado todos os dias do mês, todos os meses do ano, e todos os dias da semana. O primeiro e segundo campos dizer crontab para executar o script a zero minutos e seis horas, que é 06:00. Assim, esta configuração cron iria ler algo como isto, “Executar o /opt/scripts/backup_script.sh script em zero minutos, 06:00, todos os dias, a cada mês, e todos os dias da semana.” Abaixo está a “anatomia ”de uma configuração crontab explicou.
0 6 * * * /opt/scripts/backup_script.sh
| | | | |
| | | | | ________________ dia da semana (domingo = 0)
| | | | __________________ mês do ano
| | | ____________________ dia do mês
| | ______________________ hora do dia
| ________________________ minuto de hora
Video: Unix: CRONTAB part-2
Para agendar novas tarefas agendadas ou para editar as antigas execute o seguinte comando:
# crontab -e
Isso fará com que um editor com o qual você pode adicionar, editar ou excluir “tarefas agendadas”. Para agendar uma tarefa para ser executada em 3:45 cada entrada Segunda Adicionar como este:
45 15 * * 1 /opt/scripts/script.sh
Você também pode usar uma vírgula para adicionar várias entradas em um campo. Isso é útil se você quiser executar um script três vezes por dia, com um intervalo de oito horas. Certifique-se de não deixar espaço entre as entradas em um único campo, no entanto. Sua entrada “cron” ficaria assim:
0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh
No exemplo acima, o script “db_backup_script.sh” é executado em 01:00, 09:00 e 17:00 todos os dias nos meses de fevereiro e novembro. Há um monte de coisas legais que você pode fazer com tarefas agendadas. O mesmo funciona para o dia, mês e dia da semana. Uma vez que você pegar o jeito desta tente o seguinte. Crontab não só compreender números, ele também pode operar em algumas palavras inglesas básicas:
explicação corda
- ----
@reboot Executar uma vez, a próxima vez que o sistema for reinicializado
@yearly Executar uma vez por ano, no início do ano
@annually mesmo que @yearly, executar uma vez por ano
@monthly Executar uma vez por mês, no início do mês
@weekly Executar uma vez por semana, no início da semana
@daily Executar uma vez por dia, à meia-noite
@midnight mesmo que @daily, executado à meia-noite
@hourly Executar uma vez uma hora, no início da hora
Assim, por exemplo, se você quiser executar um script à meia-noite, todas as noites, é isso que a configuração do crontab seria algo como:
@midnight /opt/scripts/script.sh
Video: FreeBSD - Crontab
Usando “@midnight” em vez de “0 0 * * *” irá funcionar o mesmo e executar o script solicitado à meia-noite, todas as noites, enquanto sendo muito mais legível do que o seu homólogo numérica. Você também pode fazer o uso de hífens para declarar um intervalo. No comando abaixo “script.sh” será executado no início de cada hora uma horas - seis horas:
0 1-6 * * * /opt/scripts/script.sh
Há muitas coisas mais legais que você pode fazer com o cron. Cada sysasmin jura por ele, é muito fácil de usar uma vez que você pegar o jeito nele, e muito poderoso. Usar essa ferramenta de forma inteligente, como o agendamento de uma tarefa de forma errada, por vezes, pode fazer um monte de danos. Lendo a página “man” do crontab seria altamente recomendado.