'cronnext'は、各分cronjobの 'nextstring'を*現在*分、つまり*過去*の始まりとして報告します。正常?

'cronnext'は、各分cronjobの 'nextstring'を*現在*分、つまり*過去*の始まりとして報告します。正常?

だから私はこの奇妙なものを見ました(または経験がほとんどないので、少なくとも私には奇妙でした)。

cronnextnextstring毎分cronjobが何であるかを教えてください。スタート~の現在の分、
つまり、過去

たとえば、cronnextで実行すると、次のように表示されます。 ((無邪気に予想したように)代わりに:)02:11:27

nextstring: Tue Jul 25 02:11:00 2023


nextstring: Tue Jul 25 02:12:00 2023

これは正常ですか、それとも…?

どのマニュアルページでもこれについての内容が見つからず、
私が考えることができる用語では何も検索できないからです。

私もanacronタグを追加しました
するインストールしましたが、
自分で使ったことがないので
関連性があるかどうかはわかりません。

(
$ 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  

)


この問題が発生したときにもともと修正しようとしたバグをすでに見つけて修正していた
ので、結局この特定の問題に対する疑問に過ぎなかったが、
それでも問題だと思うので聞いてみたかった。奇妙な大きな本。
)

答え1

Debianには対応するツールがなく、最新バージョンをダウンロードしましたが、クロニー-1.6.1Githubのソースリポジトリから。

マンページは言う説明する

cron次のタスクをいつ実行するかを決定します。引数なしですべてのクローンタブを考慮した時間をエポックから秒単位で印刷します。分単位で四捨五入

(強調表示されます。)コードは常に丸められているように見えます。これにより、見つかったものなどの誤った答えが生成されます。

これが私が作った方法です。

./configure --prefix=
make

そして実行してください:

src/cronnext

src/cronnext.c解決策は、呼び出しの250行目でループ開始条件を代わりにnextmatch()使用するように変更するようです。しかし、パッチを送信するのに十分な確信がないので、それを使用するのではなく、344行で定義されている場所に60(秒)を追加して修正する方が良いと思います。start+60startstart

このプログラムを使用しているので、これに関するバグレポートを送信することをお勧めします。問題トラッカー

関連情報