# backup su hard disc esterno

## fortek

Ciao a tutti

espongo il problema nella speranza possiate aiutarmi.

Sono un semplice appasionato di linux (ho mosso i prmi passi con ubuntu anni fa) e dove lavoro abbiamo un computer-server che gira con gentoo.

Non conosco molto gentoo ed il programmatore che l'ha messo su ora non è più rintracciabile.

Su questo server era programmato un backup quotidiano delle principali cartelle della rete aziendale su un hard disc esterno collegato al pc-server. Una email quotidiana mi confermava l'avvenuto backup.

L'email non mi arriva più ed il backup non viene più fatto.

Attendo vostri preziosi consigli

grazie mille

----------

## bi-andrea

Può sembrare banale, però sul disco esterno ti sei sicerato se è pieno?

----------

## fortek

Ho scoperto che niente è banale   :Wink:  , hai fatto bene a chiedere, comunque avevo controllato.

Il dubbio a cominciato a venirmi non vedendo più le email..........pensavo fosse solo un problema di invio , invece..........

Ora dell'email  e della programmazione automatica del backup mi interessa fino ad un certo punto.

L'importante è riuscire a fare il backup quotidiano, anche se dovessi lanciare , io manualemnte ogni sera il comando.

Ovvio se si riuscisse a rimetterlo automatico tanto meglio........

Qualche idea ?

----------

## djinnZ

A naso direi di fare le seguenti verifiche

```
emerge -pv amanda
```

```
emerge -pv bacula
```

per vedere cosa ha usato o 

```
eix -I app-backup/*
```

 eventualmente riporta 

```
...
```

 se c'è qualcosa (in citazione vedrai come riportare correttamente i codici, le risposte raffazzonate non hanno seguito perché sono mancanza di rispetto). Almeno si inizia a capire cosa è stato usato.

Dalle tue parole mi permetto di intuire che il sistema sia abbastanza indietro con gli aggiornamenti quindi non è il caso di toccarlo alla leggera, se eix non c'è non provare ad installarlo.

In alternativa 

```
ls /var/db/pkg/app-backup
```

 potrebbe fornire delle prime informazioni.

Per seconda cosa andrei a spulciare in /var/log per eventuali errori.

Eventualmente un 

```
Runlevel: default

 xxx                                                                                              [  started  ]

 xxxxxxx                                                                                          [  stopped  ]

...
```

 potrebbe aiutare vedere cosa è stato configurato e cosa si è bloccato.

Considerando che il sistema è senza manutenzione è possibile che la partizione con /var (o con /tmp, la root unica) sia piena e quindi amanda (se è lui) ha smesso di funzionare (almeno questo mi ricordo, non lo guardo più dalla 1.2. o giù di li).

Un clean su /var/tmp e /tmp non dovrebbe far male 

Se non hai la password di root la tecnica di recupero è il solito avvio con live e modifica di /etc/shadow. Sconsigliabile la via con il boot usando init=/bin/sh o simili senza conoscere la macchina ed il sistema.

