]> www.wagner.pp.ru Git - sites/csbook.git/blobdiff - chapters/backups.tex
some new scripts
[sites/csbook.git] / chapters / backups.tex
index 7ed696d94b779e29883b66b30e5b28a0130c7f32..330c4cbd4dde141be5873b8128da6f0e3dc9e1d7 100644 (file)
@@ -1,6 +1,9 @@
 
 \section{úÁÂÏÔÁ Ï ÓÏÈÒÁÎÎÏÓÔÉ ÄÁÎÎÙÈ}
 
+% ÔÕÔ ÎÁÄÏ ÂÙ ÏÂÝÉÈ ÓÌÏ× ÐÒÏ ÎÅÏÂÈÏÄÉÍÏÓÔØ backup--Ï×, ÓÔÒÁÛÉÌÏË ÐÒÏ
+% ÐÏÓÌÅÄÓÔ×ÉÑ ÏÔ ÐÏÔÅÒÉ ÄÁÎÎÙÈ, É ÔÏÍÕ ÐÏÄÏÂÎÏÅ.
+
  äÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÓÉÓÔÅÍÙ ÓÏÈÒÁÎÅÎÉÑ ÒÅÚÅÒ×ÎÙÈ ËÏÐÉÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÄÁÎÎÙÈ
 ÔÒÅÂÕÅÔÓÑ ÏÐÒÅÄÅÌÉÔØ:
 \begin{itemize}
@@ -51,7 +54,8 @@
 ÉÓÐÏÌØÚÕÅÔÓÑ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ext3 c --journal-data, É ÏÎ
 ÒÅÁÌÉÚÏ×ÁΠËÁË ÓÏÆÔÏ×ÙÊ RAID--ÍÁÓÓÉ× (mirror) ÉÚ Ä×ÕÈ ÏÄÉÎÁËÏ×ÙÈ ÖÅÓÔËÉÈ
 ÄÉÓËÏ×. ôÁË ÖÅ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ ÕÓÔÒÏÊÓÔ×Ï ÚÁÐÉÓÉ CDRW--ÄÉÓËÏ× (ÎÏ ÎÅÔ
-ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ UDF). æÉÎÁÎÓÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÎÁÛÅÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
+ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ UDF, ÄÁÂÙ ÓÉÔÕÁÃÉÑ ÐÏÈÏÄÉÌÁ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÌÅÎÔÏÞÎÏÇÏ
+ÎÁËÏÐÉÔÅÌÑ). æÉÎÁÎÓÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÎÁÛÅÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
 ÏÇÒÁÎÉÞÅÎÎÙ, ÔÁË ÞÔÏ ÏΠÍÏÖÅÔ ÓÅÂÅ ÐÏÚ×ÏÌÉÔØ ×ÙÄÅÌÉÔØ ÐÏÄ ÒÅÚÅÒ×ÎÏÅ
 ËÏÐÉÒÏ×ÁÎÉÅ ÌÉÛØ 6 ÂÏÌ×ÁÎÏË. ðÒÏÍÁÒËÉÒÕÅÍ ÉÈ ÚÁÒÁÎÅÅ ËÁË ``Backup disk 1'',
 ``Backup disk 2'', ..., ``Backup disk 6''.
 
  ðÅÒ×ÙÊ ÜÔÁРÒÅÁÌÉÚÕÅÔÓÑ ×ÅÓØÍÁ ÜÌÅÍÅÎÔÁÒÎÏ, Ó ÐÏÍÏÝØÀ ÕÔÉÌÉÔÙ rsync.
 
