Baixe o app para aproveitar ainda mais
Prévia do material em texto
Agendamento de Tarefas Administração de Sistemas Professor: Anderson Costa anderson@ifpb.edu.br Introdução Servidores realizam atividades periódicas – Backups – Verificação do desempenho – Análise de segurança – Sistemas de rotação de arquivos de log – Atualização do sistema – Entre outros... Periodicidade – Semanal – Diária – Mensal – Entre outras... No Linux utilizamos dois softwares – Cron e Anacron Cron O Cron é um programa de "agendamento de tarefas“ – Executado como um serviço (daemon) durante a inicialização do sistema Pode-se programar comandos e scripts para serem executados – Periodicamente – Num dia e hora exatos Configuração pode ser – Cron do sistema (global) Controlado pelo root Pode executar qualquer tarefa com qualquer usuário do sistema – Cron por usuário Restrito a comandos acessíveis pelo usuário O Linux faz grande uso do Cron – Praticamente todas as distros trazem Cron instalado Configuração Cron do sistema – Editar o arquivo /etc/crontab Cada linha agenda a execução de um comando ou script O serviço Cron lê este arquivo a cada minuto Campos: – 1: Minuto: 0-59 – 2: Hora: 0-23 – 3: Dia do mês: 1-31 – 4: Mês: 1-12 – 5: Dia da semana: 0-7 (0 e 7 = Domingo) – 6: Usuário – 7: Programa pra execução (script ou comando) # Arquivo de configuração padrão no UBUNTU SHELL=/bin/bash 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root run-parts --report /etc/cron.daily 47 6 * * 7 root run-parts --report /etc/cron.weekly 52 6 1 * * root run-parts --report /etc/cron.monthly Exemplos Execute o comando cmd todos os dias as 4h Execute o comando cmd todos os dias as 4h a cada 20min Execute o comando cmd às 4:10 no 1º dia de cada mês Execute o comando cmd às 10h todas as segundas-feiras Qual a interpretação do comando abaixo? 0 4 * * * asa cmd 0,20,40 4 * * * asa cmd 0-59/20 4 * * * asa cmd OU 10 4 1 * * cmd 0 10 * * 1 cmd 0,30 * 13 * 5 cmd Agendamentos comuns Diretórios para os agendamentos costumeiros – Adicionar script ou programa à pasta correspondente – De hora em hora: /etc/cron.hourly – Diariamente: /etc/cron.daily – Semanalmente: /etc/cron.weekly – Mensalmente: /etc/cron.monthly # Arquivo de configuração padrão no UBUNTU SHELL=/bin/bash 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root run-parts --report /etc/cron.daily 47 6 * * 7 root run-parts --report /etc/cron.weekly 52 6 1 * * root run-parts --report /etc/cron.monthly Cron do usuário Cada usuário pode agendar seus comandos – Não precisa estar logado para executar o comando Utiliza-se o comando crontab Para criar um arquivo de cron de usuário – crontab exemplo – Conteúdo de exemplo – Arquivo é gravado em /var/spool/cron/<usuário> Para mostrar a configuração atual – crontab -l Para remover o arquivo – crontab -r # Arquivo de configuração do usuário */2 * * * * date >> /home/asa/x E se... Quando chegou a hora de executar um comando o sistema estava desligado? – a) O Cron verificará os comandos não executados e os executará prontamente; ou – b) O Cron não fará nada Resposta – O Cron não fará nada! Solução – Anacron Anacron Auxiliar do Cron Guarda a data da última execução do comando – Compara com a data atual e executa comandos que deveriam ter sido executados enquanto desligado – Pode executar comandos em série No caso de vários comandos precisarem ser executados Configuração Padrão – Verifica as datas para os scripts e comandos em: /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly Outros comandos podem ser configurados – Arquivo /etc/anacrontab Agendamento de Tarefas Administração de Sistemas Professor: Anderson Costa anderson@ifpb.edu.br
Compartilhar