[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"$fB1Qpahz26dk4ugptW719hN4fXiCIsNMDZFt9j6DK0A8":3,"content-/pt/cron_tab/overview":4},1791054266211,{"id":5,"title":6,"body":7,"description":360,"extension":361,"meta":362,"navigation":364,"path":365,"seo":366,"stem":367,"__hash__":368},"content/pt/cron_tab/overview.md","Um guia completo para o agendamento automático de tarefas com o Crontab",{"type":8,"value":9,"toc":344},"minimark",[10,340],[11,12,13,21,25,30,33,37,53,63,73,82,86,121,124,159,170,174,181,194,198,201,228,232,259,263,266,292,296,323,327],"markdown-layout",{},[14,15,17],"h1",{"id":16},"",[18,19],"binding",{"value":20},"$doc.title",[22,23,24],"p",{},"No domínio da administração de sistemas e da automação, o agendamento de tarefas baseado no tempo desempenha um papel crucial. Entre a miríade de ferramentas disponíveis para este fim, destaca-se um clássico: o Cron. O Cron é um agendador de tarefas baseado no tempo em sistemas operativos do tipo Unix. Neste artigo, vamos analisar o que é o Cron, como funciona, quando utilizá-lo, dar exemplos de uso, discutir as suas desvantagens e revelar armadilhas comuns.",[26,27,29],"h2",{"id":28},"o-que-é-o-cron","O que é o Cron?",[22,31,32],{},"O Cron é um daemon — um processo em segundo plano — que funciona continuamente, executando comandos ou scripts agendados em momentos específicos de acordo com um plano predefinido. Funciona com base em ficheiros de configuração denominados \"crontabs\", que definem o agendamento e os comandos a executar. Estes crontabs estão associados a utilizadores individuais e a tarefas de todo o sistema.",[26,34,36],{"id":35},"como-funciona-o-cron","Como funciona o Cron?",[22,38,39,40,44,45,48,49,52],{},"Na sua essência, o Cron utiliza uma tabela chamada \"tabela cron\" ou \"crontab\" para determinar quando executar os comandos. Cada utilizador pode ter o seu próprio crontab, armazenado no diretório ",[41,42,43],"code",{},"/var/spool/cron"," ou, para tarefas de todo o sistema, em ",[41,46,47],{},"/etc/crontab",". Além disso, as entradas no diretório ",[41,50,51],{},"/etc/cron.d"," permitem configurações de todo o sistema.",[54,55,57,58,60,61],"h3",{"id":56},"diferença-entre-varspoolcron-e-etccrond","Diferença entre ",[41,59,43],{}," e ",[41,62,51],{},[22,64,65,66,68,69,72],{},"Os crontabs dos utilizadores individuais residem em ",[41,67,43],{},", onde o ",[41,70,71],{},"crontab -e"," permite aos utilizadores editar os respetivos ficheiros.",[22,74,75,76,78,79,81],{},"O ",[41,77,51],{}," serve como um diretório onde são analisados ficheiros crontab modulares. A sintaxe difere ligeiramente para os ficheiros deste diretório: as entradas cron incluem um campo adicional que especifica o utilizador que executa as tarefas cron, semelhante à configuração no ficheiro ",[41,80,47],{}," de todo o sistema.",[26,83,85],{"id":84},"a-sintaxe-do-cron","A sintaxe do Cron",[87,88,92],"pre",{"className":89,"code":90,"language":91,"meta":16,"style":16},"language-bash shiki shiki-themes github-light github-dark","0 */6 * * Mon-Fri /home/user/somejob.sh\n","bash",[41,93,94],{"__ignoreMap":16},[95,96,99,103,107,111,113,115,118],"span",{"class":97,"line":98},"line",1,[95,100,102],{"class":101},"sScJk","0",[95,104,106],{"class":105},"sj4cs"," *",[95,108,110],{"class":109},"sZZnC","/6",[95,112,106],{"class":105},[95,114,106],{"class":105},[95,116,117],{"class":109}," Mon-Fri",[95,119,120],{"class":109}," /home/user/somejob.sh\n",[22,122,123],{},"Cada linha de um crontab representa uma única tarefa e é composta por seis campos:",[125,126,127,134,139,144,149,154],"ol",{},[128,129,130],"li",{},[131,132,133],"strong",{},"Minuto (0-59)",[128,135,136],{},[131,137,138],{},"Hora (0-23)",[128,140,141],{},[131,142,143],{},"Dia do mês (1-31)",[128,145,146],{},[131,147,148],{},"Mês (1-12)",[128,150,151],{},[131,152,153],{},"Dia da semana (0-7, onde 0 e 7 representam domingo)",[128,155,156],{},[131,157,158],{},"Comando a executar",[160,161,162],"blockquote",{},[22,163,164,165],{},"Utilize esta ferramenta para validar a sua sintaxe cron ",[166,167,169],"a",{"href":168},"/pt/crontab","Ferramenta Crontab",[26,171,173],{"id":172},"listar-as-tarefas-cron-do-utilizador-ativo","Listar as tarefas cron do utilizador ativo",[22,175,176,177,180],{},"Para listar todas as tarefas cron do utilizador ativo, execute o comando ",[41,178,179],{},"crontab -l"," com a sessão iniciada na conta. Isto apresenta o conteúdo do ficheiro cron do utilizador, incluindo as informações introdutórias e quaisquer entradas de tarefas cron. Se o utilizador x não tiver um ficheiro crontab, o Ubuntu apresenta a mensagem \"no crontab for x\".",[87,182,184],{"className":89,"code":183,"language":91,"meta":16,"style":16},"crontab -l\n",[41,185,186],{"__ignoreMap":16},[95,187,188,191],{"class":97,"line":98},[95,189,190],{"class":101},"crontab",[95,192,193],{"class":105}," -l\n",[26,195,197],{"id":196},"quando-usar-o-cron","Quando usar o Cron?",[22,199,200],{},"O Cron é indispensável em cenários onde tarefas repetitivas precisam de automação. Os casos de uso comuns incluem:",[202,203,204,210,216,222],"ul",{},[128,205,206,209],{},[131,207,208],{},"Manutenção do sistema",": Atualizações regulares do sistema, rotação de registos e cópias de segurança.",[128,211,212,215],{},[131,213,214],{},"Tarefas agendadas",": Manutenção de bases de dados, limpeza de ficheiros e geração de relatórios.",[128,217,218,221],{},[131,219,220],{},"Verificações periódicas",": Monitorização da utilização do disco, conetividade de rede e disponibilidade de serviços.",[128,223,224,227],{},[131,225,226],{},"Execução de scripts",": Execução de scripts personalizados para processamento de dados, notificações por e-mail, etc.",[26,229,231],{"id":230},"exemplos-de-uso","Exemplos de uso:",[125,233,234,243,251],{},[128,235,236,239,240],{},[131,237,238],{},"Cópia de segurança diária",": ",[41,241,242],{},"0 3 * * * /usr/bin/rsync -avz /important/data /backup",[128,244,245,239,248],{},[131,246,247],{},"Manutenção semanal",[41,249,250],{},"0 2 * * 0 /usr/sbin/logrotate /etc/logrotate.conf",[128,252,253,239,256],{},[131,254,255],{},"Geração mensal de relatórios",[41,257,258],{},"0 0 1 * * /usr/local/bin/generate_report.sh",[26,260,262],{"id":261},"desvantagens-do-uso-do-cron","Desvantagens do uso do Cron:",[22,264,265],{},"Embora o Cron seja uma ferramenta robusta, apresenta algumas limitações e desvantagens:",[125,267,268,274,280,286],{},[128,269,270,273],{},[131,271,272],{},"Resolução limitada",": O Cron tem uma resolução mínima de um minuto, o que o torna inadequado para tarefas que exigem maior precisão.",[128,275,276,279],{},[131,277,278],{},"Agendamento complexo",": Agendamentos avançados, como \"a cada duas terças-feiras\", podem ser difíceis de expressar no Cron.",[128,281,282,285],{},[131,283,284],{},"Pressupostos de ambiente",": As tarefas cron nem sempre herdam o ambiente completo de um utilizador, o que pode causar problemas com caminhos, variáveis e permissões.",[128,287,288,291],{},[131,289,290],{},"Registos",": O registo do Cron pode ser rudimentar, dificultando a resolução de problemas.",[26,293,295],{"id":294},"armadilhas-comuns","Armadilhas comuns:",[125,297,298,304,317],{},[128,299,300,303],{},[131,301,302],{},"Problemas de caminho",": Utilize sempre caminhos absolutos para comandos e scripts chamados pelo Cron para evitar problemas relacionados com caminhos.",[128,305,306,309,310,312,313,316],{},[131,307,308],{},"Execução de shell",": Especifique a shell explicitamente se o seu comando necessitar de funcionalidades de shell (",[41,311,91],{},", ",[41,314,315],{},"sh",", etc.).",[128,318,319,322],{},[131,320,321],{},"Variáveis de ambiente",": Defina variáveis de ambiente no crontab, se necessário, uma vez que o ambiente do Cron pode diferir de uma shell interativa.",[26,324,326],{"id":325},"ligações-rápidas","Ligações rápidas",[125,328,329,333],{},[128,330,331],{},[166,332,169],{"href":168},[128,334,335],{},[166,336,339],{"href":337,"target":338},"https://man7.org/linux/man-pages/man5/crontab.5.html","_blank","Documentação do Crontab",[341,342,343],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":16,"searchDepth":345,"depth":345,"links":346},2,[347,348,353,354,355,356,357,358,359],{"id":28,"depth":345,"text":29},{"id":35,"depth":345,"text":36,"children":349},[350],{"id":56,"depth":351,"text":352},3,"Diferença entre /var/spool/cron e /etc/cron.d",{"id":84,"depth":345,"text":85},{"id":172,"depth":345,"text":173},{"id":196,"depth":345,"text":197},{"id":230,"depth":345,"text":231},{"id":261,"depth":345,"text":262},{"id":294,"depth":345,"text":295},{"id":325,"depth":345,"text":326},"Aprenda a automatizar tarefas com o agendamento Cron, compreenda o seu funcionamento e evite as armadilhas comuns para uma administração de sistemas eficiente.","md",{"draft":363},false,true,"/pt/cron_tab/overview",{"title":6,"description":360},"pt/cron_tab/overview","fDgMkxrZpHebJ0p-pW-SvxzYVa8G6HsXsDb0NspQ-iU",1791054267856]