+%%% ÆÁÊÌ homesync.sh
+\begin{verbatim}
+#!/bin/sh
+
+mkdir -p /mnt/backups/user/current/$1
+/usr/bin/rsync -qrlHptS --delete-after \
+   /home/user/$1 /mnt/backups/user/current/$1
+\end{verbatim}
+
+%%%ÆÁÊÌ backup0.sh
+\begin{verbatim}
+#!/bin/sh
+
+SYNC=/home/user/homesync.sh
+
+$SYNC cvsroot
+$SYNC mail
+$SYNC downloads
+$SYNC archive
+$SYNC work
+\end{verbatim}
+
+ åÓÔÅÓÔ×ÅÎÎÏ, ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÄÏÌÖÎÁ ÐÒÏÉÓÈÏÄÉÔØ ÒÅÇÕÌÑÒÎÏ. ÷ÙÂÅÒÅÍ ÐÅÒÉÏÄ × 1
+ÞÁÓ, É ÓÏÓÔÁ×ÉÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ ÚÁÐÉÓØ × ÆÁÊÌ 
+{\tt /home/user/crontab-backups}:
+\begin{verbatim}
+# run 1st backup sequence every hour
+0 * * * *   /home/user/backup0.sh > /dev/null 2>&1
+\end{verbatim}
+
+ ôÅÐÅÒØ ÂÕÄÅÍ ÄÅÌÁÔØ ÎÁËÏÐÌÅÎÉÅ ÉÎËÒÅÍÅÎÔÁÌØÎÙÈ ÁÒÈÉ×Ï× ÎÁ ÏÓÎÏ×ÁÎÉÉ
+ÐÏÌÕÞÅÎÎÏÇÏ ÚÅÒËÁÌÁ. ðÏËÁ ÎÅ ÂÕÄÅÍ ÚÁÔÒÁÇÉ×ÁÔØ ÓÏÄÅÒÖÉÍÏÅ ÁÒÈÉ×Ï× mail,
+downloads É work --- ÏÇÒÁÎÉÞÉÍÓÑ cvsroot É archive.
+äÌÑ ÐÒÏÓÔÏÔÙ ÎÅ ÂÕÄÅÍ ÐÒÅÄÐÒÉÎÉÍÁÔØ ÎÉËÁËÉÈ
+ÕÓÉÌÉÊ ÐÏ ÕÄÁÌÅÎÉÀ ÐÕÓÔÙÈ ÁÒÈÉ×Ï×.
+
+%%% ÆÁÊÌ mkincremental0.sh
+\begin{verbatim}
+#!/bin/sh
+
+BASE=/mnt/backups/user/
+ILOGS=$BASE/ilogs/
+ITARS=$BASE/itars/
+BTARS=$BASE/btars/
+
+BASENAME=$1--`date +%Y-%m-%d-%s`
+TARNAME=$BASENAME.tar
+LOGNAME=$BASENAME.log
+LOG0NAME=$1--current.log
+
+cp $ILOGS/$LOG0NAME $ILOGS/$LOGNAME
+
+tar --listed-incremental=$ILOGS/$LOGNAME -cjf $ITARS/$TARNAME.bz2 \
+        $BASE/current/$1/
+
+rm -f $ILOGS/$LOG0NAME
+cp $ILOGS/$LOGNAME $ILOGS/$LOG0NAME
+\end{verbatim}
+
+ óËÒÉÐÔ, ËÏÔÏÒÙÊ ÓÏÚÄÁÓÔ ÎÁÍ ÐÅÒ×ÏÎÁÞÁÌØÎÕÀ ÓÔÒÕËÔÕÒÕ ÉÎËÒÅÍÅÎÔÁÌØÎÙÈ
+ÁÒÈÉ×Ï×:
+
+%%% ÆÁÊÌ initincremental0.sh
+\begin{verbatim}
+#!/bin/sh
+
+BASE=/mnt/backups/user/
+ILOGS=$BASE/ilogs/
+ITARS=$BASE/itars/
+BTARS=$BASE/btars/
+
+rm -f $ILOGS/$1-initial.log
+rm -f $BTARS/$1-base.tar.bz2
+
+tar --listed-incremental=$ILOGS/$1-initial.log \
+       -cjf $BTARS/$1-base.tar.bz2 \
+       $BASE/current/$1/
+
+cp $ILOGS/$1-initial.log $ILOGS/$1--current.log
+
+\end{verbatim}
+
+ óÏÏÔ×ÅÔÓÔ×ÅÎÏ, ÐÅÒÅÄ ÔÅÍ, ËÁË ÎÁÞÁÔØ (ÕÖÅ ÄÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÚÅÒËÁÌÏ), ÍÙ
+×ÙÚÙ×ÁÅÍ ÏÄÉΠÒÁÚ ÓÌÅÄÕÀÝÉÊ ÓËÒÉÐÔ (ËÏÔÏÒÙÊ ÐÏÔÏÍ ÐÏÔÒÅÂÕÅÔÓÑ É ÐÒÉ
+ÒÏÔÁÃÉÑÈ).
+
+%%% ÆÁÊÌ inittars.sh
+\begin{verbatim}
+#!/bin/sh
+
+BASE=/mnt/backups/user/
+ILOGS=$BASE/ilogs/
+ITARS=$BASE/itars/
+BTARS=$BASE/btars/
+
+rm -Rf $ILOGS $ITARS $BTARS
+mkdir -p $ILOGS $ITARS $BTARS
+
+INIT=/home/user/initincremental0.sh
+
+$INIT cvsroot
+$INIT archive
+\end{verbatim}