~giuseppeterrasi-deactivatedaccount/wiki-ubuntu-it/help-repo

« back to all changes in this revision

Viewing changes to www/8.04/ubuntu/serverguide/it/backups-shellscripts-rotation.html

  • Committer: Leo Iannacone
  • Date: 2011-04-30 16:06:52 UTC
  • Revision ID: l3on@ubuntu.com-20110430160652-p5rufesrmfuzge6k
Creato;
Aggiunti 10.10 - 10.04 - 8.04;
Aggiunti index;
Aggiunti css base;
Aggiunti favicon.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
3
<html xmlns="http://www.w3.org/1999/xhtml">
 
4
  <head>
 
5
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Rotazione degli archivi</title><link rel="stylesheet" href="../../common/ubuntu-book.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.72.0" /><link rel="start" href="index.html" title="Guida a Ubuntu server" /><link rel="up" href="backups.html" title="Capitolo 16. Backup" /><link rel="prev" href="backup-shellscripts.html" title="Script shell" /><link rel="next" href="bacula.html" title="Bacula" /><link rel="copyright" href="ln-legal.html" title="Riconoscimenti e licenza" />
 
6
        
 
7
                <!--[if lte IE 6]>
 
8
                        <link rel="stylesheet" href="../../common/ubuntu-book_ie6.css" />
 
9
                <![endif]-->
 
10
        
 
11
    </head>
 
12
  <body>
 
13
    <script xmlns="" language="JavaScript" type="text/javascript" src="http://help.ubuntu-it.org/img/ubuntu-it.js"></script>
 
14
    <div id="container">
 
15
      <div id="contenuto">
 
16
        <div id="topNav">
 
17
          <div class="header_top_bar"></div>
 
18
          <div id="sfondobarra">
 
19
            <div id="barra">
 
20
              <script type="text/javascript">pulsanti("help")</script>
 
21
            </div>
 
22
          </div>
 
23
        </div>
 
24
        <div class="inside_container">
 
25
          <div class="sect1" lang="it" xml:lang="it">
 
26
            <div class="titlepage">
 
27
              <div>
 
28
                <div>
 
29
                  <h2 class="title" style="clear: both"><a id="backups-shellscripts-rotation"></a>Rotazione degli archivi</h2>
 
30
                </div>
 
31
              </div>
 
32
            </div>
 
33
            <p>Lo script in <a href="backup-shellscripts.html" title="Script shell">la sezione chiamata «Script shell»</a> consente solamente sette archivi differenti. Per un server i cui dati non cambiano molto spesso questo può essere sufficiente, ma se il server dispone di grossi quantitativi di dati è necessario avere uno schema di rotazione degli archivi più efficiente.</p>
 
34
            <div class="sect2" lang="it" xml:lang="it">
 
35
              <div class="titlepage">
 
36
                <div>
 
37
                  <div>
 
38
                    <h3 class="title"><a id="backups-nfs-rotation"></a>Rotazione degli archivi NFS</h3>
 
39
                  </div>
 
40
                </div>
 
41
              </div>
 
42
              <p>In questa sezione lo script verrà modificato per implementare uno schema di rotazione del tipo progenitore-genitore-figlio (mensile-settimanale-giornaliero).</p>
 
43
              <div class="itemizedlist">
 
44
                <ul type="disc">
 
45
                  <li>
 
46
                    <p>La rotazione eseguirà un backup <span class="emphasis"><em>giornaliero</em></span> dalla domenica al venerdì.</p>
 
47
                  </li>
 
48
                  <li>
 
49
                    <p>Il sabato, viene eseguito un backup <span class="emphasis"><em>settimanale</em></span> consentendo di avere così quattro backup settimanali al mese.</p>
 
50
                  </li>
 
51
                  <li>
 
52
                    <p>Il backup <span class="emphasis"><em>mensile</em></span> è eseguito il primo giorno del mese, ruotando due backup mensili se il mese è pari o dispari.</p>
 
53
                  </li>
 
54
                </ul>
 
55
              </div>
 
56
              <p>Questo è il nuovo script:</p>
 
57
              <pre class="programlisting">
 
58
#!/bin/bash
 
59
####################################
 
60
#
 
61
# Backup to NFS mount script with
 
62
# grandfather-father-son rotation.
 
63
#
 
64
####################################
 
65
 
 
66
# Di cosa fare il backup. 
 
67
backup_files="/home /var/spool/mail /etc /root /boot /opt"
 
68
 
 
69
# Dove fare il backup.
 
70
dest="/mnt/backup"
 
71
 
 
72
# Variabili per il nome del file dell'archivio
 
73
day=$(date +%A)
 
74
hostname=$(hostname -s)
 
75
 
 
76
# Trovare quale settimana del mese è (1-4).
 
77
day_num=$(date +%d)
 
78
if (( $day_num &lt;= 7 )); then
 
79
        week_file="$hostname-week1.tgz"
 
80
elif (( $day_num &gt; 7 &amp;&amp; $day_num &lt;= 14 )); then
 
81
        week_file="$hostname-week2.tgz"
 
82
elif (( $day_num &gt; 14 &amp;&amp; $day_num &lt;= 21 )); then
 
83
        week_file="$hostname-week3.tgz"
 
84
elif (( $day_num &gt; 21 &amp;&amp; $day_num &lt; 32 )); then
 
85
        week_file="$hostname-week4.tgz"
 
86
fi
 
87
 
 
88
# Trovare se il mese è pari o dispari.
 
89
month_num=$(date +%m)
 
90
month=$(expr $month_num % 2)
 
91
if [ $month -eq 0 ]; then
 
92
        month_file="$hostname-month2.tgz"
 
93
else
 
94
        month_file="$hostname-month1.tgz"
 
95
fi
 
96
 
 
97
# Creare il file dell'archivio.
 
98
if [ $day_num == 1 ]; then
 
99
        archive_file=$month_file
 
100
elif [ $day != "Saturday" ]; then
 
101
        archive_file="$hostname-$day.tgz"
 
102
else 
 
103
        archive_file=$week_file
 
104
fi
 
105
 
 
106
# Stampa messaggio di inizio backup.
 
107
echo "Esecuzione del backup di $backup_files in $dest/$archive_file"
 
108
date
 
109
echo
 
110
 
 
111
# Creazione del backup con tar.
 
112
tar czf $dest/$archive_file $backup_files
 
113
 
 
114
# Stampa messaggio finale.
 
115
echo
 
116
echo "Backup completato"
 
117
date
 
118
 
 
119
# Elenco dei file in $dest per controllarne la dimensione.
 
120
ls -lh $dest/
 
121
</pre>
 
122
              <p>Lo script può essere eseguito attraverso gli stessi metodi descritti in <a href="backup-shellscripts.html#backup-executing-shellscript" title="Eseguire lo script">la sezione chiamata «Eseguire lo script»</a>.</p>
 
123
              <p>È buona pratica conservare i dispositivi contenenti backup in un posto sicuro, in caso di disastri. Nello script di esempio, il dispositivo di backup consiste di un server con una condivisione NFS. Portare il server NFS in un'altra locazione non è praticabile, ma in base alla velocità di connessione potrebbe essere utile copiare i file attraverso un collegamento WAN verso un server in un'altra posizione.</p>
 
124
              <p>Un'altra opzione potrebbe essere il copiare l'archivio in un disco esterno che può essere portato in altre luoghi. Dato che i prezzi dei dischi esterni è in continuo calo, potrebbe essere fattibile usare due dischi per ogni livello di archivio, consentendo così di avere un disco esterno collegato al server di backup e un altro in un'altra locazione.</p>
 
125
            </div>
 
126
            <div class="sect2" lang="it" xml:lang="it">
 
127
              <div class="titlepage">
 
128
                <div>
 
129
                  <div>
 
130
                    <h3 class="title"><a id="backup-shellscript-tapedrive"></a>Dispositivi a nastro</h3>
 
131
                  </div>
 
132
                </div>
 
133
              </div>
 
134
              <p>Invece di usare una condivisione NFS, è possibile utilizzare un dispositivo a nastro collegato al server. Un dispositivo di questo tipo semplifica la rotazione degli archivi e il portare il dispositivo stesso in un'altra locazione.</p>
 
135
              <p>Quando viene usato un dispositivo a nastro, la parte relativa al nome del file non è necessaria in quanto la data è inviata direttamente al dispositivo, ma sono necessari alcuni comandi per manipolare il nastro. In particolare <span><strong class="application">mt</strong></span>, un'utilità di controllo nastri magnetici parte del pacchetto <span><strong class="application">cpio</strong></span>.</p>
 
136
              <p>Questo è lo script modificato per l'uso di un dispositivo a nastro:</p>
 
137
              <pre class="programlisting">
 
138
#!/bin/bash
 
139
####################################
 
140
#
 
141
# Backup to tape drive script.
 
142
#
 
143
####################################
 
144
 
 
145
# Di cosa fare il backup. 
 
146
backup_files="/home /var/spool/mail /etc /root /boot /opt"
 
147
 
 
148
# Dove fare il backup.
 
149
dest="/dev/st0"
 
150
 
 
151
# Stampa messaggi di inizio.
 
152
echo "Backu di $backup_files in $dest"
 
153
date
 
154
echo
 
155
 
 
156
# Assicurarsi che il nastro sia riavvolto del tutto.
 
157
mt -f $dest rewind
 
158
 
 
159
# Backup dei file con tar.
 
160
tar czf $dest $backup_files
 
161
 
 
162
# Riavvolgere ed espellere il nastro.
 
163
mt -f $dest rewoffl
 
164
 
 
165
# Stampa messaggio finale.
 
166
echo
 
167
echo "Backup completato"
 
168
date
 
169
</pre>
 
170
              <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
 
171
                <table border="0" summary="Note">
 
172
                  <tr>
 
173
                    <td rowspan="2" align="center" valign="top" width="25">
 
174
                      <img alt="[Nota]" src="../../images/admon/note.png" />
 
175
                    </td>
 
176
                    <th align="left"></th>
 
177
                  </tr>
 
178
                  <tr>
 
179
                    <td align="left" valign="top">
 
180
                      <p>Il nome del device predefinito per un dispositivo a nastro SCSI è <code class="filename">/dev/st0</code>, utilizzare il percorso al device appropriato per il proprio sistema.</p>
 
181
                    </td>
 
182
                  </tr>
 
183
                </table>
 
184
              </div>
 
185
              <p>Ripristinare i dati da un dispositivo a nastro funziona allo stesso modo di ripristinare da un file. Riavvolgere il nastro e usare il percorso del dispositivo al posto del percorso al file. Per esempio, per ripristinare il file <code class="filename">/etc/hosts</code> in <code class="filename">/tmp/etc/hosts</code>:</p>
 
186
              <pre class="screen">
 
187
<span><strong class="command">mt -f /dev/st0 rewind</strong></span>
 
188
<span><strong class="command">tar -xzf /dev/st0 -C /tmp etc/hosts</strong></span>
 
189
</pre>
 
190
            </div>
 
191
          </div>
 
192
        </div>
 
193
        <div class="footer_container" id="footer_container">
 
194
          <div class="navfooter">
 
195
            <hr />
 
196
            <table width="100%" summary="Navigation footer">
 
197
              <tr>
 
198
                <td width="40%" align="left"><a accesskey="p" href="backup-shellscripts.html"><img src="../../images/navig/prev.gif" alt="Indietro" /></a> </td>
 
199
                <td width="20%" align="center">
 
200
                  <a accesskey="u" href="backups.html">
 
201
                    <img src="../../images/navig/up.gif" alt="Risali" />
 
202
                  </a>
 
203
                </td>
 
204
                <td width="40%" align="right"> <a accesskey="n" href="bacula.html"><img src="../../images/navig/next.gif" alt="Avanti" /></a></td>
 
205
              </tr>
 
206
              <tr>
 
207
                <td width="40%" align="left" valign="top">Script shell </td>
 
208
                <td width="20%" align="center">
 
209
                  <a accesskey="h" href="index.html">
 
210
                    <img src="../../images/navig/home.gif" alt="Partenza" />
 
211
                  </a>
 
212
                </td>
 
213
                <td width="40%" align="right" valign="top"> Bacula</td>
 
214
              </tr>
 
215
            </table>
 
216
          </div>
 
217
        </div>
 
218
        <div id="footer_it">
 
219
          <div class="wrapper_it">
 
220
                                        © 2005 - 2008 <a href="http://www.canonical.com">Canonical Ltd.</a> Ubuntu e Canonical sono marchi registrati da Canonical Ltd.<br /><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/deed.it"><img alt="Licenza Creative Commons" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/2.5/it/80x15.png" /></a> Questa opera è pubblicata sotto una <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/legalcode">licenza Creative Commons</a></div>
 
221
        </div>
 
222
        <div id="bg-right"> </div>
 
223
        <div id="bottom-right"> </div>
 
224
      </div>
 
225
      <div id="bg-left"> </div>
 
226
      <div id="bottom-left"> </div>
 
227
    </div>
 
228
  </body>
 
229
</html>