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

linux : software raid con mdadm

Software raid di linux. Fake raid e le bizarrie del mondo moderno. Ovvero la storia di come tenere i propri dati al sicuro usando più dischi. Preambolo (potrebbe essere noioso...): Il bios di un server allo startUp mi fa vedere un controller raid, ed io come uno sciocco ci credo, tanto da pensare di usarlo per mettere i dati al sicuro. In effetti un raid di livello 1 permette di scrivere contemporaneamente su 2 dischi, quindi se uno cede, l'altro continua a funzionare, dandoti il tempo ed il modo di intervenire e permettendoti di non perdere i tuoi preziosi dati. ci sono altri livelli di raid ma si possono approfondire ovunque. Dicevamo, il server ha un controller raid ed io lo voglio usare, quindi accedo al controller con f8 configuro 2 drive logici, di cui il secondo è formato da 2 dischi, per un totale di 3 dischi fisici e 2 logici. Parte linux e vedo sempre i 3 dischi ... sda, sdb ed sdc... e qui vado in crisi...  Per fortuna c'ho un amico che mi illumina, si tr...

Eclipse e Subversion come funziona ?

Eclipse è uno splendido strumento di programmazione, ma un programmatore è un pò come lo scrittore di un libro, ha i suoi raptus di programmazione e vuole scrivere codice dal letto, dalla scrivania o addirittura consultarlo sul tablet mentre è concentrato comodamente sul bagno. Insomma il lampo di genio non va mai sprecato, quindi se abbiamo il nostro server internet con tanto di subversion, possiamo prendere le nostre installazioni di eclipse ( non lavoriamo sempre e solo da 1 pc ) e: dal menù " Help " scelgo la voce : Install new software aggiungo http://download.eclipse.org/technology/subversive/1.0/update-site/     seleziono tutto e procedo, mi viene chiesto di riavviare eclipse, una volta riavviato mi viene proposto un elenco di moduli svn, scelgo l'svn kit che mi sta più simpatico (la versione + recente) e procedo. Vecchio modo: http://subclipse.tigris.org/update_1.4.x   ( se volete sapere quale è l'ultima versione disponibile andate qui h tt...

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...