blog也运行3个月了,一直没有备份,今天写了个自动备份数据脚本,备份步骤:
1、连接数据库,导出SQL备份脚本到临时目录并压缩
2、使用mutt邮寄到备份信箱
3、删除临时文件
为了安全起见,先为脚本分配独立的只读用户和密码:
grant select on niu3y.* to niu3ybak@'localhost' identified by 'backup';
编写shell 脚本:
# 数据库配置 DBNAME=niu3y DBPASS=backup DBUSER=niu3ybak # 备份的邮件地址 EMAIL="niu3yang@gmail.com" /usr/bin/mysqldump --skip-opt -u $DBUSER -p$DBPASS $DBNAME > backup.sql /usr/bin/gzip backup.sql DATE=`date +%Y%m%d` /bin/mv backup.sql.gz $DBNAME-$DATE.sql.gz # 用mutt /usr/bin/mutt -a $DBNAME-$DATE.sql.gz $EMAIL -s "n3yang.com MySQL Backup $DATE" # 没有mutt的时候用mail # /usr/bin/uuencode $DBNAME-$DATE.sql.gz $DBNAME-$DATE.sql.gz | /bin/mail -s 'n3yang.com MySQL Backup $DATE' $EMAIL /bin/rm $DBNAME-$DATE.sql.gz
最后加入crontab,每周日运行
3 2 * * 0 /root/crontab/niu3y.backup.db.sh