<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MacOS on /var/log/janio</title><link>https://devops.sarmento.org/categories/macos/</link><description>Recent content in MacOS on /var/log/janio</description><generator>Hugo</generator><language>pt-BR</language><lastBuildDate>Tue, 26 May 2026 06:55:00 +0000</lastBuildDate><atom:link href="https://devops.sarmento.org/categories/macos/index.xml" rel="self" type="application/rss+xml"/><item><title>SOPS + age: Gerenciamento de segredos declarativo, seguro e sem a dor de cabeça do GPG</title><link>https://devops.sarmento.org/posts/sops-e-age-gerenciamento-de-segredos-na-pratica/</link><pubDate>Tue, 26 May 2026 07:00:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/sops-e-age-gerenciamento-de-segredos-na-pratica/</guid><description>&lt;p&gt;Como já discuti anteriormente no post sobre &lt;a href="https://devops.sarmento.org/posts/secret-management-macos-linux/"&gt;secret management no macOS e no Linux&lt;/a&gt;, o grande problema de gerenciar chaves e tokens não é a criptografia em si, mas sim reduzir o vazamento acidental sem transformar a rotina do sysadmin num inferno burocrático. Nos últimos anos, porém, uma dupla de ferramentas ganhou espaço e mudou completamente essa dinâmica: o &lt;strong&gt;Mozilla SOPS&lt;/strong&gt; e o &lt;strong&gt;age&lt;/strong&gt;. Juntos, eles permitem uma abordagem declarativa (GitOps-friendly), extremamente segura e com fricção quase zero. Este post é uma análise detalhada sobre o funcionamento dessas ferramentas e como integrá-las de forma prática no seu dia a dia.&lt;/p&gt;</description></item><item><title>Secret management no macOS e no Linux: uma abordagem teórico-prática</title><link>https://devops.sarmento.org/posts/secret-management-macos-linux/</link><pubDate>Sun, 17 May 2026 11:34:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/secret-management-macos-linux/</guid><description>&lt;p&gt;Existe um momento na vida de praticamente todo sysadmin em que ele percebe que espalhou segredos demais pelo ambiente: uma senha em &lt;code&gt;.env&lt;/code&gt; aqui, um token no histórico do shell ali, um webhook esquecido dentro de um &lt;code&gt;docker-compose.yml&lt;/code&gt;, uma API key hardcoded num script “temporário” que continua rodando dois anos depois. Nada disso parece grave isoladamente; o problema é que a infraestrutura quase nunca quebra por uma decisão única e gigantesca. Ela quebra pelo acúmulo de pequenas concessões feitas em nome da praticidade.&lt;/p&gt;</description></item><item><title>Apagando e-mails automaticamente no Apple Mail com AppleScript + launchd</title><link>https://devops.sarmento.org/posts/apagando-e-mails-automaticamente-no-apple-mail-com-applescript-launchd/</link><pubDate>Mon, 30 Mar 2026 20:24:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/apagando-e-mails-automaticamente-no-apple-mail-com-applescript-launchd/</guid><description>&lt;p&gt;Minha caixa de entrada vive cheia de notificações com assunto no formato &lt;code&gt;[Ticket ID: 12345] Atualização do chamado&lt;/code&gt;. Elas são úteis por algumas horas e depois viram ruído. Não são e-mails que precisam ser arquivados, respondidos ou revisitados, então acabam só ocupando espaço mental.&lt;/p&gt;
&lt;p&gt;Apagar manualmente é aquele tipo de tarefa pequena que nunca vira prioridade, mas que cobra juros em distração. Então resolvi tratar como qualquer outro problema recorrente: automatizar localmente, sem depender de serviço externo, sem &lt;em&gt;webhook&lt;/em&gt; e sem integrações. A ideia é rodar periodicamente um script que mova para o lixo as &lt;a href="https://devops.sarmento.org/experiencias-com-mensagens-subliminares/"&gt;mensagens&lt;/a&gt; cujo assunto contenha um padrão específico e que tenham mais de 48 horas.&lt;/p&gt;</description></item><item><title>Convertendo imagens automaticamente para WEBP e AVIF</title><link>https://devops.sarmento.org/posts/convertendo-imagens-automaticamente-para-webp-e-avif/</link><pubDate>Thu, 26 Mar 2026 22:19:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/convertendo-imagens-automaticamente-para-webp-e-avif/</guid><description>&lt;p&gt;Os dois posts anteriores montaram a infraestrutura de monitoramento — &lt;a href="https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/"&gt;&lt;code&gt;WatchPaths&lt;/code&gt; no macOS&lt;/a&gt;, &lt;a href="https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-no-linux-com-systemd-path-units-e-inotifywait-para-quem-nao-tem-root/"&gt;systemd path units e &lt;code&gt;inotifywait&lt;/code&gt; no Linux&lt;/a&gt; — e prometeram que os scripts viriam depois. O gatilho está pronto: o launchd ou o systemd detecta quando algo muda num diretório e dispara um comando. Falta o comando.&lt;/p&gt;
&lt;p&gt;Este post entrega o script de conversão de imagens que aqueles gatilhos vão disparar. O objetivo é simples: PNGs e JPGs entram numa pasta, WEBP ou AVIF saem. Os originais são apagados ou movidos, dependendo da configuração. O script detecta quais encoders estão disponíveis na máquina e escolhe o melhor entre os instalados, com uma cadeia de fallback que garante funcionamento mesmo quando a ferramenta ideal não está presente. Se nenhum encoder compatível for encontrado, o script avisa o que instalar e em qual gerenciador de pacotes.&lt;/p&gt;</description></item><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><item><title>Agendando tarefas no macOS com launchd (sem cron, sem gambiarra)</title><link>https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/</link><pubDate>Mon, 23 Mar 2026 21:29:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/systemd-timers-hora-de-aposentar-o-cron/"&gt;post anterior&lt;/a&gt; eu mostrei como os systemd timers substituem o cron em servidores Debian e Ubuntu com vantagens concretas: logging integrado, recuperação de execuções perdidas, dependências declarativas e controle de recursos. A lógica é convincente e a migração é direta — desde que você esteja num sistema que roda systemd. Mas se o seu dia a dia inclui um Mac, a história é outra.&lt;/p&gt;
&lt;p&gt;O macOS tem seu próprio sistema de agendamento, anterior ao systemd e com uma filosofia diferente. Ele se chama launchd, existe desde o Mac OS X Tiger em 2005, e é responsável por praticamente tudo que roda em background no sistema — desde serviços internos da Apple até aquele updater do Spotify que você nunca pediu para instalar. Apesar de ser a forma oficial e recomendada de agendar tarefas no Mac, o launchd vive numa espécie de ponto cego: quem vem do Linux tende a procurar o cron por reflexo, e quem usa o Mac sem background em administração de sistemas nem sabe que a possibilidade existe.&lt;/p&gt;</description></item></channel></rss>