the short answer to your original post: NO.
what's with the quotes in your command? try echoing your command out instead of executing it and you'll see it has the single quotes in the wrong place and also a period that you don't want. maybe try this instead:
$command = "/usr/local/mysql/bin/mysqlhotcopy $db_user $db_pass $db_name '/mysql/$filename'";
As for the issue of the db getting corrupted and then you making a backup of it, you should set up your script to make a backup with the date built in to the backup name so you get a different filename each day. Eg., /mysql/YYYY-MM-dd-backup-filename where YYYY-MM-DD is the current date of the backup. Obviously your hard drive will eventually fill up so you should set up this script to delete the older backups after some time period -- say a week or two.