要备份mysql,我会考虑使用mysqldump。但请记住,mysqldump 在运行时会锁定表。如果您的数据库中有大量数据,则此过程可能需要相当长的时间。
如果您不能长时间锁定数据库,我会做一个镜像并在该镜像上运行备份脚本。(在这里找到一个详细的分步过程: http: //www.howtoforge.com/mysql_database_replication)
要备份您的数据库,您可以执行以下操作:
BACKUPDATE=$(date +"%Y%m%d")
BACKUPDIR='/mnt/backup'
BACKUPUSER='bkpUser'
BACKUPPASS='bkpPassword'
mkdir -p $BACKUPDIR/$BACKUPDATE/databases/
for DATABASE in $(mysql -u$BACKUPUSER -pBACKUPPASS -e "show databases" | grep -v Database | grep -v information_schema)
do
mysqldump -u$BACKUPUSER -pBACKUPPASS $DATABASE > $BACKUPDIR/$BACKUPDATE/databases/$DATABASE.sql
done
这应该每天创建一个新文件夹并将所有数据库转储到其中。
对于 public_html 文件夹,类似于
tar czvf $BACKUPDIR/$BACKUPDATE/public_html.tar.gz $(find /home/ -type d -name public_html)
添加一点错误检查,这应该可以帮助您。
关于备份的最后一句话。我强烈建议您保留比上次备份文件更多的内容。像把每一件事都保留一个星期和每个月一个对我来说听起来不错。