在数据备份和恢复中常用的工具rsync

rsync 在数据备份和恢复中非常的重要,比你直接用wget 来下载要方便的多,因为可以保持各种权限。

如果你的机器的ssh 的默认端口是22的话,可以直接使用下面的模板:

rsync -av /SRC/ -e ssh root@172.17.193.211:/DEST

这样就把src机器下的src 目录同步到了dest 机器侠的dest文件夹下

但是如果你的ssh 的默认端口不是22的话,就需要加一个parameter “-p”,但是这个这个参数和后面的value 是不能加空格分开的,我就因为这个小问题搜索了将近一个小时.

加入说你的ssh端口为8808,则需要使用如下的命令:

rsync -av /SRC/ -e ‘ssh -p8808’  root@172.17.193.211:/DEST

另外如果你想监控同步的progress的话,就需要加上一个–progress 的参数:

rsync -av –progress /SRC/ -e ‘ssh -p8808’ root@172.17.193.211:/DEST

或者

rsync -av -P /SRC/ -e ‘ssh -p8808’ root@172.17.193.211:/DEST

 

Also add -h to show human readable sizes (350M instead of 367071842)

 

mysql大数据库备份问题

这个问题经常遇到,自己研究了半天,对于大型的数据库,除了用专业的免费的开源的percona 的工具以外,就只有使用mysqldump 来导出,用mysql 来导入了。。

 

mysqldump 导出格式:

mysqldump -u root -p datbase_name > backup_output.sql

mysql 导入:

mysqldump -u root -p database_name < backup_output.sql

注意,在导入和导出的时候均需要在ssh console里面操作,鉴于国内的网络异常的不稳定,一旦ssh断掉,导入和导出就会断掉,所以建议使用国外的vps 来进行操作

 

CSF SSL问题

今天下午在服务器上新切了一个小鸡,装了一个CSF,结果过了一会CSF 发来error email alert:

 

Oops: Unable to download: Protocol scheme ‘https’ is not supported (Crypt::SSLeay or IO::Socket::SSL not installed)

 

说实话,以前真的没有见过这个error,google 了一下才发现原来是PERL 的module 被卸载了。。(估计是装LNMP卸载的。。LNMP 会卸载掉好多的module)

 

知道了原因,解决办法就很简单啦

yum install perl-Crypt-SSLeay perl-Net-SSLeay -y

然后重启CSF即可

关于VP*N routing 的理解

昨天有一台小VPS的梯子怎么也上不去了,debug了一天才发现原来是routing 的问题。平时一直没有时间仔细看一下梯子的routing,今天仔细解析一下:

在pptpd.conf上,我们通常会加入如下两句命令:

localip 192.168.9.1
remoteip 192.168.9.11-30 //表示vp000n客户端获得ip的范围

如此可见,pptp是将远程服务器和pptp客户端建立一个内网,用类似于192.168.9.0/24的网段,再将远程服务器的IP和localip进行动态NAT,用远程的服务器的IP做为gateway来访问外网

假如说远程服务器的IP是207.210.83.140,我们就需要在IPtable上添加一个NAT的命令:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j SNAT –to-source 207.210.83.140

表示所有用eth0网卡的source ip位192.168.9.0/24的数据包,他的source IP将会被改为207.210.83.140

或者如果这台服务器专门用来扶墙,就可以简单一点,更省事一点

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

MASQUERADE 表示自动获取服务器的默认地址,就不需要–to-source命令了。

在服务器只有一个IP的情况下是可以的,但是如果你有多个IP,最好使用–to-source来区分不同的出口IP