Restic check --read-data --read-data-subset 1/12

FWIW, here is the bash script I use to do rolling check of all pack files over 30 days period

# failure email config
NAME=$(hostname)
EMAIL=...

# all data is checked over CHECK_PERIOD number of days
# current day calculated as days since 1970-01-01 modulo $CHECK_PERIOD
# (date +%s returns seconds since 1970-01-01 00:00:00 UTC)
CHECK_PERIOD=30
CHECK_DAY=$(( 1 + ($(date +%s) / 86400) % $CHECK_PERIOD ))

LOG=/var/log/restic-backup.log
RESTIC=/usr/local/bin/restic

printf "\nrestic check data start $(date +%Y%m%d_%H%M%S)\n" >> $LOG
$RESTIC \
  --cache-dir /var/cache/restic \
  check --with-cache --read-data-subset=$CHECK_DAY/$CHECK_PERIOD >> $LOG 2>&1

if [ $? != 0 ]; then
  mail -s "$NAME backup check failed" $EMAIL <<EOF
...
$(tail /var/log/restic-backup.log)
EOF
  exit
fi