linux服务器之间文件及数据库备份
虽然小博数据不是很重要,但是如果哪天主机商跑路了,而且几年的文章都不存在了,那我还是会很不舍得的。我想所有的博主应该和我一样,所以上周我把博客数据远程连接到mysql数据库了。远程连接之后就是备份数据了。这里章郎虫的一台vps放数据,另外一台当备份,而且我两个vps都是linu系统。
1、首先需要实现linux之间SSH无密码登录,实现的原理是使用一种被称为"公私钥"认证的方式来进行ssh登录。具体方法如下:
登录服务器(放数据的vps),输入ssh-keygen -t rsa。这样在这台服务器上就生成了一个密钥。然后把这个密钥传到另外一台vps(备份服务器)上,可以使用这个命令,ssh-copy-id root@xxx.xxx.xxx.xxx。这时系统会提示你输入vps(备份服务器)的密码。最后传输完成之后,登录备份服务器,打开备份服务器中的文件.ssh/authorized_keys,确认已经传输成功。
2、创建编辑批处理文件,以下是小弟写的一个备份批处理文件。很简单,欢迎高手提意见。
#! /bin/bash
cd /home
WebBakName=web_$(date +%y%m%d).tar.gz
tar zcvf $WebBakName wwwroot
SqlBakName=sql_$(date +%y%m%d).tar.gz
/usr/local/mysql/bin/mysqldump -uroot -pdyourpassword1 yourdatabase1>database1.sql
/usr/local/mysql/bin/mysqldump -uroot -pdyourpassword2 yourdatabase2>database2.sql
/usr/local/mysql/bin/mysqldump -uroot -pdyourpassword3 yourdatabase3>database3.sql
tar zcvf $SqlBakName *.sql
scp /home/$WebBakName root@xxx.xxx.xxx.xxx:/home/backup
scp /home/$SqlBakName root@xxx.xxx.xxx.xxx:/home/backup
rm -f database1.sql database2.sql database3.sql $WebBakName $SqlBakName
3、编辑上面创建的批处理文件,chmod x filename ,使他可执行。最后创建计划任务,这里你可以使用crontab,具体方法可以参考这篇文章哦。Linux系统中计划任务的用法及举例