Linux下简单的MySQL/Web备份小实例


这个是菜鸟级的运维的MySQL的备份小脚本,在这里写出来一是为了做笔记,二是认识一下两个小工具mysqldump/pdumpfs

第一部分是mysql数据的备份

[root@localhost ~]# mkdir -p /usr2/backup/mysql

[root@localhost ~]# vi mysqldump.sh
#!/bin/bash
#author XXX  time 2011-10-17
#the backup of localhost mysql data
X=`date +%Y%m%d`
M=/usr/local/mysql/bin
B=/usr2/backup/mysql

$M/mysqldump -uroot --all-databases > $B/$X.sql  //本机的mysql为设置登录密码,如果设置密码需要改写这句话($M/mysqldump -uroot -ppassword --all-databases > $B/$X.sql)
tar zcvf $B/$X.tar.gz $B/$X.sql
rm -rf $B/$X.sql
[root@localhost ~]# chmod a+x mysqldump.sh
[root@localhost ~]# ./mysqldump.sh
tar: Removing leading `/' from member names
/usr2/backup/mysql/20111015.sql

以上这个脚本可以加入cron的计划任务中,在定时的时刻执行备份的动作!

[root@localhost ~]# echo " * * * * * root path/XX.sh & >/dev/null" >> /etc/crontab
至于灾难恢复的语句可以这么写

[root@localhost ~]# /usr/local/mysql/bin/mysqldump -uroot -ppassword <$path/`date +%Y%m%d`
每周的备份数据量是很大的,下边的那句话可以写入cron.weekly来清除重叠的数据

[root@localhost ~]# find /usr2/backup/mysql -mtime +6 -exec rm {}\;

第二部分是web数据的备份

这里采用一个新发现的小工具pdumpfs

[root@localhost ~]# yum -y install ruby (安装需要的套件包)

[root@localhost ~]# wget
[root@localhost ~]# rpm -ivh pdumpfs-1.3-1.rh9.rf.i386.rpm

[root@localhost web]# mkdir /usr2/backup/web

[root@localhost ~]# vim web.sh
#!/bin/bash
#author XXX time 2011-10-17
pdumpfs /var/www /usr2/backup/web >/usr2/backup/web/message.log 2>/usr2/backup/web/error.log
[root@localhost ~]# chmod a+x web.sh
同时可以把这个小脚本放入cron的计划任务中定期的执行

[root@localhost ~]# echo " * * * * * root path/XX.sh & >/dev/null" >> /etc/crontab
[root@localhost ~]# ls /usr2/backup/web/ (哲就是备份的数据部分)
2011  error.log  latest  message.log
第三部分是ssh的异地的无密码复制的设置

两台linux主机,一台ip:www.bkjia.com(也就是服务器本机)另一台是www.bkjia.net(作为远程备份主机)

首先在远程备份主机上的操作

[root@localhost ~]# ssh-keygen (生成公匙)

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa www.bkjia.com(给服务器送去,这步要输入192的密码)

[root@localhost ~]# scp www.bkjia.com:/usr2/backup/mysql/20111015.tar.gz .(这里显示的是可以不使用密码可以直接的从服务器上拷贝东西了,也就是复制的过程。把这里换成脚本就能实现很多的操作)

总结:备份的主要方式有,完整备份,增量备份,差分备份、还有本地和异地备份之分!这里只是一个文件备份的小实例,期待进一步的学习!

相关内容