CRONTAB
Existe uma quantidade surpreendente de tarefas de manutenção que precisam ser feitas para se manter um sistema operacional complexo como o Linux rodando sem problema. A rotação de arquivos de log,a limpeza de arquivos e diretórios temporários,as reconstruções do banco de dados do sistema,os backups e outras tarefas precisam ser feitas de forma rotineira. Claramente,esse tipo de trabalho braçal precisa ser automatizado pelo sistema,liberando os pobres administradores para trabalhos mais interessantes. Felizmente,qualquer tarefa do sistema possa ser feita sem intervenção humana em tempo real pode ser automatizada no Linux,usando o cron e o at,nesse tuto falarei só sobre o cron.
Para configurar um crontab por usuário, utiliza-se o comando “crontab“, junto com um parâmetro, dependendo do que você quiser fazer. Abaixo uma relação:
Comando
Função
crontab -e
Edita o crontab atual do usuário
crontab -l
Exibe o atual conteúdo do crontab do usuário
crontab -r
Remove o crontab do usuário
Se você quiser verificar os arquivos crontab dos usuários, você precisará ser root. O comando crontab coloca os arquivos dos usuários no diretório:
/var/spool/cron/usuario
Onde “usuario” corresponde ao usuário dono do arquivo crontab.
Agora se você quiser editar o crontab global, este fica no arquivo “/etc/crontab“, e só pode ser manipulado pelo root. E agora que já sabemos onde ficam os arquivos de configuração, vamos estudar o formato da linha do crontab, que é quem vai dizer o que executar e quando. Vamos ver um exemplo:
44 3 * 3-11 1-5 root /root/backup geral
44 : minuto
3 : horas
* : os dias do mês que deve ser executado
3-11 : os meses do ano que deve ser executados,nesse exemplo vai de março até novembro como dito anteriormente
1-5 s dias da semana que deve ser executados,0 significa domingo,1 é segunda-feira,etc..
root :qual usuário que vai executar o script
/root/backup: diretório aonde que se localiza o arquivo que vai ser executado
Nesse exemplo,o crontab executará um programa de backup do sistema,passando para ele o parâmetro “geral” como root de segunda-feira a sexta feira,de março a novembro,as 3:44 da manhã.
Também para agendar uma tarefa no Linux temos outro modo chamado “run-parts” que executa o cron num horário específico. Existem 4 diretórios que usamos para colocar nossos scripts para serem executados segundo o “tempo” padrão do diretório.
/etc/cron.hourly – de hora em hora
/etc/cron.daily - todo dia
/etc/cron.weekly – uma vez por semana
/etc/cron.monthly – uma vez por mês
Ao analisar esses diretórios você encontrará já alguns scripts que fazem as atualizações de certos programas por default.
Podemos usar listas.Uma lista é um conjunto de números(ou intervalos)separados por vírgula ex:
“1,2,5,9” “0-4,8-12” valores de passo podem ser usados em conjunto com intervalos.
No exemplo “1,2,5,9” só esses número usados,se tiver um traço como 0-4 quer dizer que vai de 0 até 4.
Vamos a um exemplo:
Queremos que nossa distribuição Linux a cada hora digite automaticamente os comando para atualizar,o primeiro passo é entrar no diretório /etc/cron.hour e criar um arquivo:
root@localhost:~#cd /etc/cron.hourly
root@localhost:/etc/cron.hour#vi atualizacao.sh
O nome do arquivo pode ter qualquer nome,mas recomendo usar .sh para saber que esse arquivo é um script.
No próximo passo vamos adicionar as seguintes linhas no arquivo atualizacao.sh
#!/bin/bash
apt-get -y update
apt-get -y upgrade
A primeira linha diz que o bash está no diretório /bin/bash,todo arquivo shell script começa com essa linha que é fundamental.
Quando criamos um arquivo o Linux não dá permissão para ser executado,então vamos dar permissão de execução.
root@localhost:/etc/cron.hour#chmod 755 atualizacao.sh
Depois desse comando perceberá que o arquivo está verde,no Linux quando um arquivo está verde quer dizer que ele pode ser executado.Vamos agora testar o arquivo
root@localhost:/etc/cron.hour#./atualizacao.sh
Pronto,agora muitas coisas no linux você vai automatizar.
Referências bibliográficas.
Livro certificação Linux LPI nível 1,alta books
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Existe uma quantidade surpreendente de tarefas de manutenção que precisam ser feitas para se manter um sistema operacional complexo como o Linux rodando sem problema. A rotação de arquivos de log,a limpeza de arquivos e diretórios temporários,as reconstruções do banco de dados do sistema,os backups e outras tarefas precisam ser feitas de forma rotineira. Claramente,esse tipo de trabalho braçal precisa ser automatizado pelo sistema,liberando os pobres administradores para trabalhos mais interessantes. Felizmente,qualquer tarefa do sistema possa ser feita sem intervenção humana em tempo real pode ser automatizada no Linux,usando o cron e o at,nesse tuto falarei só sobre o cron.
Para configurar um crontab por usuário, utiliza-se o comando “crontab“, junto com um parâmetro, dependendo do que você quiser fazer. Abaixo uma relação:
Comando
Função
crontab -e
Edita o crontab atual do usuário
crontab -l
Exibe o atual conteúdo do crontab do usuário
crontab -r
Remove o crontab do usuário
Se você quiser verificar os arquivos crontab dos usuários, você precisará ser root. O comando crontab coloca os arquivos dos usuários no diretório:
/var/spool/cron/usuario
Onde “usuario” corresponde ao usuário dono do arquivo crontab.
Agora se você quiser editar o crontab global, este fica no arquivo “/etc/crontab“, e só pode ser manipulado pelo root. E agora que já sabemos onde ficam os arquivos de configuração, vamos estudar o formato da linha do crontab, que é quem vai dizer o que executar e quando. Vamos ver um exemplo:
44 3 * 3-11 1-5 root /root/backup geral
44 : minuto
3 : horas
* : os dias do mês que deve ser executado
3-11 : os meses do ano que deve ser executados,nesse exemplo vai de março até novembro como dito anteriormente
1-5 s dias da semana que deve ser executados,0 significa domingo,1 é segunda-feira,etc..
root :qual usuário que vai executar o script
/root/backup: diretório aonde que se localiza o arquivo que vai ser executado
Nesse exemplo,o crontab executará um programa de backup do sistema,passando para ele o parâmetro “geral” como root de segunda-feira a sexta feira,de março a novembro,as 3:44 da manhã.
Também para agendar uma tarefa no Linux temos outro modo chamado “run-parts” que executa o cron num horário específico. Existem 4 diretórios que usamos para colocar nossos scripts para serem executados segundo o “tempo” padrão do diretório.
/etc/cron.hourly – de hora em hora
/etc/cron.daily - todo dia
/etc/cron.weekly – uma vez por semana
/etc/cron.monthly – uma vez por mês
Ao analisar esses diretórios você encontrará já alguns scripts que fazem as atualizações de certos programas por default.
Podemos usar listas.Uma lista é um conjunto de números(ou intervalos)separados por vírgula ex:
“1,2,5,9” “0-4,8-12” valores de passo podem ser usados em conjunto com intervalos.
No exemplo “1,2,5,9” só esses número usados,se tiver um traço como 0-4 quer dizer que vai de 0 até 4.
Vamos a um exemplo:
Queremos que nossa distribuição Linux a cada hora digite automaticamente os comando para atualizar,o primeiro passo é entrar no diretório /etc/cron.hour e criar um arquivo:
root@localhost:~#cd /etc/cron.hourly
root@localhost:/etc/cron.hour#vi atualizacao.sh
O nome do arquivo pode ter qualquer nome,mas recomendo usar .sh para saber que esse arquivo é um script.
No próximo passo vamos adicionar as seguintes linhas no arquivo atualizacao.sh
#!/bin/bash
apt-get -y update
apt-get -y upgrade
A primeira linha diz que o bash está no diretório /bin/bash,todo arquivo shell script começa com essa linha que é fundamental.
Quando criamos um arquivo o Linux não dá permissão para ser executado,então vamos dar permissão de execução.
root@localhost:/etc/cron.hour#chmod 755 atualizacao.sh
Depois desse comando perceberá que o arquivo está verde,no Linux quando um arquivo está verde quer dizer que ele pode ser executado.Vamos agora testar o arquivo
root@localhost:/etc/cron.hour#./atualizacao.sh
Pronto,agora muitas coisas no linux você vai automatizar.
Referências bibliográficas.
Livro certificação Linux LPI nível 1,alta books
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Comment