<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Watchpaths on /var/log/janio</title><link>https://devops.sarmento.org/tags/watchpaths/</link><description>Recent content in Watchpaths on /var/log/janio</description><generator>Hugo</generator><language>pt-BR</language><lastBuildDate>Sat, 11 Apr 2026 10:42:07 +0000</lastBuildDate><atom:link href="https://devops.sarmento.org/tags/watchpaths/index.xml" rel="self" type="application/rss+xml"/><item><title>Monitorando arquivos e pastas com launchd: WatchPaths na prática</title><link>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/</link><pubDate>Thu, 26 Mar 2026 18:56:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/"&gt;post anterior sobre launchd&lt;/a&gt;, o agendamento funcionava por horário: o &lt;code&gt;StartCalendarInterval&lt;/code&gt; definia &amp;ldquo;todo dia às 7h&amp;rdquo; e o sistema cuidava do resto, incluindo recuperar execuções perdidas quando o Mac estava dormindo. Para tarefas periódicas como enviar um briefing diário ou rodar um script de manutenção, esse modelo resolve perfeitamente — é o equivalente funcional do cron, mas integrado ao ciclo de vida do macOS.&lt;/p&gt;
&lt;p&gt;Só que nem toda automação faz sentido atrelada a um relógio. Tem tarefas que só precisam acontecer quando alguma coisa muda. Um backup que roda de hora em hora está desperdiçando 23 execuções por dia se o banco de dados só foi alterado uma vez. Uma conversão de imagens que roda a cada 5 minutos não tem o que converter na grande maioria das vezes, e quando finalmente tem, já se passaram até 5 minutos desde que o arquivo apareceu. O modelo baseado em tempo funciona, mas é um polling disfarçado de agendamento — e polling é quase sempre a solução menos elegante para qualquer problema de sincronização.&lt;/p&gt;</description></item></channel></rss>