Если вы войдете в систему как пользователь root и запустите
/usr/sbin/logrotate -v /etc/logrotate.conf
вы увидите этот вывод на экране. Проблема в -v
, которую вы должны удалить. Вы найдете -v
здесь:
$ grep -r logrotate /etc/cron*
Пример вывода:
/etc/cron.daily/logrotate:test -x /usr/sbin/logrotate || exit 0
/etc/cron.daily/logrotate:/usr/sbin/logrotate -v /etc/logrotate.conf
Когда cron
получает вывод, он по умолчанию отправляется пользователю root
.
Это связано с тем, что начальный 0
отбрасывается при оценке арифметического контекста $((..))
, где он выполняет преобразование чисел в основание 10. Один из способов сохранить начальный 0
, используя printf()
для добавления ведущие нули
num=${myVer##*[!0-9]}
p=${myVer%%$num}
numLen=${#num}
теперь, используя эту длину, выполните вызов printf()
для добавления начальных нулей
printf -v leadzero "%0*d" "$numLen" "$((10#$num-1))"
lastver="$p$leadzero"
printf '%s\n' "$lastver"
Вы можете добавить префикс 10#$
перед num-1
, чтобы позаботиться о числах в восьмеричном формате.