]> www.wagner.pp.ru Git - sites/csbook.git/blob - chapters/backups.tex
330c4cbd4dde141be5873b8128da6f0e3dc9e1d7
[sites/csbook.git] / chapters / backups.tex
1
2 \section{úÁÂÏÔÁ Ï ÓÏÈÒÁÎÎÏÓÔÉ ÄÁÎÎÙÈ}
3
4 % ÔÕÔ ÎÁÄÏ ÂÙ ÏÂÝÉÈ ÓÌÏ× ÐÒÏ ÎÅÏÂÈÏÄÉÍÏÓÔØ backup--Ï×, ÓÔÒÁÛÉÌÏË ÐÒÏ
5 % ÐÏÓÌÅÄÓÔ×ÉÑ ÏÔ ÐÏÔÅÒÉ ÄÁÎÎÙÈ, É ÔÏÍÕ ÐÏÄÏÂÎÏÅ.
6
7  äÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÓÉÓÔÅÍÙ ÓÏÈÒÁÎÅÎÉÑ ÒÅÚÅÒ×ÎÙÈ ËÏÐÉÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÄÁÎÎÙÈ
8 ÔÒÅÂÕÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ:
9 \begin{itemize}
10 \item ÓÐÉÓÏË ÓÏÂÓÔ×ÅÎÎÏ ÎÕÖÄÁÀÝÉÈÓÑ × ÒÅÇÕÌÑÒÎÏÍ ÓÏÈÒÁÎÅÎÉÉ ÆÁÊÌÏ× É
11 ËÁÔÁÌÏÇÏ×
12 \item ÔÅÈÎÉÞÅÓËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ×ÙÂÒÁÎÎÙÈ ÄÌÑ ÒÅÚÅÒ×ÎÏÇÏ ËÏÐÉÒÏ×ÁÎÉÑ ÎÏÓÉÔÅÌÅÊ
13 \item ÐÏÌÎÙÊ ÏÂߣ͠×ÙÂÒÁÎÎÙÈ ÄÌÑ ÓÐÁÓÅÎÉÑ ÄÁÎÎÙÈ É ÓËÏÒÏÓÔØ ÎÁËÏÐÌÅÎÉÑ
14 ÉÚÍÅÎÅÎÉÊ × ÎÉÈ
15 \end{itemize}
16
17  òÁÓÓÍÏÔÒÉÍ ÐÒÏÓÔÏÊ ÐÒÉÍÅÒ --- Õ ÐÏÌØÚÏ×ÁÔÅÌÑ ÅÓÔØ cvs--ÒÅÐÏÚÉÔÏÒÉÊ, ÇÄÅ ÏÎ
18 ÈÒÁÎÉÔ Ó×ÏÉ ÔÅËÓÔÏ×ÙÅ ÄÏËÕÍÅÎÔÙ É ÆÁÊÌÙ ËÏÎÆÉÇÕÒÁÃÉÉ, ÒÁÓÐÏÌÏÖÅÎÎÙÊ
19 × {\tt /home/user/cvsroot/}, ÏÂÌÁÓÔØ ÄÌÑ ÚÁËÁÞËÉ ÎÅÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÈ
20 ÆÁÊÌÏ× ÉÚ Internet--Á × {\tt /home/user/downloads/}, ÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÊ
21 ÁÒÈÉ× × {\tt /home/user/archive/}, ÐÏÞÔÏ×ÙÅ ÑÝÉËÉ × {\tt /home/user/mail/},
22 É ÄÉÒÅËÔÏÒÉÑ Ó ×ÒÅÍÅÎÎÙÍÉ ÒÁÂÏÞÉÍÉ ÆÁÊÌÁÍÉ {\tt /home/user/work/}.
23
24  ëÁË ×ÉÄÉÍ, ×ÓÅ ÜÔÉ ËÁÔÁÌÏÇÉ ÓÏÄÅÒÖÁÔ ×ÅÓØÍÁ ÒÁÚÎÏÒÏÄÎÕÀ ÉÎÆÏÒÍÁÃÉÀ,
25 ÔÒÅÂÕÀÝÕÀ ÒÁÚÎÙÈ ÐÏÄÈÏÄÏ× Ë ×ÅÄÅÎÉÀ ÁÒÈÉ×Á ÒÅÚÅÒ×ÎÙÈ ËÏÐÉÊ. ðÏÐÒÏÂÕÅÍ
26 ×ÙÂÒÁÔØ ÎÁÉÂÏÌÅÅ ÏÐÔÉÍÁÌØÎÕÀ ÔÅÈÎÏÌÏÇÉÀ ÄÌÑ ÄÁÎÎÏÇÏ (×ÅÓØÍÁ ÈÁÒÁËÔÅÒÎÏÇÏ) 
27 ÓÌÕÞÁÑ. äÌÑ ÎÁÞÁÌÁ ÐÅÒÅÞÉÓÌÉÍ ÉÚ×ÅÓÔÎÙÅ ÆÁËÔÙ:
28
29 \begin{enumerate}
30 \item CVS--ÒÅÐÏÚÉÔÏÒÉÊ ÕÖÅ ÓÁÍ ÐÏ ÓÅÂÅ ÓÏÄÅÒÖÉÔ ×ÓÀ ÉÎÆÏÒÍÁÃÉÀ ÏÂ
31 ÉÚÍÅÎÅÎÉÑÈ, É ÉÍÅÅÔ ÄÏÓÔÁÔÏÞÎÏ ÍÁÌÙÊ ÒÁÚÍÅÒ. óÌÅÄÏ×ÁÔÅÌØÎÏ, ÎÅÔ
32 ÎÅÏÂÈÏÄÉÍÏÓÔÉ × ÉÎËÒÅÍÅÎÔÁÌØÎÏÍ backup--Å, É ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÈÒÁÎÉÔØ
33 ÂÏÌØÛÏÅ ÞÉÓÌÏ ÕÓÔÁÒÅ×ÛÉÈ ËÏÐÉÊ --- ×ÓÅÇÄÁ ÄÏÓÔÁÔÏÞÎÏ ÏÄÎÏÊ.
34 \item ËÁÔÁÌÏÇ Ó ÎÅÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÍÉ ÆÁÊÌÁÍÉ ÂÙÓÔÒÏ ÍÅÎÑÅÔÓÑ, É ÆÁÊÌÙ ÉÚ
35 ÎÅÇÏ ÌÉÂÏ ÕÄÁÌÑÀÔÓÑ ÚÁ ÎÅÎÁÄÏÂÎÏÓÔØÀ, ÌÉÂÏ ÐÅÒÅÈÏÄÑÔ × ÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÕÀ
36 ÏÂÌÁÓÔØ.
37 \item ËÁÔÁÌÏÇ Ó ÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÍ ÁÒÈÉ×ÏÍ ÉÍÅÅÔ ÂÏÌØÛÏÊ ÒÁÚÍÅÒ, É ×ÓÅ
38 ×ÏÚÍÏÖÎÙÅ ÅÇÏ ÉÚÍÅÎÅÎÉÑ --- ÜÔÏ ÌÉÛØ ÄÏÂÁ×ÌÅÎÉÅ ÎÏ×ÙÈ ÆÁÊÌÏ×. úÄÅÓØ
39 ÏÐÒÅÄÅÌ£ÎÎÏ ÔÒÅÂÕÅÔÓÑ ÉÎËÒÅÍÅÎÔÁÌØÎÙÊ backup.
40 \item ÐÏÞÔÏ×ÙÅ ÑÝÉËÉ --- ÚÄÅÓØ ÓÁÍÙÊ ÓÌÏÖÎÙÊ ÓÌÕÞÁÊ. óÁÍÉ ÆÁÊÌÙ ÔÕÔ
41 ÒÅÇÕÌÑÒÎÏ ÉÚÍÅÎÑÀÔÓÑ, × ÏÓÎÏ×ÎÏÍ ÎÁ ÄÏÐÏÌÎÅÎÉÅ (ÄÏÐÉÓÙ×ÁÎÉÅ × ËÏÎÅÃ), ÉÎÏÇÄÁ
42 ÕÄÁÌÅÎÉÅ, É ÎÅËÏÔÏÒÙÅ ÉÚÍÅÎÅÎÉÑ × ÚÁÇÏÌÏ×ËÁÈ ÐÉÓÅÍ, ÓÏÄÅÒÖÁÝÉÅ ÉÎÆÏÒÍÁÃÉÀ Ï
43 ÐÒÏÓÍÏÔÒÅ É ÎÁÌÉÞÉÉ ÏÔ×ÅÔÁ. ïÄÎÁËÏ, ÐÏÄ CVS ÐÏÌØÚÏ×ÁÔÅÌØ ÉÈ ÎÅ ÓÏÄÅÒÖÉÔ ---
44 ÎÅ ÃÅÌÅÓÏÏÂÒÁÚÎÏ, ÐÒÉ ÔÏÍ, ÞÔÏ ÎÅËÏÔÏÒÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÓÉÓÔÅÍÙ ËÏÎÔÒÏÌÑ
45 ×ÅÒÓÉÊ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ ÎÁÍ ÚÄÅÓØ ÏÐÒÅÄÅÌ£ÎÎÏ ÐÏÔÒÅÂÕÅÔÓÑ.
46 \item ×ÒÅÍÅÎÎÙÅ ÒÁÂÏÞÉÅ ÆÁÊÌÙ ÐÏ ÓÕÔÉ Ó×ÏÅÊ ÂÌÉÚËÉ Ë ËÁÔÁÌÏÇÕ
47 ÎÅÓÉÓÔÅÍÁÔÉÚÉÒÏ×ÁÎÎÙÈ ÆÁÊÌÏ×, É ÏÂÒÁÂÁÔÙ×ÁÔØ ÉÈ ÂÕÄÅÍ ÏÄÎÉÍ ÍÅÔÏÄÏÍ.
48 \end{enumerate}
49
50  ïÃÅÎÉÍ (ÔÏÞÎÅÅ, ÐÒÉÄÕÍÁÅÍ) ÔÅÈÎÉÞÅÓËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ. ÷ÏÚØͣ͠ÂÏÌÅÅ--ÍÅÎÅÅ
51 ÐÏÐÕÌÑÒÎÕÀ ÓÉÔÕÁÃÉÀ --- ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÆÁÊÌÙ ({\tt /home/user/})
52 ÒÁÓÐÏÌÏÖÅÎÙ ÎÁ ÂÙÓÔÒÏÍ ÌÏËÁÌØÎÏÍ ÄÉÓËÅ, ËÒÏÍÅ ÔÏÇÏ, ÎÁ ÜÔÏÊ ÖÅ ÍÁÛÉÎÅ ÅÓÔØ
53 ×ÔÏÒÏÊ, ÍÅÄÌÅÎÎÙÊ ÖÅÓÔËÉÊ ÄÉÓË --- ÓÞÉÔÁÅÍ ÅÇÏ ÂÏÌÅÅ ÎÁÄ£ÖÎÙÍ, ÔÁË ËÁË
54 ÉÓÐÏÌØÚÕÅÔÓÑ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext3 c --journal-data, É ÏÎ
55 ÒÅÁÌÉÚÏ×ÁΠËÁË ÓÏÆÔÏ×ÙÊ RAID--ÍÁÓÓÉ× (mirror) ÉÚ Ä×ÕÈ ÏÄÉÎÁËÏ×ÙÈ ÖÅÓÔËÉÈ
56 ÄÉÓËÏ×. ôÁË ÖÅ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ ÕÓÔÒÏÊÓÔ×Ï ÚÁÐÉÓÉ CDRW--ÄÉÓËÏ× (ÎÏ ÎÅÔ
57 ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ UDF, ÄÁÂÙ ÓÉÔÕÁÃÉÑ ÐÏÈÏÄÉÌÁ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÌÅÎÔÏÞÎÏÇÏ
58 ÎÁËÏÐÉÔÅÌÑ). æÉÎÁÎÓÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÎÁÛÅÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
59 ÏÇÒÁÎÉÞÅÎÎÙ, ÔÁË ÞÔÏ ÏΠÍÏÖÅÔ ÓÅÂÅ ÐÏÚ×ÏÌÉÔØ ×ÙÄÅÌÉÔØ ÐÏÄ ÒÅÚÅÒ×ÎÏÅ
60 ËÏÐÉÒÏ×ÁÎÉÅ ÌÉÛØ 6 ÂÏÌ×ÁÎÏË. ðÒÏÍÁÒËÉÒÕÅÍ ÉÈ ÚÁÒÁÎÅÅ ËÁË ``Backup disk 1'',
61 ``Backup disk 2'', ..., ``Backup disk 6''.
62
63  âÕÄÅÍ ÓÞÉÔÁÔØ, ÞÔÏ ÎÁ "ÎÁÄ£ÖÎÏÍ" ÄÉÓËÅ ÚÁ×ÅÄÏÍÏ ÅÓÔØ Ó×ÏÂÏÄÎÏÅ
64 ÐÒÏÓÔÒÁÎÓÔ×Ï, × 4 ÒÁÚÁ ÐÒÅ×ÙÛÁÀÝÅÅ ÏÂߣÍ, ÚÁÎÑÔÙÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÍÉ ÆÁÊÌÁÍÉ,
65 ÐÏÄÌÅÖÁÝÉÍÉ ÒÅÚÅÒ×ÎÏÍÕ ËÏÐÉÒÏ×ÁÎÉÀ. 
66
67  éÔÁË, ÐÒÉÓÔÕÐÉÍ Ë ÐÏÓÔÒÏÅÎÉÀ ÐÏÌÕÁ×ÔÏÍÁÔÉÞÅÓËÏÊ ÓÉÓÔÅÍÙ ×ÅÄÅÎÉÑ ÁÒÈÉ×Á
68 ÒÅÚÅÒ×ÎÙÈ ËÏÐÉÊ. õ ÎÁÓ ÂÕÄÅÔ ÔÒÉ ÜÔÁÐÁ:
69 \begin{itemize}
70 \item ×ÅÄÅÎÉÅ ÚÅÒËÁÌÁ ÎÁ ÍÅÄÌÅÎÎÏÍ ÄÉÓËÅ
71 \item ÎÁËÏÐÌÅÎÉÅ ÉÎËÒÅÍÅÎÔÁÌØÎÏÇÏ ÁÒÈÉ×Á ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÊ ÚÁÐÉÓÉ ÎÁ CDRW
72 \item ÚÁÐÉÓØ ÎÁ CDRW, Ó ÒÏÔÁÃÉÅÊ É ÕÐÌÏÔÎÅÎÉÅÍ ÉÎËÒÅÍÅÎÔÁÌØÎÙÈ ÁÒÈÉ×Ï×.
73 \end{itemize}
74
75  ðÅÒ×ÙÊ ÜÔÁРÒÅÁÌÉÚÕÅÔÓÑ ×ÅÓØÍÁ ÜÌÅÍÅÎÔÁÒÎÏ, Ó ÐÏÍÏÝØÀ ÕÔÉÌÉÔÙ rsync.
76
77 %%% ÆÁÊÌ homesync.sh
78 \begin{verbatim}
79 #!/bin/sh
80
81 mkdir -p /mnt/backups/user/current/$1
82 /usr/bin/rsync -qrlHptS --delete-after \
83    /home/user/$1 /mnt/backups/user/current/$1
84 \end{verbatim}
85
86 %%%ÆÁÊÌ backup0.sh
87 \begin{verbatim}
88 #!/bin/sh
89
90 SYNC=/home/user/homesync.sh
91
92 $SYNC cvsroot
93 $SYNC mail
94 $SYNC downloads
95 $SYNC archive
96 $SYNC work
97 \end{verbatim}
98
99  åÓÔÅÓÔ×ÅÎÎÏ, ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÄÏÌÖÎÁ ÐÒÏÉÓÈÏÄÉÔØ ÒÅÇÕÌÑÒÎÏ. ÷ÙÂÅÒÅÍ ÐÅÒÉÏÄ × 1
100 ÞÁÓ, É ÓÏÓÔÁ×ÉÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ ÚÁÐÉÓØ × ÆÁÊÌ 
101 {\tt /home/user/crontab-backups}:
102 \begin{verbatim}
103 # run 1st backup sequence every hour
104 0 * * * *   /home/user/backup0.sh > /dev/null 2>&1
105 \end{verbatim}
106
107  ôÅÐÅÒØ ÂÕÄÅÍ ÄÅÌÁÔØ ÎÁËÏÐÌÅÎÉÅ ÉÎËÒÅÍÅÎÔÁÌØÎÙÈ ÁÒÈÉ×Ï× ÎÁ ÏÓÎÏ×ÁÎÉÉ
108 ÐÏÌÕÞÅÎÎÏÇÏ ÚÅÒËÁÌÁ. ðÏËÁ ÎÅ ÂÕÄÅÍ ÚÁÔÒÁÇÉ×ÁÔØ ÓÏÄÅÒÖÉÍÏÅ ÁÒÈÉ×Ï× mail,
109 downloads É work --- ÏÇÒÁÎÉÞÉÍÓÑ cvsroot É archive.
110 äÌÑ ÐÒÏÓÔÏÔÙ ÎÅ ÂÕÄÅÍ ÐÒÅÄÐÒÉÎÉÍÁÔØ ÎÉËÁËÉÈ
111 ÕÓÉÌÉÊ ÐÏ ÕÄÁÌÅÎÉÀ ÐÕÓÔÙÈ ÁÒÈÉ×Ï×.
112
113 %%% ÆÁÊÌ mkincremental0.sh
114 \begin{verbatim}
115 #!/bin/sh
116
117 BASE=/mnt/backups/user/
118 ILOGS=$BASE/ilogs/
119 ITARS=$BASE/itars/
120 BTARS=$BASE/btars/
121
122 BASENAME=$1--`date +%Y-%m-%d-%s`
123 TARNAME=$BASENAME.tar
124 LOGNAME=$BASENAME.log
125 LOG0NAME=$1--current.log
126
127 cp $ILOGS/$LOG0NAME $ILOGS/$LOGNAME
128
129 tar --listed-incremental=$ILOGS/$LOGNAME -cjf $ITARS/$TARNAME.bz2 \
130         $BASE/current/$1/
131
132 rm -f $ILOGS/$LOG0NAME
133 cp $ILOGS/$LOGNAME $ILOGS/$LOG0NAME
134 \end{verbatim}
135
136  óËÒÉÐÔ, ËÏÔÏÒÙÊ ÓÏÚÄÁÓÔ ÎÁÍ ÐÅÒ×ÏÎÁÞÁÌØÎÕÀ ÓÔÒÕËÔÕÒÕ ÉÎËÒÅÍÅÎÔÁÌØÎÙÈ
137 ÁÒÈÉ×Ï×:
138
139 %%% ÆÁÊÌ initincremental0.sh
140 \begin{verbatim}
141 #!/bin/sh
142
143 BASE=/mnt/backups/user/
144 ILOGS=$BASE/ilogs/
145 ITARS=$BASE/itars/
146 BTARS=$BASE/btars/
147
148 rm -f $ILOGS/$1-initial.log
149 rm -f $BTARS/$1-base.tar.bz2
150
151 tar --listed-incremental=$ILOGS/$1-initial.log \
152        -cjf $BTARS/$1-base.tar.bz2 \
153        $BASE/current/$1/
154
155 cp $ILOGS/$1-initial.log $ILOGS/$1--current.log
156
157 \end{verbatim}
158
159  óÏÏÔ×ÅÔÓÔ×ÅÎÏ, ÐÅÒÅÄ ÔÅÍ, ËÁË ÎÁÞÁÔØ (ÕÖÅ ÄÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÚÅÒËÁÌÏ), ÍÙ
160 ×ÙÚÙ×ÁÅÍ ÏÄÉΠÒÁÚ ÓÌÅÄÕÀÝÉÊ ÓËÒÉÐÔ (ËÏÔÏÒÙÊ ÐÏÔÏÍ ÐÏÔÒÅÂÕÅÔÓÑ É ÐÒÉ
161 ÒÏÔÁÃÉÑÈ).
162
163 %%% ÆÁÊÌ inittars.sh
164 \begin{verbatim}
165 #!/bin/sh
166
167 BASE=/mnt/backups/user/
168 ILOGS=$BASE/ilogs/
169 ITARS=$BASE/itars/
170 BTARS=$BASE/btars/
171
172 rm -Rf $ILOGS $ITARS $BTARS
173 mkdir -p $ILOGS $ITARS $BTARS
174
175 INIT=/home/user/initincremental0.sh
176
177 $INIT cvsroot
178 $INIT archive
179 \end{verbatim}
180