利用crontab系统每天定时备份MySQL数据库
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。9 R! Y" I M" B6 b- s; r3 ~
9 e, X' t [6 n! x; ]7 R3 u
1、创建保存备份文件的路径/mysqldata # h4 a7 s0 x& O
* W. p+ G9 v) L#mkdir /mysqldata
2 t. s7 }5 k2 Y5 |' j- ?
3 U( n6 Z! c6 P! V; t3 v2、创建/usr/sbin/bakmysql文件
. }3 ^! C ~& ^- \& O; g w1 T/ |+ x) [4 G
#vi /usr/sbin/bakmysql # Y% o3 ~/ ]' X2 L5 g( t
( e% H' K6 N2 H4 m: k( j, @8 N输入
% h) l' ?2 A* T/ e% w J4 T5 ]: C0 z' K) n, _$ l
rq=` date %Y%m%d `
% p4 [8 e: P2 @% W; N
, F) t3 a0 H' H: btar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
$ Z& C, }2 p0 k3 U, p% [
* _4 O" n# o& \+ O" i5 i或者写成
# p# @* l1 b1 H' D/ D3 f- O$ s9 w W- b# x5 [
rq=` date %Y%m%d ` ; L$ K8 G5 V$ j$ v0 \/ J8 E z
, j& J+ d8 b. O7 a1 Z6 M4 g3 Emysqldump --all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz
2 x+ e) ^0 r! W7 h/ e& }& o6 p& w& N' z7 w" Z
/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同 0 D, f* m j5 K
5 V0 I4 l p" k
/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。 . X6 X' V: v" n7 o. Y
; Q$ T$ w( e0 b& _4 q- B5 E5 r3、修改文件属性,使其可执行
% h+ t& v8 j9 s' x U% Q. k1 P4 m$ O7 y/ \0 {# a, J
# chmod x /usr/sbin/bakmysql
6 e+ O$ v- Y0 }1 `
; J" _, v+ Z, s1 {0 m1 K4、修改/etc/crontab : w7 o$ v; ] g# m3 q3 w. \/ g
' n! v# c! o* T9 F7 `- \
#vi /etc/crontab ; E& Y. |# a/ f% t9 c' s; C- R& D
- T. P, f9 S# s8 _ {5 X% e在下面添加
* a" s) h% s5 ~5 O/ I' q5 f5 S, a
01 3 * * * root /usr/sbin/bakmysql
& H! V v N' m I8 _- `- F3 `
* M. y0 s/ b& P& p! D表示每天3点钟执行备份
7 Y( k6 }' Z0 l/ \
1 S7 {9 b' f1 A/ x* G1 N' ^. w5、重新启动crond % b, Z: q, P A+ s
5 `7 @& @5 `, v% W4 \6 k
# /etc/rc.d/init.d/crond restart ; S, I8 ^8 W" w/ A- A
2 ?! a) m: C2 B8 X M' s8 ?完成。
- C* m, w! |9 R5 ]$ u, K/ d c. t/ H- l. Y) O# k) t: P1 @7 z
这样每天你在/mysqldata可以看到这样的文件 & [8 n/ Y* S [6 K
9 W3 I( s5 W9 f. E" Tmysql20040619.tar.gz 0 }- P P; }- \: p, l+ t# u3 P
8 C* O- V% a, S你直接下载就可以了。
( m( P: l8 K0 o3 r% a( u# V5 ^' I
+ g& c0 ]" p; u s0 n在tar命令执行前,停止数据库服务进程或锁定数据库, 2 Q4 e% g3 V+ r' \7 T5 H: A5 T
& Y8 T( j8 Y! a) w% r$ h* O否则恢复数据时,会出现数据库损坏的情形,运气好时可修复,运气不好时就不可以了。
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