Cron job for database repair and optimization

mysqloptimize -A
mysqlrepair -A
I run these regularely, the -A option selects all databases

edit:
to run it regularely you would need a cronjob like this:

35 0 * * 1 mysqlrepair -A > /dev/null; mysqloptimize -A > /dev/null

This cronjob would run at 0:35 AM on every monday morning
If you need to authenticate, yould would use

mysqlrepair -uUSERNAME -pPASSWORD -A
mysqloptimize -uUSERNAME -pPASSWORD -A

For repair you can check auto-repair option. For optimization there is no recipe to do it automagicaly but you can try use mysqltuner.pl script and see what it suggests you should tune.