这个是菜鸟级的运维的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:(也就是服务器本机)另一台是(作为远程备份主机)
首先在远程备份主机上的操作
[root@localhost ~]# ssh-keygen (生成公匙)
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa (给服务器送去,这步要输入192的密码)
[root@localhost ~]# scp :/usr2/backup/mysql/20111015.tar.gz .(这里显示的是可以不使用密码可以直接的从服务器上拷贝东西了,,也就是复制的过程。把这里换成脚本就能实现很多的操作)
总结:备份的主要方式有,完整备份,增量备份,差分备份、还有本地和异地备份之分!这里只是一个文件备份的小实例,期待进一步的学习!