Вы можете просто соединить все ответы в одну строку cron и использовать только команду date
.
Просто проверьте разницу между днем месяца, который сегодня и будет завтра:
0 23 * * * root [ $(expr $(date +\%d -d '1 days') - $(date +\%d) ) -le 0 ] && echo true
Если эта разница меньше 0, это означает, что мы меняем месяц и наступает последний день месяца.