Então, estou vendo essa coisa estranha (ou pelo menos estranha para mim, com minha pouca experiência).
cronnext
me diz que nextstring
para um cronjob de cada minuto é o início do minuto atual
,
ou seja, no passado .
por exemplo, se eu correr cronnext
em 02:11:27
,
ele diz:
nextstring: Tue Jul 25 02:11:00 2023
(
ao invés de (como eu esperava ingenuamente)
nextstring: Tue Jul 25 02:12:00 2023
:)
Isso é normal ou...?
Porque não consegui encontrar nada sobre isso em nenhuma das páginas de manual
e não consegui pesquisar no Google nada com os termos que consegui pensar ...
Eu adicionei a anacron
tag também,
porque eu a tenho instalada,
embora nunca a tenha usado diretamente,
então não sei se é relevante.
(
$ sudo cronnext -c
#=>
- user: "username"
crontab: /var/spool/cron/tabs/username
system: 0
entries:
- user: username
cmd: "/home/username/my_script.sh"
flags: 0x0F
flagnames: MIN_STAR|HR_STAR|DOM_STAR|DOW_STAR
delay: 0
next: 1690276260
nextstring: Tue Jul 25 02:11:00 2023
next: 1690276260
)
(
Eu já localizei e corrigi o bug que estava originalmente tentando corrigir quando me deparei com isso,
então acabou sendo apenas uma pista falsa sobre esse problema específico,
mas decidi que ainda quero perguntar sobre isso, porque ainda me parece estranho
.
)
A ferramenta não existe no Debian, então baixei a versão mais recente, cronie-1.6.1 de seu repositório de origem no Github.
A página de manual escreve na DESCRIÇÃO ,
(Ênfase minha.) Parece que o código sempre arredonda para baixo, o que gera respostas incorretas como a que você encontrou.
Aqui está como eu construí:
E para executá-lo:
Uma correção parece ser alterar a condição de início do loop na linha 250 dessas
src/cronnext.c
chamadasnextmatch()
para usarstart+60
em vez destart
. No entanto, não estou confiante o suficiente para enviar um patch e suspeito que corrigirstart
adicionando 60 (segundos) onde é definido na linha 344, em vez de quando é usado, seria melhor.Como você usa o programa, seria melhor enviar um relatório de bug no rastreador de problemas .