PDA

View Full Version : Script backup su NFS


peloo
21-01-2020, 19:30
Ciao a tutti!!
Vi chiedo aiuto perchè le mie conoscenze sono abbastanza elementari..
Ho una raspberry, con raspbian jessie, che uso come datalogger per i consumi e la produzione fotovoltaica di casa mia..
E' già presente uno script che effettua il backup tramite server ftp.
Siccome ho un nas ed è già attiva la connessione nfs è possibile modificare lo script perchè effettui la stessa cosa ma copiando i files in una cartella di rete?
Lo script è questo:
#! /bin/sh
# BEGIN INIT INFO
# Short-Description: backup giornaliero
# Description: Questo file è usato per eseguire una copia giornaliera
# dei dati del datalogger 123solar e di MeterN di 30 giorni con metodo fifo
#
# posizionare il file in /var/www/MyScripts
### END INIT INFO
# Author: Walter Borin
# Mod: Flavio Anesi
#
# Do NOT "set -e"
TODAY=$(date +"%d-%b-%Y") # Today's date like DD-MMM-YYYY
RMDATE=$(date +"%d-%b-%Y" -d '30 days ago') # TODAY minus X days ago - too old files
FTPUSER=user # User (inserire il vostro UserId)
FTPPW=password # Password (inserire la password per l'ftp)
FTPSERVER=192.168.1.X # IP server ftp (indirizzo IP del vostro server FTP)
LFTP=/usr/bin/lftp # Path to binary
DATADIR=/var/www/123solar/data # Your data archives are here- 123solar
DATADIR2=/var/www/metern/data # Your data archives are here - metern
TMPDIR=/var/www/MyScripts # Your temp backup file are here
FTPDIR=/Public/Raspberry/backup # Your backup dir in ftp dir
cd $TMPDIR
tar -czf backupsolar_$TODAY.tar.gz $DATADIR
tar -czf backupmetern_$TODAY.tar.gz $DATADIR2
$LFTP << EOF
open $FTPUSER:$FTPPW@$FTPSERVER
put -O $FTPDIR backupsolar_$TODAY.tar.gz
wait
put -O $FTPDIR backupmetern_$TODAY.tar.gz
wait
cd $FTPDIR
rm -rf backupsolar_$RMDATE.tar.gz
wait
rm -rf backupmetern_$RMDATE.tar.gz
wait
close
exit
EOF
cd $TMPDIR
rm -rf backupsolar_$TODAY.tar.gz
rm -rf backupmetern_$TODAY.tar.gz
#echo "Backup del: $TODAY salvato in FTP"
#

Non voglio attivare il server ftp del nas solo per fare il backup, occuperei risorse della macchina inutilmente..
Chi mi può aiutare?
:muro:

Kaya
22-01-2020, 07:18
La cosa è molto più semplice di quanto credi.
Prima di tutto devi montare lo share NFS in un punto ( ti mando a questo link per vedere come fare https://askubuntu.com/questions/890981/how-to-configure-a-nfs-mounting-in-fstab/890989 ) - suggerimento di mettere la riga in /etc/fstab così lo monta ad ogni avvio del sistema.

Dopodichè rimuovi tutta la parte riguardante l'FTP e lo sostituisci con un banale copia:
poniamo che /Public/Raspberry/NFS sia il nuovo mountpoint
NFSDIR= /Public/Raspberry/NFS
cp $TMPDIR/backupsolar_$TODAY.tar.gz $NFSDIR
cp $TMPDIR/backupmetern_$TODAY.tar.gz $NFSDIR

tutto qua

peloo
28-01-2020, 00:17
La cosa è molto più semplice di quanto credi.
Prima di tutto devi montare lo share NFS in un punto ( ti mando a questo link per vedere come fare https://askubuntu.com/questions/890981/how-to-configure-a-nfs-mounting-in-fstab/890989 ) - suggerimento di mettere la riga in /etc/fstab così lo monta ad ogni avvio del sistema.

Dopodichè rimuovi tutta la parte riguardante l'FTP e lo sostituisci con un banale copia:
poniamo che /Public/Raspberry/NFS sia il nuovo mountpoint
NFSDIR= /Public/Raspberry/NFS
cp $TMPDIR/backupsolar_$TODAY.tar.gz $NFSDIR
cp $TMPDIR/backupmetern_$TODAY.tar.gz $NFSDIR

tutto qua
Sono riuscito a montare la cartella nfs dopo diversi tentativi ed un lungo momento di panico perchè dopo la modifica di /etc/fstab non bootava piu il raspy:cry: :eek: :eek:
Per fortuna c'era un backup del fstab e, dopo aver installato un programma per leggere ext4 su win, son riuscito a ripristinarlo.
Fiuuuuuu!!!
Adesso ho fatto un altro backup del fstab,non si sa mai.. :D

Veniamo a noi...
Ho modificato lo script, ma credo ci siano delle righe di troppo..
Prima di provarlo volevo la tua approvazione..

#! /bin/sh
# BEGIN INIT INFO
# Short-Description: backup giornaliero
# Description: Questo file è usato per eseguire una copia giornaliera
# dei dati del datalogger 123solar e di MeterN di 30 giorni con metodo fifo
#
# posizionare il file in /var/www/MyScripts
### END INIT INFO
# Do NOT "set -e"
TODAY=$(date +"%d-%b-%Y") # Today's date like DD-MMM-YYYY
RMDATE=$(date +"%d-%b-%Y" -d '30 days ago') # TODAY minus X days ago - too old files
DATADIR=/var/www/123solar/data # Your data archives are here- 123solar
DATADIR2=/var/www/metern/data # Your data archives are here - metern
TMPDIR=/var/www/MyScripts # Your temp backup file are here
NFSDIR=/media/backup
cd $TMPDIR
tar -czf backupsolar_$TODAY.tar.gz $DATADIR
tar -czf backupmetern_$TODAY.tar.gz $DATADIR2
$LFTP << EOF
cp $TMPDIR/backupsolar_$TODAY.tar.gz $NFSDIR
cp $TMPDIR/backupmetern_$TODAY.tar.gz $NFSDIR
cd $NFSDIR
rm -rf backupsolar_$RMDATE.tar.gz
wait
rm -rf backupmetern_$RMDATE.tar.gz
wait
close
exit
EOF
cd $TMPDIR
rm -rf backupsolar_$TODAY.tar.gz
rm -rf backupmetern_$TODAY.tar.gz
#echo "Backup del: $TODAY salvato in NFS"
#

Quali righe superflue sono da cancellare?
Grazie mille per l'aiuto!!!!

Kaya
28-01-2020, 07:09
I comandi
wait
close
exit
EOF

mi sembrano tutti comandi correlati ad FTP.
Quindi puoi eliminarli.

peloo
28-01-2020, 18:13
I comandi
wait
close
exit
EOF

mi sembrano tutti comandi correlati ad FTP.
Quindi puoi eliminarli.

Anche il comando
$LFTP << EOF
va eliminato, vero?

Kaya
29-01-2020, 07:47
Si.
Quel comando dice che passa a LFTP (cioè /usr/bin/lftp ) tutto quello che viene finchè trova EOF come parametro.
Cosa che ora non interessa più.

peloo
29-01-2020, 09:16
Si.
Quel comando dice che passa a LFTP (cioè /usr/bin/lftp ) tutto quello che viene finchè trova EOF come parametro.
Cosa che ora non interessa più.

Perfetto!!
Funziona tutto!
Ti ringrazio ☺️
Super gentile 😘