Volendo "pensare a male", visto che ti ha configurato una macchina di backup senza neppure dirti come andare a verificare i log, una possibilità, nella mia modestissima esperienza in materia di malversazioni tipiche dei "tecnici" (del piffero, da sterminare tutti, dai presuntuosi bastardi alla Monti all'idiota che viene a fingere di fare manutenzione sulla caldaia), è che il furbetto/mentecatto abbia avviato il backup tramite cron, impostando una scadenza, di modo che periodicamente sia richiesta la sua presenza per riavviare. Ultima cosa da verificare.

```
eix -I cron
```

o

```
ls /var/db/sys-process | grep cron
```

per capire con cosa abbiamo a che fare. Riportare

```
ls /etc/cron.daily/
```

 potrebbe dare qualche indizio, od anche riportare il contenuto di /etc/crontab. Inutile dire che se è questa la strada e sai usare cron il ripristino è banale. Chi ricorre a simili trucchetti di bassa lega in genere non è tanto scaltro da impostare una rimozione automatica di tutti i comandi impostati (forse anche perché non li conosce realmente) ma si limita a far cancellare la riga di avvio.

Un clean su /var/tmp e /tmp non dovrebbe far male, come anche un clean su /var/log ma... possibile che ci sia qualcosa di utile (dai log potresti capire qual è il comando usato per il backup) ed un eventuale script potrebbe essere su area temporanea, si fanno di queste idiozie, sempre "pensando a male".

gentoo per policy non stravolge i file di configurazione e gli assetti di path come certe pseudo distribuzioni truffaldine (RH) e non usano strani orpelli per rendere linux una caricatura di windozz come ubuntu, quindi è abbastanza facile riferirsi alla documentazione ufficiale degli applicativi.

Di contro potrebbe essere che chi ci ha messo le mani ha fatto un suo script init ed in tal caso vedo poco da rivedere.

Non ho idea della tua situazione ma ti invito a valutare l'evidente violazione ex all. B p. 16/17 dlgs 196/2003 e non solo del punto 18 che ti poni.  :Wink: 

Personalmente, per il futuro, andrei a predisporre una installazione ex novo tentando di portarmi dietro solo le effettive modifiche per far funzionare il backup (se è stato usato amanda basta portarsi dietro i suoi file di configurazione ed impostare il giusto ip nella rete, veramente semplice), fatto questo il sistema sarebbe da aggiornare almeno con frequenza mensile per evitare stravolgimenti, casomai utilizzando un chroot per verificare prima di installare a casaccio. Se ve la siete tenuta è perchè una macchina gentoo difficilmente crea problemi o sorprese (del genere ritrovarsi con la macchina inaccessibile dopo l'aggiornamento grazie all'intervento di NM del cavolo come mi è capitato per cessos) ma comunque va manutenuta (ringrazia i fossili accademici come Rodotà e le tipiche perversioni burocratiche da eurocoglioni, tutte al servizio dell'obsolescenza programmata e dei porci comodi di M$ AZZ$oft & C).

----------

## fortek

 *djinnZ wrote:*   

> A naso direi di fare le seguenti verifiche
> 
> ```
> emerge -pv amanda
> ```
> ...

 

Anzitutto grazie per la disponibilità

Ora vedo che mi hai dato parecchia carne al fuoco, e per non fare confusione (io) vedrò di prendere in considerazione un po per volta tutto il materiale che mi hai dato .

La password la ho nessun problema, devo dire che il tecnico che ha eseguito il tutto era molto disponibile è mi ha sempre spiegato/aiutato senza problemi. Il fatto è che non lavoro più in Italia e non so più come rintracciarlo (ero diventato nel tempo abbastanza indipendente e non ci sentivamo più da parecchio tempo)

Partiamo con ordine.

Il primo comando che mi hai consigliato di eseguire (emerge -pv amanda) trova 5 pacchetti.

Dimmi se e come devo elencarti tutto ciò che è scritto a terminale (devo fare tutto a mano su carta poichè il sever ed il pc con cui vi scrivo sono distanti e ora come ora non ho un portatile da affiancare)

Chiedo venia in anticipo se commetterò errori nel dare informazioni (sono qui per imparare   :Wink:  )

----------

## sabayonino

se riesci ad accedere ad una connessione ssh al server  puoi fare anche tutto da casa o dall'altra parte del mondo   :Wink: 

non è necessario che il server sia vicino (tranne che per manutenzioni fisiche etc ovviamente)

se riesci ad ottenere un accesos ssh dal portatile o altro dispositivo basta un copia incolla dell'output

----------

## fortek

Domanda : non ho capito cosa dovrei guardare in citazione per riportare corretamente i codici

----------

## djinnZ

Rileggi perché mi ero dimenticato qualcosa ed ho modificato il messaggio. Togli la citazione, per intero, di quello che ho scritto.

Scusa non puoi agire via ssh o putty (su windozz) e fare copia e incolla?

L'output lo si riporta in genere con il tag 

```
[code="comando lanciato"]output del programma[/code]
```

In ogni caso se c'è un 

```
[ebuild  N     ]
```

 davanti al nome del pacchetto non è installato. Dato che gli altri saranno sicuramente le dipendenze vuol dire che non è installato, vai avanti con le altre verifiche.

Sei sempre su un sistema linux.  :Wink: 

----------

## fortek

 *sabayonino wrote:*   

> se riesci ad accedere ad una connessione ssh al server  puoi fare anche tutto da casa o dall'altra parte del mondo  
> 
> non è necessario che il server sia vicino (tranne che per manutenzioni fisiche etc ovviamente)
> 
> se riesci ad ottenere un accesos ssh dal portatile o altro dispositivo basta un copia incolla dell'output

 

Se hai tempo e voglia di spiegarmi come fare ci provo subito !!!!   :Smile: 

----------

## fortek

Ok ora piano piano mi stanno ritornando in mente le "lezioni" che sbirciavo quando il tecnico operava :

ora installo (o meglio lancio) putty e provo a collegarmi così non devo fare avanti-indietro

----------

## fortek

 *djinnZ wrote:*   

> Rileggi perché mi ero dimenticato qualcosa ed ho modificato il messaggio. Togli la citazione, per intero, di quello che ho scritto.
> 
> Scusa non puoi agire via ssh o putty (su windozz) e fare copia e incolla?
> 
> L'output lo si riporta in genere con il tag 
> ...

 

Cominciamo :

```
 emerge -pv amanda
```

Risultato :

```
These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N    ] sys-block/mtx-1.2.18  164 kB

[ebuild  N    ] sci-visualization/gnuplot-4.2.3-r2  USE="readline -X -doc -emacs -gd -ggi -latex -pdf -plotutils -svga -wxwindows -xemacs" 2,775 kB

[ebuild  N    ] app-arch/mt-st-0.9b  36 kB

[ebuild  N    ] app-arch/dump-0.4.41  USE="readline -ermt -static" 277 kB

[ebuild  N    ] app-backup/amanda-2.4.5  USE="berkdb gdbm samba -debug -xfs" 1,506 kB

Total: 5 packages (5 new), Size of downloads: 4,756 kB

```

----------

## fortek

```
emerge -pv bacula
```

risposta:

```
These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N    ] app-arch/mt-st-0.9b  36 kB

[ebuild  N    ] sys-block/mtx-1.2.18  164 kB

[ebuild  N    ] app-backup/bacula-2.4.1-r1  USE="ipv6 python readline ssl tcpd -X -bacula-clientonly -bacula-console -bacula-nodir -bacula-nosd -doc -gnome -logrotate -logwatch -mysql -postgres -qt4 -sqlite -sqlite3 -static -wxwindows" 3,021 kB

Total: 3 packages (3 new), Size of downloads: 3,220 kB

```

Aspetto che verifichi intanto questi per continuare

grazie

----------

## Onip

nè bacula nè amanda sono installati (con portage, almeno). quello lo puoi vedere dalla N prima del nome (New). Ci fosse stata una R (replace) o una U (update), al contrario, avrebbe significato che erano presenti sul sistema.

----------

## fortek

 *Onip wrote:*   

> nè bacula nè amanda sono installati (con portage, almeno). quello lo puoi vedere dalla N prima del nome (New). Ci fosse stata una R (replace) o una U (update), al contrario, avrebbe significato che erano presenti sul sistema.

 

Ok nuova cosa che imparo .

Allora proseguo:

```
 eix -I app-backup/*

-bash: eix: command not found

```

```
 cat /etc/init.d/local:

cat: /etc/init.d/local:: No such file or directory

```

```
 rc-status

Runlevel: default

 acucorp                                                                                                         [ started  ]

 local                                                                                                           [ started  ]

 net.eth0                                                                                                        [ started  ]

 netmount                                                                                                        [ started  ]

 ntp-client                                                                                                      [ started  ]

 samba                                                                                                           [ started  ]

 sshd                                                                                                            [ started  ]

 syslog-ng                                                                                                       [ started  ]

 vixie-cron                                                                                                      [ started  ]
```

Dopo proseguirò con il resto

----------

## sabayonino

io per prima cosa controllerei dove è montato sto fantomatico HDD esterno

```
# mount
```

oppure 

```
# cat /etc/fstab
```

e se localizzato controllarne il contenuto/capacità residua

```
# df -h /dev/{dispositivo_individuato_o_punto_di_montaggio_hdd_esterno}
```

o per vedere TUTTO :

```
# df -h
```

il backup potrebbe essere fatto semplicemnete con un rsync o un rsnapshot/rdiff-backup oppure un tarball e eseguito tramite cron

controllare il cron di root :

```
# cron -u root -l
```

e

```
# cat /etc/crontab
```

e  ancora controllare quali script sono all'interno delle cartelle 

```
# ls /etc/cron.{d,hourly,daily,weekly,monthly}
```

----------

## fortek

Ecco qui i risultati :

Dove è montato 

```

/dev/md2 on / type ext3 (rw,noatime)

proc on /proc type proc (rw,nosuid,nodev,noexec)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw,nosuid,noexec)

shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

```

```

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed; notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pa   ss>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#/dev/BOOT              /boot           ext2            noauto,noatime  1 2

/dev/md2                /               ext3            noatime         0 1

/dev/md1                none            swap            sw              0 0

/dev/cdrom              /mnt/cdrom      audo            noauto,ro       0 0

#/dev/fd0               /mnt/floppy     auto            noauto          0 0

# DISCO USB

/dev/sdc1               /mnt/usbesterno     vfat            noauto,user,exec,syn   c     0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec    0    0

```

Contenuto/capacità

```

# df -h /dev/sdc1

Filesystem            Size  Used Avail Use% Mounted on

udev                   10M  168K  9.9M   2% /dev

```

Cron di root

```

cron -u root -l

cron: invalid option -- u

usage:  cron [-n] [-x [ext,sch,proc,pars,load,misc,test,bit]]

```

```

cat /etc/crontab

# for vixie cron

#

# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $

#

#

# Global variables

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly

0  *  * * *     root    rm -f /var/spool/cron/lastrun/cron.hourly

1  3  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily

15 4  * * 6     root    rm -f /var/spool/cron/lastrun/cron.weekly

30 5  1 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly

*/10  *  * * *  root    test -x /usr/sbin/run-crons && /usr/sbin/run-crons

59 23  * * *    root    /root/backup.sh

```

Script

```

ls /etc/cron.{d,hourly,daily,weekly,monthly}

/etc/cron.d:

/etc/cron.daily:

makewhatis  slocate

/etc/cron.hourly:

/etc/cron.monthly:

/etc/cron.weekly:

```

attendo vs indicazioni su come procedere

grazie

----------

## djinnZ

Posta il contenuto /root/backup.sh questo è lo script del backup.

Puoi anche provare a lanciarlo e vedere cosa succede.

----------

## fortek

 *djinnZ wrote:*   

> Posta il contenuto /root/backup.sh questo è lo script del backup.
> 
> Puoi anche provare a lanciarlo e vedere cosa succede.

 

Che comando devo lanciare ?

```

root/backup.sh

```

cosi mi da : 

```

-bash: root/backup.sh: No such file or directory

```

----------

## sabayonino

[edit] c'è un errore di battitura nella riga in /etc/fstab relativa al mount del disco

```
/dev/sdc1               /mnt/usbesterno     vfat            noauto,user,exec,syn   c     0 0 
```

la "c" è andata per gli affari suoi 

correggi in

```
/dev/sdc1               /mnt/usbesterno     vfat            noauto,user,exec,sync     0 0
```

esegui lo script che credo (annche se non ho ancora visto il contenuto dello script) controlli anche il mount del disco

**** 

vediamo il contenuto dello script :

```
# cat /root/backup.sh 
```

per eseguirlo :

```
# bash /root/backup.sh
```

il backup secondo cron dovrebbe essere eseguito tutti i giorni alle 23:59 automaticamente

resta solo da vedere se nello script c'è qualche errore

PS : l'HDD esterno risulta praticamente vuoto (o quasi)

puoi elencarne il contenuto ? anche se non mi sembra sia montato in /dev/sdc1  secondo l'output di mount

```
/dev/md2 on / type ext3 (rw,noatime)

proc on /proc type proc (rw,nosuid,nodev,noexec)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)

udev on /dev type tmpfs (rw,nosuid)

devpts on /dev/pts type devpts (rw,nosuid,noexec)

shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85) 
```

potresti provare a montarlo in manuale con

```
# mount /dev/sdc1
```

riportare eventuali errori ed in caso contrario avviare lo script (ma prima è meglio vederne il contenuto)

PPS : la root di sistema è montata su un array raid

----------

## fortek

Ok, ho capito che devo correggere la c di sync, ma perdonami non ho capito come lanciare lo script...

Ho fatto questo ma credo proprio sia sbagliato

```

 /dev/sdc1               /mnt/usbesterno     vfat            noauto,user,exec,sync     0 0

-bash: /dev/sdc1: Permission denied

```

****

Contenuto dello script :

```

# !/bin/sh

# Questo è uno script che fa il backup di una cartella

# e lo gestisce con la regola dei giorni della settimana

# fa una copia per ogni giorno della settimana e sostituisce

# quelli della settiaman prima. es. se oggi è lunedì il backup

# viene copiato nella cartella 'lunedì' sovrascrivendo il

# backup del lunedì precedente

# Inoltre si può attivare la modalita 'annuale' che ogni

# primo del mese fa una copia ulteriore in una cartella

# con il nome del mese con lo stesso sistema per quello

# dei giorni della settimana

# La cartella che contiene la cartella di cui vogliamo

# fare il backup

folder_up='/home/admin/'

# Cartella di cui fare il backup

folder_from='samba/'

# Posizione dove fare la copia

folder_to='/mnt/usbesterno/'

# Formato del file di backup

# viene aggiunto al nome del file compresso

formato=`date +%Y_%m_%d_%H_%M`

# Attiva Copia Mensile

monthly=true

#indicare il giorno del mese (1-31)

# in cui deve essere fatto il backup mensile

month_day=1

# File per il log

log='/root/backup.log'

echo 2>> $log

esito="`date "+%Y-%m-%d %H:%M"`"

esito="${esito} - "

clear

oggi=`date +%A`

cur_day=`date +%d`

is_the_date=false

esito_giorno=false

esito_mese=false

###########################################################################

############     COPIA DI TUTTI I GIORNI       ############################

###########################################################################

# se la caretella non c'è, la creo

if !(test -d ${folder_to}${oggi}); then

        mkdir ${folder_to}${oggi}

fi

# se la cartella non c'è ancora metto nel log l'errore ed esco

if !(test -d ${folder_to}${oggi}); then

        esito="${esito} Impossibile creare la cartella giorno"

        echo $esito >> $log

        echo $esito | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxx@gmail.com

        echo $esito | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com

        exit

fi

# mi sposto nella cartella dove deve andare il backup

oggi=$oggi/

cd ${folder_to}${oggi}

# se c'è un backup vecchio lo rinomino in old.bz2

if test -f tmp*.bz2; then

        mv tmp*.bz2 old.bz2

fi

# mi sposto nella cartella superiore a quella da backuppare

cd ${folder_up}

# creo il file backup direttamente nella cartella di destinazione

tar -cjf ${folder_to}${oggi}tmp_${formato}.bz2 ${folder_from}

# mi sposto nella cartella dove dovrebbe esserci il nuovo file per controllare

cd ${folder_to}${oggi}

# se il file c'è

# imposto a true la var esito_giorno ed elimino l'eventuale file old.bz2

if test -f tmp_${formato}.bz2; then

        esito_giorno=true

        if test -f old.bz2;     then

                rm old.bz2

        fi

fi

# definisco la frase da scrivere nel log

if [ $esito_giorno ]; then

        esito="${esito} Copia del GIORNO avvenuta con successo"

else

        esito="${esito} ERRORE: Copia del GIORNO non avvenuta"

fi

echo $esito >> $log

echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@gmail.com

echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@xxx.com

###########################################################################

############     COPIA MENSILE                  #######################################

###########################################################################

# se è attivata la copia mensile, siamo nel giorno indicato e l'esito della

# copia giornaliera è andata bene

if [ "$cur_day" = "$month_day" ]; then

   is_the_date=true

fi

if ( ${monthly}  &&  ${is_the_date} &&  ${esito_giorno} ); then

        esito="`date "+%Y-%m-%d %H:%M"`"

        esito="${esito} - "

        # prendo il mese corrente

        mese=`date +%B`

        # se non c'è la cartella provo a crearla

        if !(test -d ${folder_to}${mese}); then

                mkdir ${folder_to}${mese}

        fi

        # se la cartella c'è entro nella cartella e se c'è un vecchio backup

        # lo rinomino in old.bz2 e

        # COPIO il backup giornaliero nella cartella del mese

        # se invece la cartella  non c'è ancora metto nel log l'errore ed esco

        if (test -d ${folder_to}${mese}); then

                cd $folder_to${mese}

                if test -f tmp*.bz2; then

                mv tmp*.bz2 old.bz2

                fi

                cd $folder_to

                cp ${oggi}tmp_${formato}.bz2 $mese/

        else

                esito="${esito} Impossibile creare la cartella mese"

                echo $esito >> $log

                echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@xxx.com

                echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@xxx.com

           exit

        fi

        # entro nella cartella del mese dove dovrebbe esserci il file per controllare

        cd ${folder_to}${mese}

        # se c'è

        # imposto a true la var esito_mese ed elimino l'eventuale file old.bz2

        if test -f tmp_${formato}.bz2; then

                   esito_mese=true

                        if test -f old.bz2;  then

                                rm old.bz2

                        fi

        fi

        if [ $esito_mese ]; then

           esito="${esito} Copia del MESE avvenuta con successo"

        else

           esito="${esito} ERRORE: Copia del MESE non avvenuta"

        fi

        echo $esito >> $log

        echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@gmail.com

        echo $esito | mail -a "From:xxx@xxx.it" -s "Log Server Saka Backup " xxx@xxx.com

fi

#echo DONE

```

Dentro il disco esterno ci sono 6 cartelle (noni della settimana in inglese), 1 cartella (July) , 1 cartella .trash-1000

All'interno delle cartelle ci sono file con estensione bz2

grazie mille per la disponibilità

dimmi come procedere (non ho ancora esegutio lo script e non ho ancora provato a montare L' HDD esterno)Last edited by fortek on Wed Dec 11, 2013 1:25 pm; edited 1 time in total

----------

## sabayonino

ti invito a leggere meglio il mio post precedente

la modifica la devi apportare al file utilizzando un editor di testo (nano ad esempio)

```
# nano -w /etc/fstab
```

salvando poi il contenuto con CTRL+O ed uscendo dall'editor con CTRL+X

Visto che leggi il contenuto del disco vuol dire che ora è montato, ma per essere pignoli , rimontalo

```
# mount -o remount /dev/sdc1
```

puoi provare lo script (se tutto è OK dovrebbe partire ogni giorno alle 23:59 come indicato da cron e dal commenti dello script)

```
# bash /root/backup.sh
```

il backup come supponevo è un semplice tar compresso della cartella /home/**

vedasi i commenti e le variabili impostate :

```
# La cartella che contiene la cartella di cui vogliamo

# fare il backup

folder_up='/home/admin/'

# Cartella di cui fare il backup

folder_from='samba/'

# Posizione dove fare la copia

folder_to='/mnt/usbesterno/' 
```

PS : inoltre ti invito a rimuovere od oscurare  ogni riferimento alla mail indicata all'interno del codice da te postato (non nello script ma nel post) per una questione di privacy  :Rolling Eyes: 

----------

## fortek

Riprovando 

```

cat /etc/fstab

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed; notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#/dev/BOOT              /boot           ext2            noauto,noatime  1 2

/dev/md2                /               ext3            noatime         0 1

/dev/md1                none            swap            sw              0 0

/dev/cdrom              /mnt/cdrom      audo            noauto,ro       0 0

#/dev/fd0               /mnt/floppy     auto            noauto          0 0

# DISCO USB

/dev/sdc1               /mnt/usbesterno     vfat            noauto,user,exec,sync     0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

```

La c sembra essere tornata a posto da solo (io non ho fatto niente)

Ho provato a rimontare 

```

 mount -o remount /dev/sdc1

mount: /mnt/usbesterno not mounted already, or bad option

```

Provo a lanciare lo script ? L'esito lo vedrò domani mattina giusto ?

p.s.  Ho rimesso i riferimenti Email, grazie per la segnalazione   :Wink: 

----------

## sabayonino

 *fortek wrote:*   

> Riprovando 
> 
> ```
> 
> cat /etc/fstab
> ...

 

se esegui lo script , il backup lo fa subito e l'esito lo vedi al suo termine .

Poi se non lo esegui manualmente un'altra volta ripartirà secondo quanto indicato nel cron

per l'opzione di mount sembra ci sia una opzione che gli va indigesta ...

posta :

```
# ls /mnt/subesterno
```

----------

## fortek

```

ls /mnt/subesterno

ls: cannot access /mnt/subesterno: No such file or directory

```

p.s. se puo essere utile, per vedere il contenuto del disco che mi chiedevi , l'ho attaccato direttamente sul pc cop winzozz per vederlo, non ho visto il contenuto tramite server/gentoo

----------

## sabayonino

 *fortek wrote:*   

> 
> 
> ```
> 
> ls /mnt/subesterno
> ...

 grazie. se lo stacchi come fa il sistema gentoo a vederlo ?

hai sbagliato di digitare :

non è /mnt/subesterno

ma

/mnt/usbesterno

dovresti stare attento   :Rolling Eyes:   e cercare anche di capire quello che stai facendo

[edit] ma 'sto HDD esterno lo scolleghi manualmente in stile "Windows" senza procedere all' "umount" ? ... cominciano ad allinearsi bene i miei dubbi   :Confused: 

[edit] impostando rsnapshot tutto sarebbe più facile (una volta impostato) per backup incrementali orari,giornalieri,settimanali,mensili ; utilizza gli hardlinks ... ed al massimo si può crare un tarball dell'ultimo snapshot   :Rolling Eyes: 

oltre al fatto che se devi recuperare un file lo puoi prelevare molto facilmente con un semplice copia/incolla o al massimo utilizzare un rsync per il ripristino

----------

## fortek

Andiamo con ordine :

l'HDD l'ho scollegato (mea culpa senza unmount   :Rolling Eyes:  ) solo per vederne il contenuto poichè pensavo volessi capire cosa c'era salvato dentro, quindi solo momentaneamente poi subito ricollegato al pc server.

Ok per l'errore di digitazione ora riprovo (in realtà avevo fatto un copia/incolla dal comando postato da te   :Confused:  )

Non ho capito cosa vuol dire impostare rnsnaphot..................

----------

## fortek

```

ls /mnt/usbesterno

Friday  March  Monday  Saturday  Sunday  Thursday  Tuesday  Wednesday

```

----------

## sabayonino

rsnapshot è una utility per backup differenziali , ma ti invito a documentarti in merito se ti interessa.. era solo un consiglio

se lscript attuale soddisfa le tue esigenze non sta a me decidere come vuoi eseguire i backup 

tornando al tuo problema è che devi essere sicuro che il mount del disco esterno avvenga correttamente perchè lo script funzioni

per cominciare vediamo l'UUID del disco :

collegalo e posta l'output di :

```
# ls -lh /dev/disk/by-uuid
```

----------

## fortek

Diciamo che se riuscissi a ripristinare il funzionamento del backup così come lo ha sempre fatto , sarei più che a posto....   :Wink: 

Tornando a noi :

```

ls -lh /dev/disk/by-uuid

total 0

lrwxrwxrwx 1 root root 10 Dec 11 14:11 00BF-0E85 -> ../../sdc1

lrwxrwxrwx 1 root root  9 Oct  3 09:46 44cc5b27-f3d0-4bda-bd51-1d3eeae67ed7 -> ../../md1

lrwxrwxrwx 1 root root  9 Oct  3 09:46 e10b0f7c-b8c4-4244-8856-e17a1b676ca2 -> ../../md2

```

----------

## sabayonino

ok. 

potresti aggiungere all'inizio dello script

```
if [ -e /dev/disk/by-uuid/00BF-0E85 ] ; then mount -o remount /mnt/usbesterno 

 else echo "Dispositivo non collegato.Impossibile effettuare il backup nella destinazione indicata"  | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com  ; exit 0

fi

```

questa parte di codice controlla che il dispositivo sia collegato e corrisponda al disco in questione e lo ri-monta in modo corretto nel punto di montraggio corretto. altrimentio se ciò non corrisponde esce dall'esecuzione dello script

e modificare in /etc/fstab la voce relativa al disco esterno indicandone il suo UUID invece che il nome del dispositivo (che potrebbe cambiare se viene scollegato/ricollegato in modo anomalo)

in fstab al posto di /dev/sdc1 mettici : UUID=00BF-0E85 lasciando invariato tutto il resto

eo volendo potresti farti inviare una mail che ti comunica che l'HDD non è collegato e non è stato possibile effettuare il backup al posto del messaggio "Dispositivo non collegato" (devo riguardarmi lo script per i dettagli)

[edit] corretto

[ri-edit] puoi provare lo script prima collegando il dispositivo ed eseguendo lo script

```
# bash /root/backup.sh
```

poi prova a scollegarlo con umount per evitare corruzione del filesystem ! e riprovandoi lo script  e controllando la mail

in parole povere controlla che los cript fuznioni correttamente nelle varie situazioni

----------

## djinnZ

@sabayonino

```
/root/backup.sh
```

o

```
sh /root/backup.sh
```

non è la stessa cosa di 

```
bash /root/backup.sh
```

o

```
. /root/backup.sh
```

lo script è banale quindi non crea problemi ma se c'erano espressioni di sostituzione rischi che dia i numeri, per dirne una.  :Wink: 

invece di uuid in casi del genere è meglio LABEL= (così puoi anche formattare un nuovo hd da windozz senza dover intervenire sulla macchina linux)

Per questo c'è il sync tra le opzioni del mount ma sarebbe meglio aggiungere un umount allo script.

Non ho seguito (mi scuso) ma si potrebbe provare con un 

```
sh -x /root/backup.sh
```

 per vedere cosa combina.

Domani provo a vedere meglio.

----------

## sabayonino

bash è una evoluzione di sh (molto di rado potrebbe avere istruzioni non riconosciute, soprattutto in versioni vecchie ; antecedenti al 1998 credo)

l'umount potrebbe anche metterlo ma se guardi il test proposto  ho messo l'opzione remount che indiferentemente sia montato o meno lo "ricarica"

per quanto riguarda l'UUID ho volutamente settato per esser sicuro che venga visto nel caso "label" non sia stato indicato (UUID che piaccia o no viene settato durante la formattazione)

nel caso si voglia utilizzare "LABEL" , già conoscendo il nome dovrebbe bastare o eventualmente trovarlo in 

```
# ls -lh /dev/disk/by-label
```

e settare l'fstab con

LABEL="blablabla"  al posto di UUID=XXX-YYY

io resterei con UUID in quanto è univoco (si spera nella casualità) , LABEL invece può essere impostato su più dischi con un utilizzo differente

[edit] per quanto riguarda "sh" o "bash" 

```
if ( test /dev/disk/by-uuid/00BF-0E85 )
```

equivale a

```
if [ -e /dev/disk/by-uuid/00BF-0E85 ]
```

sia per #!/bin/bash che per #!/bin/sh

----------

## fortek

Ragazzi , vi ringrazio molto per il tempo che mi dedicate, ma le vostre conoscenze vanno ben oltre le mie e non riesco a seguirvi come vorrei...................

@ Sabayonino

Non ho capito quale script devo modificare e dove (sempre con un editor ? )

Quest'altra modifica da te indicata : in fstab al posto di /dev/sdc1 mettici : UUID=00BF-0E85 lasciando invariato tutto il resto

è sempre relativa allo script sopra ?

Ho eseguito :

```

# bash /root/backup.sh

```

Ma non è successo niente

@djinnZ

Mi dici di provare con 

```

sh -x /root/backup.sh

```

Oppure alla luce del tentativo sopra mi fermo ?

********

Ok ok ci siamo (nel senso che comincio a seguirvi un pochino)

@ Sabayonino

Script modificato con nano

fstab modificato con nano

ecco ora come appaiono (per farti verificare che abbia eseguito correttamente le modifiche)

```

cat /root/backup.sh

# !/bin/sh

if [ -e /dev/disk/by-uuid/00BF-0E85 ] ; then mount -o remount /mnt/usbesterno

 else echo "Dispositivo non collegato.Impossibile effettuare il backup nella destinazione indicata"  | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com  ; exit 0

fi

# Questo è uno script che fa il backup di una cartella

# e lo gestisce con la regola dei giorni della settimana

# fa una copia per ogni giorno della settimana e sostituisce

# quelli della settiaman prima. es. se oggi è lunedì il backup

# viene copiato nella cartella 'lunedì' sovrascrivendo il

# backup del lunedì precedente

# Inoltre si può attivare la modalita 'annuale' che ogni

# primo del mese fa una copia ulteriore in una cartella

# con il nome del mese con lo stesso sistema per quello

# dei giorni della settimana

```

```

cat /etc/fstab

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed; notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

#/dev/BOOT              /boot           ext2            noauto,noatime  1 2

/dev/md2                /               ext3            noatime         0 1

/dev/md1                none            swap            sw              0 0

/dev/cdrom              /mnt/cdrom      audo            noauto,ro       0 0

#/dev/fd0               /mnt/floppy     auto            noauto          0 0

# DISCO USB

/dev/UUID=00BF-0E85               /mnt/usbesterno     vfat            noauto,user,exec,sync     0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

```

Ora non ho riprovato a lanciare lo script 

grazie

----------

## djinnZ

Supponiamo di avere il seguente script

```
#!/bin/sh -x

# script di test

echo -e "script di test\navvio con -x"

[ -e ./prova.sh ] && echo "lo script esiste"
```

se lo lancio

```
+ echo -e 'script di test\navvio con -x'

script di test

avvio con -x

+ '[' -e ./prova.sh ']'

+ echo 'lo script parte dalla sua directory'

lo script parte dalla sua directory
```

mi consente di capire cosa succede e dove esattamente si blocca.

Quindi lancia pure /bin/sh -x /root/backup.sh e vedi che diavolo si blocca.

riporta l'utput di ls -l /root/backup.sh (dovrebbe essere eseguibile).

@sabayonino

/bin/sh oggi è un link a differenti shell secondo distribuzione e sistema quindi potresti trovarti a confrontarti con le idiosincrasie di ash, dash o bash, per citare le più comuni.

Per evitare brutte sorprese non si cambia mai la shell di avvio alla leggera.

esempio (a caso) e differenze (il primo link che ho trovato).  :Laughing: 

Sempre per esperienza: Una cosa è dire all'utonto ( non ho saputo resistere alla tentazione, mi cospargo il capo di cenere e ... sghignazzo  :Twisted Evil:  ) "devi formattare il disco con la label XXX perché sia letto; ben altro andargli a dire di modificare uno script e capire cosa sia la UUID, al 99% combinerà casini.

Sempre discorrendo accademicamente della cosa...

----------

## fortek

Ma devo prima ri-modificare lo script come era in origine ?

Perchè ora è modificato su indicazioni di Sabayonino cosi :

```

cat /root/backup.sh

# !/bin/sh

if [ -e /dev/disk/by-uuid/00BF-0E85 ] ; then mount -o remount /mnt/usbesterno

 else echo "Dispositivo non collegato.Impossibile effettuare il backup nella destinazione indicata"  | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com  ; exit 0

fi

# Questo è uno script che fa il backup di una cartella

# e lo gestisce con la regola dei giorni della settimana

# fa una copia per ogni giorno della settimana e sostituisce

# quelli della settiaman prima. es. se oggi è lunedì il backup

# viene copiato nella cartella 'lunedì' sovrascrivendo il

# backup del lunedì precedente

# Inoltre si può attivare la modalita 'annuale' che ogni

# primo del mese fa una copia ulteriore in una cartella

# con il nome del mese con lo stesso sistema per quello

# dei giorni della settimana 

```

----------

## djinnZ

No, non ti serve modificarlo. Quella è l'unica cosa che sicuramente dovrebbe funzionare.

Lancia semplicemente

```
/bin/sh -x /root/backup.sh
```

e vedi cosa combina.

Per verificare l'aggiunta di sabayonino puoi provare con l'hd scollegato e dovrebbe dare solo un output del tipo *Quote:*   

> +if [ -e /dev/disk/by-uuid/00BF-0E85 ]
> 
> +else echo "Dispositivo non collegato.Impossibile effettuare il backup nella destinazione indicata"  | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com
> 
> mail sended to xxxx@xxxxx.com
> ...

 per capirci.

----------

## fortek

```

/bin/sh -x /root/backup.sh

+ folder_up=/home/admin/

+ folder_from=samba/

+ folder_to=/mnt/usbesterno/

++ date +%Y_%m_%d_%H_%M

+ formato=2013_12_13_16_42

+ monthly=true

+ month_day=1

+ log=/root/backup.log

+ echo

++ date '+%Y-%m-%d %H:%M'

+ esito='2013-12-13 16:42'

+ esito='2013-12-13 16:42 - '

+ clear

++ date +%A

+ oggi=Friday

++ date +%d

+ cur_day=13

+ is_the_date=false

+ esito_giorno=false

+ esito_mese=false

+ test -d /mnt/usbesterno/Friday

+ test -d /mnt/usbesterno/Friday

+ oggi=Friday/

+ cd /mnt/usbesterno/Friday/

+ test -f tmp_2013_12_06_23_59.bz2

+ mv tmp_2013_12_06_23_59.bz2 old.bz2

+ cd /home/admin/

+ tar -cjf /mnt/usbesterno/Friday/tmp_2013_12_13_16_42.bz2 samba/

```

----------

## djinnZ

Se non hai altro sembra che si blocchi al momento di lanciare per la prima volta tar.

Strano che non abbia eseguito il comando di sabayonino.

Per inciso la riga iniziale dello script è #!/bin/sh senza spazi nel mezzo.

Prova a vedere cosa succede dando da shell il comando *Quote:*   

> cd /home/admin/ ; tar -cjf /mnt/usbesterno/Friday/tmp_2013_12_13_16_42.bz2 samba/ && echo backup eseguito

 

Riporta anche ls come ti avevo chiesto e l'output di 

```
df -h
```

sempre senza scollegare il disco.

Visto che avevi avuto problemi con il disco ti consiglio di effettuare un ckeck approfondito (anche da windozz, tanto è vfat).

----------

## sabayonino

spetta che mi rileggo i post ... che mi s ono perso un attimo

in fstab non dvi indicare /dev/UUID=XXX-YYY

ma la riga deve cominciare con 

UUID=xxx-yyy   e poi tutto il resto

il /dev è di troppo

mi rileggo i post

----------

## sabayonino

nello script di backup probabilmente per via del copia incolla

la riga

```
Server Saka Backup " xxxx@xxxxx.com  ; exit 0 
```

 sembra esser per conto suo. mancando la formattazione dovrebbe utilizzare il backspace per "riattacarla a quella precedente"

@DjinnZ : se si deve speigare bash da zero (e io ne conosco solo i principi elementari per quello che sono riuscito a fare da autodidatta) all' "utonto" allora 'sto backup non riprenderà mai.Di Guide e Guidonze in rete e nello stesso manuale/doc Gentoo ce ne stanno a quintali in rete.

lo script è una forma di backup differenziale (termine improprio perchè è un backup full) un pò fatta a mano (ed infatti è così) e non ci sono comandi distruttivi esterni allo script stesso e quelli non sono stati toccati (almeno da me)

il problema quasi sicuramente è il fatto che per esser eseguito correttamente il dispositivo deve essere montato sennò cippa.

facciamogli trovare sto disco !

poi se c'è qualcos'altro nello script che non va è un altro discorso. di cui avevo proposto semplice soluzione post indietro

----------

## ago

Moved from Forum italiano (Italian) to Forum di discussione italiano.

----------

## fortek

```

 df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/md2              228G   78G  139G  36% /

udev                   10M  168K  9.9M   2% /dev

shm                   504M     0  504M   0% /dev/shm

```

----------

## fortek

 *sabayonino wrote:*   

> spetta che mi rileggo i post ... che mi s ono perso un attimo
> 
> in fstab non dvi indicare /dev/UUID=XXX-YYY
> 
> ma la riga deve cominciare con 
> ...

 

fatto

----------

## fortek

Aggiornamento :

```

df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/md2              228G   78G  139G  36% /

udev                   10M  168K  9.9M   2% /dev

shm                   504M     0  504M   0% /dev/shm

/dev/sdc1             150G   25G  125G  17% /mnt/usbesterno

```

```

/bin/sh -x /root/backup.sh

+ folder_up=/home/admin/

+ folder_from=samba/

+ folder_to=/mnt/usbesterno/

++ date +%Y_%m_%d_%H_%M

+ formato=2013_12_16_14_42

+ monthly=true

+ month_day=1

+ log=/root/backup.log

+ echo

++ date '+%Y-%m-%d %H:%M'

+ esito='2013-12-16 14:42'

+ esito='2013-12-16 14:42 - '

+ clear

++ date +%A

+ oggi=Monday

++ date +%d

+ cur_day=16

+ is_the_date=false

+ esito_giorno=false

+ esito_mese=false

+ test -d /mnt/usbesterno/Monday

+ test -d /mnt/usbesterno/Monday

+ oggi=Monday/

+ cd /mnt/usbesterno/Monday/

+ test -f tmp_2008_07_28_23_59.bz2

+ mv tmp_2008_07_28_23_59.bz2 old.bz2

+ cd /home/admin/

+ tar -cjf /mnt/usbesterno/Monday/tmp_2013_12_16_14_42.bz2 samba/

^C

```

----------

## djinnZ

Premesso che il risultato si riporta in questo modo

```
Filesystem            Size  Used Avail Use% Mounted on

/dev/md2              228G   78G  139G  36% /

udev                   10M  168K  9.9M   2% /dev

shm                   504M     0  504M   0% /dev/shm

/dev/sdc1             150G   25G  125G  17% /mnt/usbesterno
```

ovvero

```
[code="df -h"]Filesystem            Size  Used Avail Use% Mounted on

/dev/md2              228G   78G  139G  36% /

udev                   10M  168K  9.9M   2% /dev

shm                   504M     0  504M   0% /dev/shm

/dev/sdc1             150G   25G  125G  17% /mnt/usbesterno[/code]
```

e che non serve che riporti ogni volta lo spazio su disco, ormai abbiamo capito che è a posto.

noto che

 *fortek wrote:*   

> 
> 
> ```
> + folder_up=/home/admin/
> 
> ...

 Posso capire perché fermi¹ il procedimento? Lascialo andare avanti, fin qui mi sembra tutto regolare.

¹quel ^C

----------

## fortek

Ok per come riportare il codice

Ok per lo spazio su disco.

Per il procedimento non  capisco manco io, forse ho digitato nel passare ad altra finestra di lavoro ed ho preso per errore putty.

Ora riprovo

----------

## fortek

Ecco il risultato :

 /bin/sh -x /root/backup.sh

```

+ folder_up=/home/admin/

+ folder_from=samba/

+ folder_to=/mnt/usbesterno/

++ date +%Y_%m_%d_%H_%M

+ formato=2013_12_16_16_31

+ monthly=true

+ month_day=1

+ log=/root/backup.log

+ echo

++ date '+%Y-%m-%d %H:%M'

+ esito='2013-12-16 16:31'

+ esito='2013-12-16 16:31 - '

+ clear

++ date +%A

+ oggi=Monday

++ date +%d

+ cur_day=16

+ is_the_date=false

+ esito_giorno=false

+ esito_mese=false

+ test -d /mnt/usbesterno/Monday

+ test -d /mnt/usbesterno/Monday

+ oggi=Monday/

+ cd /mnt/usbesterno/Monday/

+ test -f tmp_2013_12_16_14_42.bz2

+ mv tmp_2013_12_16_14_42.bz2 old.bz2

+ cd /home/admin/

+ tar -cjf /mnt/usbesterno/Monday/tmp_2013_12_16_16_31.bz2 samba/

bzip2: I/O or other error, bailing out.  Possible reason follows.

bzip2: File too large

        Input file = (stdin), output file = (stdout)

+ cd /mnt/usbesterno/Monday/

+ test -f tmp_2013_12_16_16_31.bz2

+ esito_giorno=true

+ test -f old.bz2

+ rm old.bz2

+ '[' true ']'

+ esito='2013-12-16 16:31 -  Copia del GIORNO avvenuta con successo'

+ echo 2013-12-16 16:31 - Copia del GIORNO avvenuta con successo

+ echo 2013-12-16 16:31 - Copia del GIORNO avvenuta con successo

+ mail -a From:xxx@xxxl.it -s 'Log Server Saka Backup ' xxx@gmail.com

+ echo 2013-12-16 16:31 - Copia del GIORNO avvenuta con successo

+ mail -a From:xxx@xxx.it -s 'Log Server Saka Backup ' xxx@xxx.eu

+ '[' 16 = 1 ']'

+ true

+ false

```

Last edited by fortek on Tue Dec 17, 2013 7:22 am; edited 1 time in total

----------

## sabayonino

```
bzip2: I/O or other error, bailing out.  Possible reason follows.

bzip2: File too large

        Input file = (stdin), output file = (stdout) 
```

il file risultante è troppo grande per il filesystem FAT32 .il file supera i 2Gbyte per file supportati da tale filsystem 

PS : oscura le mail !   :Rolling Eyes: 

scovato l'arcano ?

potrei consigliarti di riformattare (previa ri-copia degli attuali file) e di utilizzare un altro filesystem...NTFS visto che il disco presumo lo condividi con Windows.

e di conseguenza modificare l'fstab.

Oppure potresti "splittare" il file durante la fase di compressione modificando il comando 

```
tar -cjf /mnt/usbesterno/Monday/tmp_2013_12_16_16_31.bz2 samba/ 
```

in

```
tar -cjf ${folder_from} | splid -d -b 2000M -  ${folder_to}${oggi}tmp_${formato}.bz2.part
```

dovrebbe creare dei file da meno di 2Giga (2G=2048M)  nel formato <nome-backup>.bz2.part00 <nome-backup>.bz2.part01  etc

per ricomporre le parti in un file unico in caso di necessità (non nel filsystem FAT32) :

```
# <nome-backup>.bz2* > <nome-backup>.bz2
```

[edit] però occorre modificare anche le altre parti dello script per rimuovere le parti "old". si dovrebbe controllare come si comporta . 

La soluzione indolore potrebbe essere il cambio di filesystem del disco

in caso di cambio di filesystem nel disco  dovresti accertarti di avere i tools per ntfs installati (sys-fs/ntfs3g) e che nel kernel sia supportato anche in scrittura/lettura

please l' output di

```
zcat /proc/config.gz | grep NTFS 
```

dovrebbe dare :

```
 

CONFIG_NTFS_FS=y

# CONFIG_NTFS_DEBUG is not set

CONFIG_NTFS_RW=y

```

PS : ma è stato spostato il topic ?   :Shocked: 

----------

## fortek

Email oscurate     :Rolling Eyes: 

Non capisco come mai, al termine, mi sia arrivata l'email di conferma avvenuto backup.....................

E no capisco come mai , non sia stata presa in considerazione questa eventualità da chi ha progettato il tutto.....

Comunque, la soluzione più rapida è indolore è riformattare l'hdd ?

Ecco l'output di :

zcat /proc/config.gz | grep NTFS 

```

# CONFIG_NTFS_FS is not set

```

thanks

----------

## djinnZ

```
zgrep 'FUSE' /proc/config.gz

emerge -pv ntfs3g

emerge -pv ntfs-3g

uname -a
```

per informazioni.

Se per ntfs3g o ntfs-3g ti esce qualcosa del genere

```
These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] sys-fs/ntfs3g-2012.1.15-r2  USE="acl crypt external-fuse ntfsprogs suid xattr -debug -static-libs" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
```

e non un errore prova a vedere se

```
emerge -1F ntfs3g
```

riesce a terminare senza errori (se va è solo questione di installare un pacchetto) altrimenti potresti usare roba del genere http://www.paragon-software.com/home/extfs-windows/ http://www.fs-driver.org/ http://www.diskinternals.com/linux-reader/ e e formattare il disco da linux in qualcosa di più "normale".

Trattengo le valutazioni su come sia stato concepito codesto script, manco al mio primo tentativo (sulla bourne originale, il che è tutto dire) a quindici anni ho combinato un simile pasticcio.

----------

## sabayonino

io potrei cosnigliarti rsnapshot che fa degli snapshot (appunto) di una data cartella. è facile da configurare ed una volta configurato non ci devi più pensare (se non per le modifiche eventuali)

e poi per comodità effettuare un tarball dell'ultimo snapshot (o degli ultimi snapshot) 

e poi effettuare uno script che ti mandi l'email .

potrei buttar giù la configurazione e uno script di mail ed effettuare delle prove.

se ti va di provare .

Installare rsnapshot (nonm dovrebbe richiedere chissà uali dipendenze)

```
# emerge rsnapshot --a
```

[edit] se ti tieni gli snapshot sul disco esterno e non hai necessità di fare upload/download del backup , non serve nemmeno a comprimerlo

gli snapshot sono direttamente accessibili ed in caso di recupero dati hai il file già a disposzione (dipende comunque dal livello di snapshot impostato) e basta un a semplice copia o rsync per recuperare il contenuto

si può impostare gli snap sad ogni ora/giorno/settimana/mese  .. 

se cerchi "backup con rsnapshot" in rete puoi capire come funziona.

se puoi ti bastanbo gli snapshot non ti devi nemmeno preoccupare di formattare e che altro ovviamente sempre se non sono presenti file superiori a 2G) , ma immaginando il tipo di contenuto ... non credo   :Very Happy: 

[ri-edit] : io ho già pronto lo script di controllo per rsnapshot se vuoi provare anche questa soluzione ti preparo un post con tutte le istruzioni del caso   :Wink: 

----------

## fortek

 *djinnZ wrote:*   

> 
> 
> ```
> zgrep 'FUSE' /proc/config.gz
> 
> ...

 

```

 emerge -pv ntfs3g

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N    ] sys-fs/ntfs3g-1.2531  USE="-debug -suid" 636 kB

Total: 1 package (1 new), Size of downloads: 636 kB

saka-server ~ # emerge -pv ntfs-3g

These are the packages that would be merged, in order:

Calculating dependencies /

!!! 'ntfs-3g' is not a valid package atom.

!!! Please check ebuild(5) for full details.

!!! (Did you specify a version but forget to prefix with '='?)                ..                                             . done!

saka-server ~ # uname -a

```

mentre lanciando 

emerge -1F ntfs3g

```

Calculating dependencies... done!

>>> Fetching (1 of 1) sys-fs/ntfs3g-1.2531

>>> Downloading 'http://distfiles.gentoo.org/distfiles/ntfs-3g-1.2531.tgz'

--2013-12-17 15:34:02--  http://distfiles.gentoo.org/distfiles/ntfs-3g-1.2531.tgz

Resolving distfiles.gentoo.org... 64.50.236.52, 64.50.233.100, 156.56.247.195, ...

Connecting to distfiles.gentoo.org|64.50.236.52|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

2013-12-17 15:34:03 ERROR 404: Not Found.

>>> Downloading 'http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ntfs-3g-1.2531.tgz'

--2013-12-17 15:34:03--  http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ntfs-3g-1.2531.tgz

Resolving distro.ibiblio.org... 152.19.134.43

Connecting to distro.ibiblio.org|152.19.134.43|:80... connected.

HTTP request sent, awaiting response... 301 Moved Permanently

Location: /gentoo/distfiles/ntfs-3g-1.2531.tgz [following]

--2013-12-17 15:34:03--  http://distro.ibiblio.org/gentoo/distfiles/ntfs-3g-1.2531.tgz

Reusing existing connection to distro.ibiblio.org:80.

HTTP request sent, awaiting response... 404 Not Found

2013-12-17 15:34:04 ERROR 404: Not Found.

>>> Downloading 'http://www.ntfs-3g.org/ntfs-3g-1.2531.tgz'

--2013-12-17 15:34:04--  http://www.ntfs-3g.org/ntfs-3g-1.2531.tgz

Resolving www.ntfs-3g.org... 77.86.224.47

Connecting to www.ntfs-3g.org|77.86.224.47|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

2013-12-17 15:34:04 ERROR 404: Not Found.

!!! Couldn't download 'ntfs-3g-1.2531.tgz'. Aborting.

 * Fetch failed for 'sys-fs/ntfs3g-1.2531'

>>> Failed to emerge sys-fs/ntfs3g-1.2531

 * Messages for package sys-fs/ntfs3g-1.2531:

 * Fetch failed for 'sys-fs/ntfs3g-1.2531'

```

----------

## fortek

 *sabayonino wrote:*   

> io potrei cosnigliarti rsnapshot che fa degli snapshot (appunto) di una data cartella. è facile da configurare ed una volta configurato non ci devi più pensare (se non per le modifiche eventuali)
> 
> e poi per comodità effettuare un tarball dell'ultimo snapshot (o degli ultimi snapshot) 
> 
> e poi effettuare uno script che ti mandi l'email .
> ...

 

Ti ringrazio per la disponibilità, a fare prove per me non ci sono problemi, anzi calcola solo che questo non è il mio lavoro, lo faccio perchè ci siamo trovati in questa situazione, a me i computer piacciono e divertono e il sitema linux mi incuriosce parecchio, questo solo per dirti che potrebbe capitare (e capiterà) che ti (vi) faccia domande banali o scontate per voi esperti

 :Wink: 

Tornando a noi, devo in conclusione formattare comunque l'hdd in ntfs poichè superiamo i fatidici 2gb giusto ?

----------

## sabayonino

 *fortek wrote:*   

> 
> 
> Tornando a noi, devo in conclusione formattare comunque l'hdd in ntfs poichè superiamo i fatidici 2gb giusto ?

 

se utilizzi quello script si. dato che il file risultante è maggiore di 2Gb

ma se rileggi la mia proposta , potresti utilizzare gli snapshot con uno script e un paio di file di configurazione.

se vuoi provare con rsnapshot fammi sapere.

Se sei curioso di sapere come funziona rsnapshot : http://www.miamammausalinux.org/2009/03/rsnapshot-backup-incrementale-sincronizzato/  :Laughing: 

tralascia l'installazione e la configurazione ma leggi come funziona 

```
# emerge rsnapshot
```

se vuoi provarlo , possiamo affiancarlo allo script attuale . i vantaggi di rsnapshot li ho elencati nel mio post precedente.

sta a te a decidere

----------

## sabayonino

Io ti posto il procedimento che potresti attuare con rsnapshot (potrebbe sempre essere utile a qualcun'altro)

Installare rsnapshot

```
# emerge rsnapshot
```

Ti posto la configurazione adatta alla tua situazione : (da quello che si evince dallo script che utilizzi , la directory da backuppare è /home/admin/samba )

```
# nano -w /etc/rsnapshot.conf
```

ed incolla il seguente codice (sperando che il copia incolla mantenga le tabulazioni !!! ogni parametro deve essere separato dalle tabulazioni e non da uno spazio fatto con la barra spaziatrice ! )

```
#################################################

# rsnapshot.conf - rsnapshot configuration file #

#################################################

#                                               #

# PLEASE BE AWARE OF THE FOLLOWING RULES:       #

#                                               #

# This file requires tabs between elements      #

#                                               #

# Directories require a trailing slash:         #

#   right: /home/                               #

#   wrong: /home                                #

#                                               #

#################################################

#######################

# CONFIG FILE VERSION #

#######################

config_version  1.2

###########################

# SNAPSHOT ROOT DIRECTORY #

###########################

# All snapshots will be stored under this root directory.

#

snapshot_root   /mnt/usbesterno/snapshot/

# If no_create_root is enabled, rsnapshot will not automatically create the

# snapshot_root directory. This is particularly useful if you are backing

# up to removable media, such as a FireWire or USB drive.

#

#no_create_root 1

#################################

# EXTERNAL PROGRAM DEPENDENCIES #

#################################

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.

# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.

#

# See the README file or the man page for more details.

#

#cmd_cp         /bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.

#

cmd_rm          /bin/rm

# rsync must be enabled for anything to work. This is the only command that

# must be enabled.

#

cmd_rsync       /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.

#

#cmd_ssh        /usr/bin/ssh

# Comment this out to disable syslog support.

#

cmd_logger      /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.

# If you have an older version of "du", you may also want to check the

# "du_args" parameter below.

#

#cmd_du         /usr/bin/du

# Uncomment this to specify the path to rsnapshot-diff.

#

#cmd_rsnapshot_diff     /usr/local/bin/rsnapshot-diff

# Specify the path to a script (and any optional arguments) to run right

# before rsnapshot syncs files

#

#cmd_preexec    /path/to/preexec/script

# Specify the path to a script (and any optional arguments) to run right

# after rsnapshot syncs files

#

#cmd_postexec   /path/to/postexec/script

#########################################

#           BACKUP INTERVALS            #

# Must be unique and in ascending order #

# i.e. hourly, daily, weekly, etc.      #

#########################################

#interval       orario  6

interval        giornaliero   7

interval        settimanale  4

interval        mensile 12

############################################

#              GLOBAL OPTIONS              #

# All are optional, with sensible defaults #

############################################

# Verbose level, 1 through 5.

# 1     Quiet           Print fatal errors only

# 2     Default         Print errors and warnings only

# 3     Verbose         Show equivalent shell commands being executed

# 4     Extra Verbose   Show extra verbose information

# 5     Debug mode      Everything

#

verbose         2

# Same as "verbose" above, but controls the amount of data sent to the

# logfile, if one is being used. The default is 3.

#

loglevel        3

# If you enable this, data will be written to the file you specify. The

# amount of data written is controlled by the "loglevel" parameter.

#

logfile /var/log/rsnapshot

# If enabled, rsnapshot will write a lockfile to prevent two instances

# from running simultaneously (and messing up the snapshot_root).

# If you enable this, make sure the lockfile directory is not world

# writable. Otherwise anyone can prevent the program from running.

#

lockfile        /var/run/rsnapshot.pid

# Default rsync args. All rsync commands have at least these options set.

#

#rsync_short_args       -a

#rsync_long_args        --delete --numeric-ids --relative --delete-excluded

# ssh has no args passed by default, but you can specify some here.

#

#ssh_args       -p 22

# Default arguments for the "du" program (for disk space reporting).

# The GNU version of "du" is preferred. See the man page for more details.

# If your version of "du" doesn't support the -h flag, try -k flag instead.

#

#du_args        -csh

# If this is enabled, rsync won't span filesystem partitions within a

# backup point. This essentially passes the -x option to rsync.

# The default is 0 (off).

#

#one_fs         0

# The include and exclude parameters, if enabled, simply get passed directly

# to rsync. If you have multiple include/exclude patterns, put each one on a

# separate line. Please look up the --include and --exclude options in the

# rsync man page for more details on how to specify file name patterns. 

# 

#include        ???

#include        ???

#exclude        ???

#exclude        ???

# The include_file and exclude_file parameters, if enabled, simply get

# passed directly to rsync. Please look up the --include-from and

# --exclude-from options in the rsync man page for more details.

#

#include_file   /path/to/include/file

#exclude_file   /path/to/exclude/file

# If your version of rsync supports --link-dest, consider enable this.

# This is the best way to support special files (FIFOs, etc) cross-platform.

# The default is 0 (off).

#

#link_dest      0

# When sync_first is enabled, it changes the default behaviour of rsnapshot.

# Normally, when rsnapshot is called with its lowest interval

# (i.e.: "rsnapshot hourly"), it will sync files AND rotate the lowest

# intervals. With sync_first enabled, "rsnapshot sync" handles the file sync,

# and all interval calls simply rotate files. See the man page for more

# details. The default is 0 (off).

#

#sync_first     0

# If enabled, rsnapshot will move the oldest directory for each interval

# to [interval_name].delete, then it will remove the lockfile and delete

# that directory just before it exits. The default is 0 (off).

#

#use_lazy_deletes       0

# Number of rsync re-tries. If you experience any network problems or

# network card issues that tend to cause ssh to crap-out with

# "Corrupted MAC on input" errors, for example, set this to a non-zero

# value to have the rsync operation re-tried

#

#rsync_numtries 0

###############################

### BACKUP POINTS / SCRIPTS ###

###############################

# LOCALHOST

backup  /home/admin/samba               localhost/

```

Crea una cartella "snapshot" nel dispositivo esterno . Qui ci metteremo gli snapshot (con dispositivo montato ovviamente) e li manteniamo separati da altri contenuti del disco   :Rolling Eyes: 

```
# mkdir /mnt/usbesterno/snapshot
```

Ora crea 3 script per gli snapshot (serviranno anche poi per la schedulazione):

```
# touch /root/snapshot_giornaliero.sh  /root/snapshot_settimanale.sh  /root/snapshot_mensile.sh
```

Puoi già renderli eseguibili :

```
# chmod +x /root/*.sh
```

ora edita il file per lo snapshot giornaliero :

```
# nano -w /root/snapshot_giornaliero.sh
```

ed incollaci il seguente codice

```
#!/bin/bash

data="`date "+%A %d-%m-%Y"`"

tipo="giornaliero"

bk_msg_good="Backup $tipo : $data effettuato con successo"

bk_msg_bad="Backup $tipo : $data non effettuato correttamente"

if [[ `mountpoint  /mnt/usbesterno` ]] ; then

if [[ -d /mnt/usbesterno/snapshot ]] ; then sleep 1

else

mkdir /mnt/usbesterno/snapshot

fi

echo "Il dispositivo esterno è montato  : Effettuo il backup" 

sleep 5

rsnapshot -v $tipo 

echo $bk_msg_good

echo $bk_msg_good >> /root/snapshot.log

echo $bk_msg_good | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxx@gmail.com

echo $bk_msg_good | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com

else

echo "Il dispositivo esterno per il backup non risulta montato. Impossibile effettuare il backup *** $bk_msg_bad"

echo $bk_msg_bad >> /root/snapshot.log

echo $bk_msg_bad | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxx@gmail.com

echo $bk_msg_bad | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com

fi

```

Spiegazione : if [[ `mountpoint  /mnt/usbesterno` ]]   controlla che il mountpoint /mnt/usbesterno sia correttamente montato e nel caso fosse corretto procede al backup ,scrive nel log (con data e ora) e manda una mail di avvenuto backup  ; in caso contrario scrive nel log (con data e ora) e manda una mail con esito negativo

mentre 

```
if [[ -d /mnt/usbesterno/snapshot ]] ; then sleep 1

else

mkdir /mnt/usbesterno/snapshot

fi 
```

Controlla che la directory "snapshot" esista e se non c'è la crea

Quindi qualsiasi dispositivo venga montato in /mnt/usbesterno  sarà la destinazione del backup.   :Rolling Eyes: 

(quindi in /etc/fstab  puoi rimettere /dev/sdc1 al posto dell'UUID ... e puoi utilizzare dischi diversi senza troppi sbattimenti)

copia lo stesso codice anche per gli altri script cambiando solo la variabile "tipo" per :

tipo="settimanale"   per snapshot_settmanale.sh

tipo="mensile"         per snapshot_mensile.sh

ora non ti resta che schedularli nel cron di sistema 

```
# nano -w /etc/crontab
```

aggiungi i il seguente codice

```
# Snapshot giornaliero (effettuato tutti i giorni alle ore 00:01)

1 0 * * * /bin/bash /root/snapshot_giornaliero.sh

# Snapshot settimanale (effettuato ogni lunedì alle ore 00:30)

30 0 * * 1 /bin/bash /root/snapshot_settimanale.sh

# Snapshot menisle (effettuato ad ogni giorno 1 del mese alle ore 00:30)

30 0 1 * * /bin/bash /root/snapshot_mensile.sh

```

Il cron di sistema comincerà a schedularli subito

Se desideri testare la sintassi del file di configurazione per vedere se ci sono errori , basta che tu esegua :

Giornaliero :

```
# rsnapshot -t giornaliero
```

Settimanale :

```
# rsnapshot -t settimanale
```

Mensile :

```
# rsnapshot -t mensile
```

Per provare il backup manualmente rimuovi il parametro -t  (o opzionalkmente abilita il verbose con il paramtro -v)

Le rotazioni possono essere modificate a piacimento nel file /etc/rsnapshot.conf

```
#interval       orario  6

interval        giornaliero   7

interval        settimanale  4

interval        mensile 12

```

Se non hai la necessità di tenere degli snapshot settimanali o mensili puoi commentare le relative righe e tenere solo gli snapshot giornalieri (ed eventualmente cambiare il numero delle rotazioni)

ATTENZIONE : ogni parametro va separato con la TABULAZIONE e non con lo spazio (Barra spaziatrice,frecce etc)

Buona fortuna ... spero sia utile

 :Rolling Eyes: 

PS : rsnapshot può essere configurato anche in altri modi : questo è uno dei tanti   :Very Happy: 

[edit] : non ho commentato nello scirpt ogni passaggio per ovvie ragioni di tempo   :Twisted Evil:   ... ma se hai necessità di inserire commenti e speigazioni più complete

fammi sapere che provvederò/speigherò

----------

## fortek

Woh, che lavoro grazie.

Ora mi metto con calma e ci lavoro su.

Prima di partire un paio di cose :

Mi sorgeva il dubbio della formattazione del HDD poichè mi ricordavo avessi detto :

 *sabayonino wrote:*   

> 
> 
> se puoi ti bastanbo gli snapshot non ti devi nemmeno preoccupare di formattare e che altro ovviamente sempre se non sono presenti file superiori a 2G) , ma immaginando il tipo di contenuto ... non credo  
> 
> 

 

Ho letto il link sul funzionamento di rsnapshot, praticamente cambia solo i file variati rispetto al backup old giusto ?

Per questo motivo non dovrebbe creare file superiori a 2 GB ?  (mi resta il dubbio sulla tua affermazione sopra a questo punto)

Starò attento nel copia incolla a verificare le tabulazioni, ti chiedo però :

nel codice da copiare mi hai evidenziato in blu (link) le parti che devo modificare con le email (giustamente)

Mi son perso però a metà codice circa dove trovo 

#EXAMPLE.com

#backup root@example.com

Devo sostituirlo con cosa ? Devo rileggermi lo script "originale" per capire cosa sostuire ? (per caso è il dominio?)

attendo tue indicazioni

grazie

----------

## sabayonino

 *fortek wrote:*   

> Woh, che lavoro grazie.
> 
> Ora mi metto con calma e ci lavoro su.
> 
> Prima di partire un paio di cose :
> ...

 

no il file di configurazione (/etc/rsnapshot.conf) lo devi copiare così come è . l'ho già adattato alle tue esigenze

quello è il file di conf standard e riporta anche esempi (tutto quello che sta dopo il cancelletto èp considerato come commento). rsnapshot può essere utilizzato anche per backup in remoto.

io ho modificato solo le righe

```
snapshot_root   /mnt/usbesterno/snapshot/

#interval       orario  6

interval        giornaliero   7

interval        settimanale  4

interval        mensile 12

backup        /home/admin/samba                 localhost/

```

Assicurati che gli elementi siano separati dalla tabulazione 

(così come gli altri elementi dello script che non ho toccato)

invece le mail le devi mettere nei tre script snapshot_giornaliero snapshot_settimanale snapshot_mensile

per i file di 2G... esso veniva creato quando si comprimeva tutta la cartella del backup. gli snapshot invece sono cartelle normali.  a meno che tu all'interno di queste cartelle non hai file superiori ai 2G il problema può esser considerato "risolto".

Ti invito a rileggere bene quello che ho scritto nel post precedente se non vuoi fare confusione

----------

## fortek

C'è qualcosa che non mi torna..........

I file all'interno delle cartelle sono tutti superiori a 2 gb...............

Nel tentativo fatto lunedi con il comando :

/bin/sh -x /root/backup.sh

Da cui abbiamo evinto che genera file troppo grandi per la formattazione fat32, ha creato all'interno delle cartelle monday e tuesday dei file bz2 di oltre 3 giga !!!!!!!!!!!!!!!!!!!!! (monday è di 3,99 giga)

Come ha fatto se la formattazione fat32 non permette di superare i 2 giga mi chiedo ora io ??

E perchè ha creato il file backup monday e mi ha inviato conferma email , mentre per il file tuesday non mi ha inviato conferma email ??  

Quindi stasera dovrebbe farmi il backup senza inviarmi l'email..................... giusto ?

Sono confuso   :Confused: 

----------

## fortek

Vi chiedo inoltre :

Putty mi serve per entrare nel pc da altro pc.

Esiste un modo per vedere , tramite winzozz il disco esterno collegato al pc server/ubuntu ? (per verificare il contenuto senza doverlo ogni volta "smontare" e collegare fisicamente ad un pc winzozz)

----------

## djinnZ

rsnapshot è installabile? ne dubito 

```
emerge -F rsnapshot
```

gli script di questo genere si mettono in etc, nelle directory appositamente predisposte/preposte, non si lasciano mai nella dir di root (o di altri utenti, persino se dedicati) ed ovviamente il chmod 0750 è d'uopo;la copia a mezzo cp o rsync su un filesystem fat implica la perdita della proprietà e dei permessi, con tutte le conseguenze negative del caso;senza almeno un

```
[ $? != 0 ] && echo $bk_msg_bad | mail -a "From:serverxxx@xxx.it" -s "Log Server Saka Backup " xxxx@xxxxx.com 
```

si reitera l'inconsistenza (ai limiti delll'idiozia e/o criminale quando perpetrata in ambito diverso dal suggerimento al volo in forum o se proposta quale risultato professionale) dello script precedente.

@sabayonino: cose del genere 

```
chmod +x /root/*.sh
```

 non si fanno mai. Lo ho imparato a mie spese, nel peggiore dei modi.  :Wink: 

@fortek: 4 GB non 2 GB è il limite estremo. 2 GB è un limite legato alla mancata abilitazione del supporto LFS nel sistema.

Ma sopra i 2 GB i sistemi M$ (non mi chiedre quali, non me lo ricordo e non vado certo a cercare) od altre porcate proprietarie potrebbero piallare i file, tra le tante idiozie che fanno in automatico.

A naso dovresti avere un vecchio kernel < 2.6.14 ed all'epoca (mi pare) LFS non era abilitato per default, a dimostrazione di quanto sopra. ( lo so che sembro uno che vorrebbe istituire i campi di concentramento per tutti i cosiddetti "tecnici" ma ... in effetti è proprio così   :Twisted Evil:  )

Per vedere il backup ti basta aggiungere alla condivisione SMB la directory del backup. Ovvero devi configurare samba.

----------

## fortek

Quindi :

```

bzip2: I/O or other error, bailing out.  Possible reason follows.

bzip2: File too large

        Input file = (stdin), output file = (stdout) 

```

Il motivo dell'errore non è la grandezza del file ?

----------

## fortek

Ho lanciato nuovamente :

 /bin/sh -x /root/backup.sh

risultato sempre :

```

+ folder_up=/home/admin/

+ folder_from=samba/

+ folder_to=/mnt/usbesterno/

++ date +%Y_%m_%d_%H_%M

+ formato=2013_12_18_15_02

+ monthly=true

+ month_day=1

+ log=/root/backup.log

+ echo

++ date '+%Y-%m-%d %H:%M'

+ esito='2013-12-18 15:02'

+ esito='2013-12-18 15:02 - '

+ clear

++ date +%A

+ oggi=Wednesday

++ date +%d

+ cur_day=18

+ is_the_date=false

+ esito_giorno=false

+ esito_mese=false

+ test -d /mnt/usbesterno/Wednesday

+ test -d /mnt/usbesterno/Wednesday

+ oggi=Wednesday/

+ cd /mnt/usbesterno/Wednesday/

+ test -f tmp_2008_07_30_23_59.bz2

+ mv tmp_2008_07_30_23_59.bz2 old.bz2

+ cd /home/admin/

+ tar -cjf /mnt/usbesterno/Wednesday/tmp_2013_12_18_15_02.bz2 samba/

bzip2: I/O or other error, bailing out.  Possible reason follows.

bzip2: File too large

        Input file = (stdin), output file = (stdout)

+ cd /mnt/usbesterno/Wednesday/

+ test -f tmp_2013_12_18_15_02.bz2

+ esito_giorno=true

+ test -f old.bz2

+ rm old.bz2

+ '[' true ']'

+ esito='2013-12-18 15:02 -  Copia del GIORNO avvenuta con successo'

+ echo 2013-12-18 15:02 - Copia del GIORNO avvenuta con successo

+ echo 2013-12-18 15:02 - Copia del GIORNO avvenuta con successo

+ mail -a From:xxx@xxx.it -s 'Log Server Saka Backup ' xxx@xxx.com

+ echo 2013-12-18 15:02 - Copia del GIORNO avvenuta con successo

+ mail -a From:xxx@xxxl.it -s 'Log Server Saka Backup ' xxx@xxx.eu

+ '[' 18 = 1 ']'

+ true

+ false

```

Quindi in sostanza mi fa un backup incompleto giusto ? Il file sarebbe ancora più grande di quello che ha scritto (che presumo sarà di 4 giga e rotti  come quello di ieri )

****

E aggiungo : quindi può esserci questo errore chissa da quanto tempo, il fatto che l'email di conferma mi arrivi comuqnue è fuorviante giusto ?

Il "bubbone" è saltato fuori perchè (chissà per quale mistero) l'email ha smesso di arrivarmi, altrimenti sarei andato avanti con quell'errore (e relativo backup incompleto) per chissà quanto tempo..........

O sto dicendo eresie informatiche ?

----------

## djinnZ

Il motivo dell'errore è che il file è più grande di 4GB, limite che probabilmente è stato innalzato all'epoca della configurazione del sistema (merdannium sono quasi certo che li piallava i file sopra i 2GB e cinque/sei anni or sono li potevi trovare ancora in giro i mentecatti che lo usavano).

In generale se si deve operare in ambiente legacy il limite è 2 GB, altrimenti è 4GB.

Senza dimenticare che, sempre se non ricordo male, c'è un problema con i bit finali al troncamento (per cui un file di 4 GB potrebbe essere leggermente più piccolo) ma è legato al singolo sistema e filesystem utilizzato.

Di norma non si fanno mai file più grandi di 2 GB se non per uso interno.

----------

## fortek

Che soluzione mi rimane quindi ?

Formattare l'hard disc in ntfs ?

Nessuna controindicazione tipo mancato riconoscimento di linux/gentoo ?

----------

## djinnZ

 *fortek wrote:*   

> Quindi in sostanza mi fa un backup incompleto giusto ? Il file sarebbe ancora più grande di quello che ha scritto (che presumo sarà di 4 giga e rotti  come quello di ieri )
> 
> ****
> 
> E aggiungo : quindi può esserci questo errore chissa da quanto tempo, il fatto che l'email di conferma mi arrivi comuqnue è fuorviante giusto ?
> ...

 Finalmente ...  :Crying or Very sad: 

I casi sono due: o ti metti a posto il sistema aggiornandolo (praticamente impossibile, è troppo vecchio) ed a questo punto puoi usare rsnapshot, ntfs o quel che ti pare o modifichi lo script tenendo conto di quello che hai per adattarlo al limite "serio" dei 2 GB.

Tieni conto che se sei in questa disgraziata repubblica e sei sottoposto agli obblighi di cui al dlgs 196/2003 sono più di cinque anni che stai violando la legge in pratica. Come ti ho già detto all'inizio.

Per il problema della traslazione dai filesystem nativi a vfat si deve prima capire cosa fa codesta macchina per poter dire, a ragion veduta, se la perdita della proprietà e dei permessi è influente o meno ed in quali termini.

----------

## fortek

In conclusione :

Per utilizzare rsnaphot o formattare in ntfs dovrei aggiornare il sistema, che è impossibile quindi scarto l'ipotesi

Soluzione due sarebbe splittare i file in parti più piccole come suggerito in questo post di Sabayonino :

Cito (sabayonino) :

Oppure potresti "splittare" il file durante la fase di compressione modificando il comando

Codice:	

tar -cjf /mnt/usbesterno/Monday/tmp_2013_12_16_16_31.bz2 samba/

in

Codice:	

tar -cjf ${folder_from} | splid -d -b 2000M -  ${folder_to}${oggi}tmp_${formato}.bz2.part	

dovrebbe creare dei file da meno di 2Giga (2G=2048M) nel formato <nome-backup>.bz2.part00 <nome-backup>.bz2.part01 etc

per ricomporre le parti in un file unico in caso di necessità (non nel filsystem FAT32) :

Codice:	

# <nome-backup>.bz2* > <nome-backup>.bz2	

[edit] però occorre modificare anche le altre parti dello script per rimuovere le parti "old". si dovrebbe controllare come si comporta .

Questa è l'unico tentativo che posso fare giusto ?

----------

## djinnZ

Rileggi quello che ho scritto, con calma ed attenzione, dal primo post. E non ci sono solo quelle ciofeche di VFAT32 e NTFS come filesystem... tanto per incominciare...

Se vuoi agire razionalmente prima si scompone il problema in necessità ed i base a quelle si trovano le soluzioni.

Non si procede con la prima fesseria che viene in mente.

Perché fai il backup? A cosa ti serve? etc. Stabilito questo si vede, con i mezzi a disposizione cosa ci si può inventare.

Meglio perdere un secondo a fare il quadro della situazione che buttarsi e ripetere gli stessi errori. Se non mi metti in condizione di aiutarti...

La prima cosa che non ho inteso è quale sia la ragione di fare un backup giornaliero differenziato.

Nei tuoi panni, anni or sono, visto che non era possibile contare su un minimo di capacità, non oso neppure parlare di professionalità, per l'assistenza ho fatto la scelta di arrangiarmi e mantengo da solo i miei sistemi¹.

Ti ripeto che la vigente legislazione (e lo volevano persino come presidente uno di quei fossili accademici e non, dopo i danni immani che hanno causato) impone l'aggiornamento dei sistemi oltre al backup periodico (di qui il fattto che quel carciofo del primo ministro recentemente abbia parlato di fondi per l'informatizzazione, c'è una legge che impone l'obsolescenza programmata a tornaconto di M$ che può imporre fetenzie come 8 segando il supporto alle versioni precedenti).

¹ ho lavorato nell'I.T., ma sono un C.d.L. non un tecnico (del piffero)

----------

## fortek

La mia conoscenza di gentoo (e di linux in generale) è limitata.

Io davo per scontato che chi ha impostato questo sistema avesse programmato degli aggiornamenti automatici (sempre che si possa fare con linux).

Ovvio che se lo avessi saputo avrei chiesto ed avrei pensato io a farli.

Il backup viene fatto poichè vengono salvati dati sensibili importanti (contabilità, file,listini etc)

Abbiamo questo server basato su gentoo dove gira il nostro gestionale e dove ci sono le cartelle della rete aziendale.

Il backup era programmato per salvare questi dati ogni giorno nel modo che abbiamo visto dallo script.

La mia necessità sarebbe di riprisitnare il sistema di backup così come era, o trovare una soluzione il più simile possibile (quindi backup quotidiano in automatico).

Il fatto che mi venga inviata una email di conferma, alla luce di quando abbiamo visto, non se se a questo punto serva a qualcosa vista la bassissima attendibilità...........

----------

## fortek

 *djinnZ wrote:*   

> 
> 
> La prima cosa che non ho inteso è quale sia la ragione di fare un backup giornaliero differenziato.
> 
> 

 

Ogni giorno vengo salvati nuovi dati (fatture, file di lavoro etc) e credo che , in accordo con chi ci fornisce il gestionale, la persona che ha creato il sitema lo abbia fatto così per poter ripristinare ogni giorno (in caso di necessità) le ultime cose salvate.

Grazie ancora per la disponibilità e chiedimi pure tutto ciò che serve per permetterti di aiutarmi   :Wink: 

----------

## djinnZ

UFFA.  :Evil or Very Mad: 

Fondamentalmente ci sono due approcci al salvataggio dei file: atomico o universale (per alcuni c'è anche molecolare, che sarebbe una via di mezzo); e ci sono tre politiche: incrementale, completo e differenziale.

Se hai a che fare con un archivio di singoli documenti il metodo atomico è quello più valido in quanto più affidabile; in caso di danno anche al backup, infatti, almeno ne recuperi una parte. Per l'approccio atomico ti rivolgi ad un banale cp o rsync (che hai sul tuo sistema).

Se hai a che fare con una miriade di piccoli file collegati incomprensibilmente tra di loro (come nei programmi di contabilità) l'approccio migliore è universale, perché o recuperi tutto o non hai niente in mano. Quindi usi soluzioni come tar | bzip per ridurre le dimensioni di un unico "pacco" di dati ma anche rsync o cp vanno bene. Inutile, per modo di dire, sottolineare che se uno dei file od il singolo file che compongono il backup sono danneggiati facile che lo hai perso per intero.

Questo è il primo problema. A quanto pare abbiamo capito che il tuo approccio deve essere universale (anche se non so a cosa possano servire dei backup se non puoi ripristinare il sistema in grado di leggerli).

Il secondo problema è capire se vuoi risparmiare tempo e ti serve incrementale o differenziale o ti basta il completo.

Visto che lo lasci in automatico possiamo parlare di completo, tanto ti basta che al mattino seguente sia stato fatto, per quello che mi pare di capire.

Di sicuro in vece di 

```
tar -cjf ${folder_to}${oggi}tmp_${formato}.bz2 ${folder_from} 
```

e la sola verifica dell'esistenza del file di backup (che è una mastodontica coglionata)

```
tar -cjf ${folder_to}${oggi}tmp_${formato}.bz2 ${folder_from} || rm ${folder_to}${oggi}tmp_${formato}.bz2
```

 dovrebbe rendere lo script accettabile senza troppe modifiche.

Spostarlo in /etc e dargli i permessi opportuni sarebbe aderire al buonsenso.

Un remount rw ed un remount ro all'inizio ed alla fine dovrebbero garantirti da problemi con la disconnessione (ed il disco andrebbe montato in ro).

Un banale

```
[backup]

comment = backup

path = /mnt/usbesterno

public = yes

writable = no
```

aggiunto nalla conf di samba dovrebbe consentirti di vedere il contenuto del disco.

Oppure potresti pensare di formattare il disco con ext3 e renderlo leggibile da windows installando sulle macchine windows i driver che ti ho indicato. Niente più problemi di permessi e limitazioni di dimensioni.

Una alternativa potrebbe essere un approccio atomico completo a mezzo rsync o cp. Quindi si tratta solo di andare a sostituire il comando tar con cp od rsync nello script originale.

Con un rsync -caAHXrv dovresti metterci pochi minuti a fare il backup invece dell'oretta che richiede normalmente. Spazio maggiore ed i permessi, se usi vfat, sono le incognite.

Il problema è che non so come sia organizzata codesta contabilità. Se fossi certo che file e permessi sono univoci si potrebbe ovviare con una riga di mount del genere 

```
qualcosa    /mnt/usbesterno    vfat    noauto,users,exec,sync,uid=000,gid=000,umask=0000,dmask=000,flush,ro    0 0
```

e continuare ad usare vfat con rsync o cp.

Si dovrebbe adattare lo script a gestire directory in vece di file .bz2 ma siamo sul semplice.

Se è immondizia derivata da vecchi programmi in cobol (tipo le pseudo aziende acquistate da certi fondi internazionali) si dovrebbe capire qual è l'utente proprietario ed i permessi sono tutti a 0777 per dirne una... quindi sarebbe realmente fattibile.

Ti ripeto che sistemato il problema immediato ti conviene attivarti per imparare ad aggiornare il sistema. La via più semplice sarebbe incominciare da zero su un altro computer e copiare la configurazione. Quando ti senti sicuro che tutto è a posto li scambi.

Ed a questo punto potresti pensare di fare qualcosa di più sofisticato, compreso il backup remoto delle macchina windows, il backup in automatico quando colleghi il disco etc. Con qualsiasi strumento ti venga in mente.

Non è impossibile, tutt'altro.

E, cosa più importante, alla fine non dovrai più dipendere da coprofiti come quello che ti ha lasciato codesto regalo... sotto l'albero.  :Twisted Evil: 

Quando si parla di gestionali il motto è "se non sono ottusi, inconpenti, pasticcioni e delinquenti non li vogliamo" per il reclutamento del personale.

Per gli interventi "esterni" poi, la consuetudine è sempre introdurre (ma anche imporre) mentecatti e sfigati da cui estorcere partecipazioni al compenso ed ottimi per scaricare le future necessità di sostituzione ed intervento (o scaricare sulla clientela i dipendenti incapaci, dopo averli sfruttati, facendoli mettere in proprio a fare assistenza HW).

Con l'arrivo delle multinazionali poi siamo su termini troppo volgari per essere espressi qui.

Aggiornamenti automatici su gentoo non se ne impostano, mai.

Ricompilare tutto è una operazione semplice ma prende tempo, carica molto la macchina (al punto che può diventare inutilizzabile per le altre funzioni) e non è garantito che tutto vada a posto automaticamente, nulla di trascendentale, in genere si tratta di ripulire pacchetti vecchi o ricostruire dipendenze ma non sono cose da fare in automatico. (a dire il vero il 99% dei problemi odierni nascono da aggiornamenti interrotti a metà, IMHO è una cretinata a prescindere).

Personalmente uso due partizioni, una con il sistema in esecuzione ed una con la copia sulla quale compilo. Quando è tutto a posto porto i binari compilati sull'installazione principale.

Gentoo ti garantisce tempi di esecuzione dimezzati e pochissime sorprese rispetto ad immondizia come cessos ... pardon CentOS... ma tutto ha un prezzo.

Chiaro? E non sono tutte le opzioni. Persino con le limitazioni attuali.

Mi serve capire come sono impostati i permessi e chi è il proprietario dei file da copiare per poterti dare suggerimenti affidabili.

Per l'opzione filesystem sei tu a dover decidere.

N.B.: domani è l'ultimo giorno di lavoro prima che mi diriga verso altri lidi dove spero di non essere vessato ulteriormente da canzoncine natalizie, buonismi demenziali, richieste di doni, inviti traducibili nell'accudire l'altrui prole etc.  :Mr. Green: 

Maledette tradizioni medioevali imbecilli esaltate in chiave consumistica ...  :Evil or Very Mad: 

----------

## fortek

Ok, sono in chiusura anche io, aggiorneremo la discussione alla riapertura !!!

----------

