使用博客,难免需要自己备份一些数据。从CU看到一篇不错的修改方法,自己修改了一下,如下: #!/bin/bash # Server Environment:CentOS 5.0 #2007-08-31 #定义有备份的数据库名 dbname=asdf #定义备份数据库时使用的用户名和密码 dbuser=asdf dbpasswd=asdf #数据库备份的路径 backuppath=/opt/backup/asdf/ #数据库备份日志文件存储的路径 logfile=/home/mysql/db.log #以当前的时间作为备份的数据库命名。 dumpfile=$(date +%y%m%d%H%M) #这个函数用来备份数据库 back_db() { #将备份的时间、数据库名存入日志 echo $(date +%y%m%d%H%M)” Beginning database “${dbname}” backup———————————–” >>${logfile} #备份数据库,如果有错误信息也记入日志。 mysqldump -u${dbuser} -p${dbpasswd} ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile} #将备份数据库文件库压成ZIP文件,并删除先前的SQL文件。如果有错误信息也记入日志。 tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile} #将压缩后的文件名存入日志。 echo “backup file name:”$(date +%y%m%d%H%M)”.tar.gz” >>${logfile} echo -e “——————————\n” >>${logfile} } #前面的backuppath一定要设置了,否则这个函数会删除一周前该目录下的所有文件! delete_oldfile() { #查找出当前目录下七天前生成的文件,并将之删除 find ./ -type f -mtime +7 -exec rm {} \; } #下面这步绝对是必须!!否则会删除执行该命令时所在目录七天前的所有文件!! cd ${backuppath} #对要备份的数据库进行备份 back_db #运行删除文件函数 delete_oldfile
将上面的内容保存为sh文件,赋予+x的权限(执行权限),运行一下,怎么样?你的数据库备份到备份路径下了吧;)
当然,这个不可能天天手动更新的.将上述脚本加入crontab进行定时执行.执行crontab -e之后,加入一条定时执行记录(具体语法可以查crontab的写法).然后就可以定时备份我们的博客了,并且七天后会删除以前备份的数据,不需要你手动删除!一定程度上也方便了你的使用.
PS:MySql的引擎是MyISAM。其中dbname、dbuser和dbpasswd分别对你你需要备份的数据库名,操作数据库的用户名和操作数据库用户名对应的密码。使用前需要进行相应修改!
还没有任何评论。