感谢流弊的homezz跟东哥
本文概览
如何免密码SSH登陆备用服务器
如何定期备份mysql数据库并压缩保存
如何定期同步数据到远程服务器
如何免密码SSH登陆备用服务器
A 你当前所在的机器,也可以是服务器,也可以是VPS;
B 您需要登陆的目标服务器。
首先在A服务器上运行命令
ssh-keygen
后面一直回车就可以了.
然后你会本地发现多了一个.ssh目录,如果是root就是/root/.ssh
进入这个目录,你会发现一下几个文件
authorized_keys id_rsa id_rsa.pub
运行 cat id_rsa.pub,就能直接显示这个文件的内容,这个文件后面要用。
现在A服务器上的操作已经结束了。
ssh登陆到B服务器。如果是root,您的home目录为/root/
如果你的ssh用户名是 homezz,则home目录一般为/home/homezz
cd /home/homezz 或者 cd /root
看你是什么用户就进入什么目录。
然后运行命令 mkdir .ssh
然后进入.ssh 运行命令 cd .ssh
然后运行如下命令
echo "在A服务器上 cat id_rsa.pub显示出来的内容">>authorized_keys
现在。你可以从A服务器上免密码登陆到B服务器了。
也可以不需要输入密码,从A服务器rsync数据到B服务器了。
如何定期备份mysql数据库并压缩保存
请给您的服务器安装php环境支持,因为下面的脚本是基于php的,运行php -v ,如果没有任何显示则表示没有安装
安装方法很简单 apt-get -y install php5 php5-cli (ubuntu 或者debian)
yum -y install php5 php5-devel ( centos)
mysql备份脚本内容如下:
#!/usr/bin/php /* homezz.com 版权所所有 盗版随意 */ $backupdir = "/backup"; $dbuser = "mysquser"; $dbpass = "mysqlpass"; /* 下面的不需要动*/ $hourly = $backupdir."/mysql/homezz-hourly.tar.gz"; $daily = $backupdir."/mysql/homezz-daily.tar.gz"; $weekly = $backupdir."/mysql/homezz-weekly.tar.gz"; exec("mkdir -p ".$backupdir."/mysql"); $file ="/scripts/mysql/tmp.sql"; $cmd =( " /usr/bin/mysqldump --all-databases -u ".$dbuser." -p".$dbpass.">".$file); exec( $cmd); $cmd = "cd ".$backupdir."/mysql/; tar -czvf ".$hourly." tmp.sql; rm -rf tmp.sql; "; exec( $cmd); if( !file_exists( $daily )) exec("cp -rf $hourly $daily"); if( !file_exists( $weekly )) exec("cp -rf $hourly $weekly"); if( (time() - filectime( $daily )) >(3600*24) ){ exec("cp -rf $hourly $daily"); } if( (time() - filectime( $weekly )) >(3600*24*7) ){ exec("cp -rf $daily $weekly"); } ?>
外链接打开代码:http://pastebin.com/bqC9m8FG
将上面的文件保存到一个文件,如 /root/backup.php 运行命令 chmod +x /root/backup.php
这个脚本,可以一个小时运行一次。没有必要太频繁。运行之后,会自动保存mysql的 小时备份 日备份和周备份
如何定期同步数据到远程服务器
使用rsync,rsync安装很简单,ubuntu apt-get install rsync
centos yum install rsync
然后运行 /usr/bin/rsync -rvu /www/home [email protected]:/home/homezz/backup
这个命令就是将 /www/home 同步到 remoter.server.com 服务器上的/home/homezz/backup目录下,命令中 homezz表示远程服务器的ssh登陆名,如果您设置了免密码登陆,这个命令就不会弹出密码,直接开始同步了
rync的好处在于,第一次同步传输所有的文件,此后同步就只传输有变化的文件
设定定期执行
在你的服务器上(不是备份服务器)
现在脚本这些都准备好了,我们就让服务器自动干活
输入命令 crontab -e
即可编辑定期执行命令
输入
0 */2 * * * /root/backup.php >/dev/null 2>&1
0 */3 * * * /usr/bin/rsync -rvu /backup/mysql [email protected]:/home/homezz/mysql >/dev/null 2>&1
0 */5 * * * /usr/bin/rsync -rvu /www/home [email protected]:/home/homezz/backup >/dev/null 2>&1
第一行直接写即可
第二行和第三行请根据您实际的目录来操作
至此,异地灾难备份搞定,就算硬raid出问题也没事拉
可以看看这篇 我现在正在用的:
http://yjyj.net/learn/centos/1926.html
还有这个:
http://yjyj.net/learn/centos/1834.html
lz好,请教个问题
如果2台服务器都是免密码形式,都有证书,请问如何使用rsync