本帖最后由 finder 于 2014-12-29 08:03 编辑 # E( T3 C$ L9 ~7 n _) L: f/ i* E: _7 c; k( M; N3 _
备份是个大问题啊,没遇到问题就没事,要遇到问题,你没备份可以悔死你。 7 W V) F) _5 J$ o* k 0 ~+ Z1 U' M# w* B一般情况下用rsync增量备份,我这里针对数据量不大的小网站,就直接写个简单的压缩备份脚本,然后放到crontab里面,8个小时备份一次,一天三次。这个随意,你无聊啊一分钟备份一次也OK。 ' X Z+ a$ C' Z$ {. }3 s8 t' V. r. M8 A 前提: # j2 N2 q) H( W8 u / r1 X5 i7 A* Z& Z* l1. 双机备份,本地服务器和备份服务器至少是linux vps。(windows vps,或者没shell权限的linux shared就别看了。)4 _4 [7 W! M4 M( m6 I& V
% L2 M) F5 f' m8 @) E7 o2. ssh,scp全套都有。+ f) h# S. [- w8 K) E" }; w
) x% T+ `3 r2 L& E/ _3. 有个能跑的python,2.5以上版就可以,python要装一个fabric的包。, ^& J% ?0 Z( ~! q
3 M. O' @, n. m% h4 C
4. 有个7-zip的压缩程序,7zr或者7za都可以。 ! E9 Y9 m& X/ j+ ~4 n& k" |: b6 Y! F0 U
这里假定你网站文件夹为mysite,位于/home/john/static/下面,web服务器是Nginx,数据库服务器是mysql。1 ^7 e/ d4 k8 j6 S5 E$ @! I! L
- v, [- ~6 w5 p# ~9 D备份需要两个文件,一个是mysite.py,一个是bash脚本mysite,位于/home/john/scripts/mysite/下面。9 {7 R( \. A. d. |% ]3 g
# G5 s8 H1 r. c, n9 V t mysite.py 如下:
from fabric.api import *5 R+ c4 J& B- F3 h
" Z$ s) `/ P- [
env.user = 'name'2 l4 y0 E: k& S0 T9 H! L
env.password = 'password' - m6 T6 R e+ |8 p- T
env.port = '22' & i+ |/ Y7 w3 C( Q0 L
env.hosts = ['10.10.10.10',] 2 g: x) O# H6 G9 v8 H2 c7 m; z
1 g$ ~1 h. r2 @8 y' E! o/ u
def backup(): # Z$ D9 Z# W+ s% f6 N1 N
# 进到目标路径 6 ]% _) C" u. o+ d. x9 b! u' I
with lcd('/home/john/static'): 9 u) m8 E( R4 Y( n
# j: t, l" F, k: U; D& G% w1 g+ H% l$ l
# 压缩网站文件夹% Z1 S; Z1 q2 e# _+ U: m: ?5 R
local('7zr a mysite.7z mysite')5 _! |7 j: Q: |0 V+ n. d7 ^
% s9 `0 L* j) H3 V
# 备份服务器配置文件8 j; ^4 j$ r5 O5 K. U3 a
local('cp /home/john/vhosts/mysite.conf mysite.conf')) E, ] G! Z5 f) P X; m6 ~0 e0 D
# 备份这个备份脚本7 v J0 V( G8 x9 m' |) j- N) Y
local('cp /home/john/scripts/mysite.py mysite.py')" O u& O D. T; k3 d