Observe a entrada a seguir. 30 16 1 7-11 * /home/oracle/sql...
Observe a entrada a seguir.
30 16 1 7-11 * /home/oracle/sqldump.sh
O agendamento de tarefas é um recurso de administração de sistemas operacionais que permite a programação da execução de um comando/programa para um determinado dia/mês/ano/hora. Nos sistemas operacionais Linux, as tarefas agendadas são definidas em arquivos como o /etc/crontab. Ao incluir a entrada ilustrada acima no arquivo de agendamento de tarefas, com que frequência o script sqldump.sh será executado?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a E - Às 16h30 do primeiro dia dos meses de julho a novembro.
Vamos analisar a questão de agendamento de tarefas no Linux, que utiliza o arquivo /etc/crontab
ou os crontabs de usuários específicos para definir quando comandos ou scripts são executados. Cada linha de um arquivo crontab é composta por cinco campos de tempo, seguidos do comando a ser executado. Os campos de tempo são: minuto, hora, dia do mês, mês e dia da semana. Após esses campos, vem o comando ou script que será executado.
No exemplo de linha de cron fornecida: 30 16 1 7-11 * /home/oracle/sqldump.sh
, temos:
- Minuto: 30 - A tarefa é executada no minuto 30.
- Hora: 16 - A tarefa é executada às 16 horas.
- Dia do mês: 1 - A tarefa é executada no primeiro dia do mês.
- Mês: 7-11 - A tarefa é executada de julho a novembro.
- Dia da semana: * - A tarefa é executada em qualquer dia da semana.
Portanto, o script sqldump.sh
será executado às 16h30 do primeiro dia dos meses de julho a novembro, o que justifica a alternativa E como correta.
Agora, vamos analisar por que as outras alternativas estão incorretas:
A - Nos dias 30 e 16, de julho a novembro, uma vez ao dia. Esta alternativa está incorreta porque a especificação "1" no campo do dia do mês significa apenas o primeiro dia do mês, não o 16 ou o 30.
B - A cada 30 minutos, no dia 16 de janeiro, entre 07 e 11 horas. Esta alternativa está incorreta porque o minuto especificado é 30, o que significa exatamente no minuto 30, e o mês é de julho a novembro, não janeiro.
C - De hora em hora, entre os dias 07 e 11, a partir das 16h30. Esta alternativa está incorreta porque não há especificação para execução de hora em hora; o horário é fixo em 16h30, e o dia do mês especificado é 1, não entre 7 e 11.
D - No dia 30 dos meses de julho a novembro às 16h01. Esta opção está errada porque o dia do mês é 1, não 30, e o minuto é 30, não 01.
Entender a estrutura e os campos do cron é essencial para identificar corretamente a frequência de execução dos comandos agendados. Espero que isso tenha ajudado a esclarecer a questão!
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Resposta correta Letra E
sSintaxe do Comando mm hh dd MM ss script
mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-7)
script = comando a ser executado.
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado.
O número 7 também refere-se ao domingo.
No caso de dia da semana funciona também as três primeiras letras
(em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se
importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo
é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a
lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será
considerado comentário e não será interpretado pelo cron
Sintaxe do crontab:
minuto | hora | dia do mês | mês | dia da semana
[0-59] | [0-23] | [1-31] | [1-12] | [0-7] *sendo que 0 e 7 = domingo
Apenas corrigindo a colega:
de acordo com o livro "Manual Completo do Linux - Guia do Administrador - página 107" o campo dia da semana é composto pelo intervalo 0 a 6 (sendo que 0= domingo).
E- Às 16h30 do primeiro dia dos meses de julho a novembro.
30 (min 0 a 59) 16(hora de 0 a 23) 1(dia do mês 1 a 31) 7-11(entre o mês de julho a novembro ,mês 0 -11) * dia da semana 0 - 6)
30 16 1 7-11 * /home/oracle/sqldump.sh
Gabarito E Às 16h30 do primeiro dia dos meses de julho a novembro.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo