Solução da comunidade

Executar tarefas agendadas no ZimaOS com o Zima Cron

An official January 2026 IceWhale tutorial for installing Zima Cron through zpkg and creating interval or cron-expression tasks. Later replies reported inconsistent persistence after reboot, including an open issue where zima-cron.service becomes inactive.

O Zima Cron é uma das poucas ferramentas de agendamento publicadas directamente para o ZimaOS, em vez de serem adicionadas como um contentor Docker genérico. O tutorial da IceWhale de Janeiro de 2026 mostra como instalá-lo com zpkg, crie tarefas baseadas em intervalos ou em expressões cron, verifique a execução através dos registos e utilize-o para scripts, cópias de segurança ou manutenção de rotina.

A discussão original também contém uma segunda informação importante que a versão curta deste artigo anteriormente simplificava demasiado: a persistência após o reinício era inconsistente entre sistemas. Alguns utilizadores do ZimaOS 1.5.3 e 1.5.4 perderam todas as tarefas agendadas ou descobriram zima-cron.service inactivo após o reinício, enquanto um ambiente de teste limpo mostrou que as tarefas sobreviviam ao reinício. A conclusão correcta é, portanto, “agendador oficial com uma ressalva de persistência dependente da versão”, e não simplesmente “instale e esqueça”.

Instale o Zima Cron com o gestor oficial de pacotes zpkg

O tutorial da IceWhale começa no terminal do ZimaOS e utiliza:

zpkg install zima_cron

A fonte afirma explicitamente que não é necessário reiniciar após a instalação. O Zima Cron deverá então aparecer na lista de aplicações da interface Web do ZimaOS.

Painel do ZimaOS a mostrar o Zima Cron instalado na lista de aplicações depois de executar zpkg install zima_cron
O tutorial da IceWhale mostra o Zima Cron a aparecer como aplicação imediatamente após a instalação através do zpkg.

Crie uma tarefa de teste segura antes de agendar algo importante

O tutorial oficial utiliza deliberadamente uma tarefa de registo inofensiva de um minuto, em vez de um comando de manutenção destrutivo. Esse é um bom padrão para qualquer agendador: confirme que o back-end executa, que o agendamento é interpretado correctamente e que o resultado é escrito no local esperado antes de automatizar cópias de segurança ou reinícios de serviços.

Ecrã de criação de tarefas do Zima Cron, com nome da tarefa, comando, tipo de agendamento e campos de intervalo
O editor de tarefas suporta um comando e um agendamento por intervalos ou uma expressão cron padrão.

O exemplo oficial acrescenta um carimbo de data e hora a um ficheiro de registo:

bash -c 'echo "$(date "+%Y-%m-%d %H:%M:%S") zima cron works" >> /DATA/zima_cron_test.log'

Como este comando apenas acrescenta texto, é adequado para verificar o agendamento sem modificar o estado da aplicação.

Utilize o agendamento por intervalos para repetições simples

Um agendamento por intervalos é adequado quando a hora exacta do relógio não é importante. Os exemplos incluem uma verificação de integridade ligeira a cada poucos minutos ou uma tarefa de limpeza a cada várias horas.

Para tarefas importantes, lembre-se de que “a cada 24 horas” nem sempre equivale a “todos os dias às 4:00”, especialmente após reinícios de serviços. Utilize uma expressão cron quando for importante uma hora específica do relógio.

Utilize expressões cron padrão para agendas baseadas no calendário

O tutorial oficial também demonstra a sintaxe cron padrão. Por exemplo:

*/5 * * * *

é executado a cada cinco minutos. Uma expressão cron normal pode representar agendas diárias, semanais, mensais ou específicas para dias da semana, tornando o Zima Cron mais flexível do que apenas um intervalo fixo.

Antes de implementar uma expressão complicada, teste-a com um comando de registo inofensivo e verifique pelo menos duas execuções bem-sucedidas.

Verifique a execução no Zima Cron e no ficheiro de saída

Lista de tarefas do Zima Cron a mostrar uma tarefa de teste agendada com registos de execuções repetidas bem-sucedidas
O tutorial oficial verifica o agendador através do estado da tarefa e de registos de execução repetida, em vez de presumir que uma tarefa guardada está realmente em execução.

Um teste completo deve verificar tanto a interface do agendador como o efeito secundário esperado — por exemplo, novas linhas em /DATA/zima_cron_test.log. Isto deteta casos em que existe uma tarefa na interface, mas o respetivo comando falha devido a permissões, caminhos, aspas ou binários em falta.

Agendar reinícios de aplicações requer o limite de comando adequado

Um utilizador perguntou como reiniciar o Home Assistant diariamente às 4:00. O tópico não recebeu nenhum comando oficial da IceWhale para gerir uma aplicação instalada específica, pelo que este artigo não deve inventar um. O Zima Cron pode executar comandos shell, mas o comando exato para uma aplicação depende da forma como essa aplicação é gerida pelo ZimaOS e de ser seguro reiniciá-la fora da camada de gestão de aplicações.

Utilize o agendador para comandos que já tenha verificado manualmente. Não faça do primeiro teste o reinício de uma aplicação em produção.

A grande ressalva: alguns utilizadores perderam as tarefas após o reinício

A 26 de janeiro, um utilizador do ZimaOS 1.5.3 relatou que as tarefas guardadas desapareceram após o reinício. 777-Spider respondeu que a IceWhale iria investigar o problema. Outros utilizadores reproduziram posteriormente um comportamento semelhante, tornando-o uma preocupação real de fiabilidade, e não apenas um mal-entendido isolado.

Mais tarde, uma instalação limpa controlada terá funcionado corretamente: zima-cron.service permaneceram ativos, as tarefas continuaram visíveis após o reinício e o registo continuou. Isso parecia promissor, mas não era o fim da história.

Os testes limpos e os testes no mundo real produziram resultados diferentes

Mais tarde, outro participante instalou o Zima Cron através de zpkg, criou uma tarefa e, depois, comunicou após o reinício que as tarefas tinham desaparecido e que não era possível criar novas tarefas. O estado do serviço apresentado era:

zima-cron.service
Carregado: carregado
Ativo: inativo (morto)

Isso contradizia diretamente o resultado num sistema limpo, em que o serviço arrancava automaticamente e as tarefas persistiam. A interpretação correta é que os problemas de persistência dependiam do ambiente ou da compilação e não estavam conclusivamente resolvidos para todos os utilizadores.

O que verificar após um reinício

O tópico recomendava verificar se o serviço continuava ativo e se a instalação tinha sido efetuada corretamente através de zpkg. Para uma implementação crítica, a verificação mínima após o reinício deve ser:

  1. Reinicie deliberadamente a máquina ZimaOS.
  2. Confirme que o Zima Cron continua a aparecer.
  3. Confirme que a tarefa guardada continua visível.
  4. Confirme que o serviço de backend está ativo.
  5. Aguarde a próxima execução agendada.
  6. Verifique o resultado real da tarefa, não apenas o estado na interface.

O problema de persistência também foi comunicado publicamente

O projeto Zima Cron tem um problema público que descreve a perda de tarefas e um serviço inativo após o reinício. Antes de confiar nele para manutenção não supervisionada, verifique o estado atual do relatório sobre a persistência após reinício.

Não faça de um agendador não testado o seu único acionador de cópias de segurança

O Zima Cron é útil para automatização, mas uma cópia de segurança agendada que desaparece silenciosamente após um reinício é pior do que uma cópia de segurança manual que sabe não ter sido executada. Se a tarefa for importante, combine os testes do agendador com verificações independentes do estado das cópias de segurança e a validação do restauro.

Perguntas frequentes sobre o Zima Cron

O comando de instalação do Zima Cron é oficial?

Sim. zpkg install zima_cron foi publicado por 777-Spider no tutorial da IceWhale.

Pode utilizar expressões cron normais?

Sim. O tutorial oficial suporta tanto agendamentos por intervalos como expressões cron padrão.

As tarefas sobrevivem definitivamente ao reinício?

Não é possível dar uma garantia universal com base no tópico de origem. Alguns testes num ambiente limpo foram bem-sucedidos, enquanto outros sistemas 1.5.x perdiam repetidamente tarefas ou deixavam o serviço inativo.

O que devo fazer antes de confiar-lhe uma tarefa crítica?

Execute um teste de reinício real, verifique se a tarefa continua definida e confirme que o comando é executado com êxito depois disso.