Do manual (man 5 crontab)
Note: The day of a command's execution can be specified by two fields — day of month, and day of week. If both fields are restricted (i.e., aren't *), the command will be run when either field matches the current time. For example, ''30 4 1,15 * 5'' would cause a command to be run at 4:30 am on the 1st and 15th of
each month, plus every Friday. One can, however, achieve the desired result by adding a test to the command (see the last example in EXAMPLE CRON FILE below).
Eu acho que você deveria transformar seu 2-31 em *
OR
você pode usar @daily, @weekly e @monthly.
OR
você pode criar um link para seus scripts em /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly.