Passa ai contenuti principali

Il mio server internet personale parte 8 : Backup


"Salvami dalla rottura di un disco, sono il tuo lavoro e non voglio smarrirmi su una penna usb o nel disordine del tuo hd esterno."
Potrei mettere una copia del mio lavoro sul server google docs o sul server ubuntu one, ma dopo un po mi scordo sicuro.Forse potrei  istruire il mio server internet personale per farlo con una cadenza costante :), forse è più affidabile ... vediamo come.

all'inizio volevo montare una nuvola come un file system, ma non è stato possibile con google docs o ubuntu one, dopo di che ho cambiato la filosofia :)

Al momento urge fare una copia di sicurezza del lavoro, soprattutto dei sorgenti dei programmi scritti e conservati nel server svn.
Ho risolto usando ubuntu 1, vediamo come :
innanzi tutto ho acceduto in modalità grafica alla macchina, per farlo ho usato tightvncserver
dalla classica shell del server ho dato
apt-get install tightvncserver
quindi l'ho lanciato
tightvncserver
e mi ha chiesto di immettere la password.
a questo punto ho usato il comando
netstat
per controllare con certezza quale è la porta tcp su cui sta ascoltando e mi sono collegato dal mio pc su cui la tastiera funziona con un client tightvnc :).
ho installato ubuntu one e l'ho configurato con il mio account.
Ubuntu one ha creato una cartella Ubuntu One nella mia home e la terrà sincronizzata.
dentro questa cartella ho creato una cartella svn, e sono tornato alla shell.
da root come sempre ho creato un file cron.sh con il seguente contenuto e l'ho chiamato cron.sh:

#!/bin/bash
NOW=$(date +"%Y-%m-%d")
FILE="backup.$NOW.tar.bz2"
tar -cjvf /home/utente/Ubuntu\ One/svn/$FILE /var/svn/repository
chown utente:utente /home/utente/Ubuntu\ One/svn/$FILE

la prima riga dice che è uno script
la seconda crea una variabile che contiene la data odierna espressa come anno-mese-giorno
la terza specifica che il nome del file deve contenere la data
la quarta fa partire una compressione della cartella che contiene i repository svn dei miei progetti
e siccome è una operazione che fa root, risistema i permessi del file appena creato, così è pronto per il sync.

ultimo passaggio, dobbiamo ancora dire quando fare in automatico questo backup. per questo usiamo crontab e digitiamo
crontab -e
io scelgo di usare nano per editare il file e metto questa riga :)

 0 2 * * * /root/cron.sh

che fa partite lo script sopra tutti i giorni alle 2 di notte.
sostituendo l'ultimo asterisco con una cifra da 0 a 6 era possibile farlo settimanalmente.

e spiegato così sembra che ci vogliono 5 minuti per farlo :(

Nota bene nessuno dei metodi sotto avevano portato a risultati positivi !!

Questi sono stati i tentativi che sono andati male, li lascio per chi volesse leggere :)

Innanzi tutto se non ce l'ho già mi iscrivo ad ubuntu one e mi creo un account
ovviamente è gratuito se vi bastano 5 gb https://one.ubuntu.com/
abbiamo quindi il nostro account  e la nostra password, passiamo all'installazione del software necesario.
Su linux è possibile montare in una cartella una cartella webdav. Non sono parolacce, montare significa che possiamo dire che nella cartella /mnt/ubuntuone verrà collegato il contenuto della cartella che abbiamo sul server di ubuntu, così da poterci leggere e scrivere come se fosse in locale, il server di ubuntu usa una tecnologia chiamata webdav :). passiamo ai comandi.

da una ricerca approfondita esce fuori che ubuntu one non usa webdav come qualcuno suggeriva, quindi, se vogliamo montare il file system per accedervi dobbiamo cambiare piattaforma, proviamo google docs :
 A  questo punto il discorso sembra essere in discesa, perchè troviamo una semplice guida che proviamo a seguire... innanzi tutto andiamo qui: http://code.google.com/p/gdocsfs/
prendiamo il percorso per scaricare i file necessari che al momento in cui scrivo è http://gdocsfs.googlecode.com/files/gdocsfs-0.0.1.zip
e cominciamo a lavorare :)
a me piace lamerare e lavorare come root :)
sudo su
diamo password
cd /root
wget http://gdocsfs.googlecode.com/files/gdocsfs-0.0.1.zip
potrebbe salvarlo con un nome strano, nel caso rinominiamo lasciando solo  gdocsfs-0.0.1.zip
mv cosastranagdocsfs-0.0.1.zip gdocsfs-0.0.1.zip

unzip gdocsfs-x.y.z.zip
cd gdocsfs
ora dobbiamo scegliere dove installarlo... un buon linuxiano farebbe un ambiente
per il backup, un utente appostito o un gruppo con privilegi specifici ben
congegnato in maniera tale da preservare la sicurezza, ma noi siamo alle prime armi
e non vogliamo lanciare i missili, abbiamo bisogno di un modo semplice per fare il
backup quindi continuiamo a lamerare con il nostro utente root. sudo ./install /root/
nano -w /root/gdocsfs/conf/gdocsfs.proprerties
aggiungiamo utente e password
e non funziona neppure questo, evidentemente il progetto deve essere vecchio
perchè non si collega e cerca una connessione ssl.
abbiamo già perso 2 giornate, ma non ci fermiamo, e soprattutto non le perderete voi a fare le ricerche.

proviamo adesso con https://launchpad.net/google-docs-fs
procediamo quindi con aggiungere il repository mantenuto da questo italiano di nome Invernizzi :)
nano -w /etc/apt/sources.list
aggiungiamo 2 righe
deb http://ppa.launchpad.net/invernizzi/google-docs-fs/ubuntu VERSIONE_TUA_DI_UBUNTU main deb-src http://ppa.launchpad.net/invernizzi/google-docs-fs/ubuntu VERSIONE_TUA_DI_UBUNTU main
ricordate di cambiare VERSIONE_TUA_DI_UBUNTU con il nome della vostra
atp-get update
apt-get install google-docs-fs
ed abbiamo finito
lanciamo
gmount /mnt/gdocs nomeutente@gmail.com
mi chiede la password e non funziona :(


Commenti

Post popolari in questo blog

Blender e gli scacchi fatti in casa con una stampante 3d

Un giorno ho deciso di provare una stampante 3D, e per prepararmi ho scelto di imparare a usare Blender. Sembrerà ovvio, ma per me questa decisione era cruciale: non trovavo alcuna gioia nell'idea di stampare solo modelli creati da altre persone. Volevo essere autonomo. Se mi fosse servito un ingranaggio, un coperchietto o qualsiasi altro oggetto, volevo essere in grado di disegnarlo e poi stamparlo. Se un giorno deciderete di acquistare una stampante 3D, vi do lo stesso consiglio: imparate prima a usare un programma di disegno 3D. C'è molta più soddisfazione nel stampare qualcosa che avete creato voi stessi. Ho scelto Blender come strumento di apprendimento perché è un software open source. Non solo è gratuito, ma è aperto a contributi da parte di tutti, un grande vantaggio per chi cerca flessibilità e innovazione. Così, prima ancora di acquistare la stampante, ho scaricato Blender dal sito ufficiale www.blender.org , l'ho installato e ho iniziato con il mio primo tutorial...

Gnome cambia l'immagine di sfondo ogni tot minuti

Ci sono molti programmi wallpaper changer che promettono di cambiare lo sfondo di gnome o ubuntu, ma a me non funzionano. Cambiare lo sfondo selezionandolo a caso in una cartella delle immagini, sembra una cosa semplice, ed in effetti lo è :). Vediamo come svincolarci dal sistema operativo e dai tool grafici. Utilizzeremo gconf tool ,  python e crontab. nella nostra cartella home creiamo una cartella bin $ mkdir bin spostiamoci in bin e creiamo un file per cambiare lo sfondo $ cd bin $ gedit -w cambiaSfondo.sh con questo contenuto : PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) set DISPLAY=:0 set GSETTINGS_BACKEND=dconf /usr/bin/python /home/ NOMEUTENTE /bin/randomWall.py attenti a cambiare NOMEUTENTE con il vostro nome utente!!! dopo di che creiamo il file python che sorteggia lo sfondo e lo applica $ gedit randomWall.py con il seguente contenuto : #!/usr/bin/python import o...

simple port forwarding example

Immaginiamo di avere un firewall linux  e voler pubblicare un servizio di un server interno sulla rete, quindi vogliamo che ogni accesso al nostro indirizzo ip pubblico che riguarda la porta in oggetto sia rediretto sul nostro server interno. in pratica esponiamo un servizio sulla rete pubblica recuperandolo da una rete privata. Tutto questo si traduce in effetti in pochissime righe per iptables. Dati di partenza :  indirizzo ip del server interno esempio :     192.168.1.150 porta del servizio del server interno esempio : 8080 porta pubblica del servizio che vogliamo esporre : 80 creo un file in /root/forward.sh con la confgurazione di iptables #!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -A PREROUTING -t nat -p tcp  --dport 80 -j DNAT --to 192.168.1.150:8080 /sbin/iptables -A FORWARD  -d 192.168.1.150 -p tcp --dport 80 -j ACCEPT /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE volendo aggiungo al crontab @reb...