It can be done with a cron job; here's what I use. Beware though that I haven't put functionality in to close the boards first then reopen them after the dump is complete, but if your board is relatively inactive it's not a problem.
Also back up daily, not monthly! There have been times were I would have been royally screwed if I had to use a month-old backup.
My shell script:
Code:
#!
echo Backing up last dump...
mv ~/dump.sql ~/olderdump.sql
echo Dumping database to file...
mysqldump --opt -uusername -ppassword databasename > ~/dump.sql
echo Dump complete!