Utilizzo del controllo della versione per gestire i backup del sito?

5

La settimana scorsa ho iniziato a fare backup giornalieri del mio sito relativamente piccolo (~ 300mb). I backup sono compressi, quindi è meno spazio, ma si sommerà rapidamente, specialmente quando il mio sito si ingrandirà.

Stavo pensando di decomprimere l'ultimo backup e, d'ora in poi, basta usare mercurial per aggiungere / aggiornare file dai backup più recenti.

Ci sono degli svantaggi? C'è un modo migliore per farlo?

    
posta mowwwalker 15.05.2012 - 22:17
fonte

5 risposte

8

Git è la scelta migliore, dal momento che consente commit, rami, ecc. "a buon mercato" ogni commit è semplicemente una differenza del commit precedente, quindi la dimensione è minima, ad esempio se hai

index.html
image.png
README.txt
Makefile
main.c

e cambi solo index.html, quindi questo è tutto ciò che è memorizzato nel commit, rendendo git estremamente efficiente nello spazio, cosa c'è di più, memorizza solo una o due righe modificate, potrebbe essere 500000 file html linea ( WoAH) rendendolo super veloce.

Questo significa che il primo push a qualunque server Git che stai usando potrebbe essere lungo. Ma dopo tutto ciò non dovrebbe perdere tempo.

E la cosa bella è che tutto può essere fatto localmente, puoi fare tutte le modifiche che vuoi a un repository locale, eseguire il commit tutte le volte che vuoi e poi premere tutto in una volta, e poiché i repository possono essere locali , puoi spingere a un altro fisico (nel senso virtuale: P) sul tuo disco rigido, o su un server web, o persino tramite email!

    
risposta data 15.05.2012 - 23:16
fonte
1

Io uso git per questo scopo. Supponendo unix / linux:

cd /path/to/site
git init
chmod 600 .git
vi .gitignore  # add any tmp files you dont want here
git add .
git commit -m "initial commit"

Quindi aggiungi questo al crontab notturno:

0 3 * * *     cd /path/to/project; git add . && git add -u && git commit -m "Daily Commit" 

Potresti anche impostare un push su un telecomando (come github) per veri backup.

    
risposta data 15.05.2012 - 23:11
fonte
0

IMO questo è il modo migliore, lo sto facendo anche in questo modo.
(basta eseguire il commit di ogni modifica e inviare l'intera operazione a un repository privato su Bitbucket)

Non ha assolutamente senso copiare sempre l'intero 300 MB se sono stati modificati solo alcuni file.
Inoltre, ottieni un log delle modifiche "gratuitamente" (che non hai se fai un file ZIP ogni giorno).

    
risposta data 15.05.2012 - 22:21
fonte
0

Sicuramente la strada da percorrere qui. Un altro vantaggio: puoi facilmente annullare le modifiche in molti casi, se necessario. Mi ha salvato da più di alcuni cattivi aggiornamenti. . .

    
risposta data 15.05.2012 - 22:35
fonte
0

Git è un ottimo modo per andare come menzionato da altri. Per il database (come MySQL), dovresti essere in grado di creare un cron job che esegue uno script per eseguire il backup del database e ruotare i file di log.

s, e usa la registrazione giornaliera Faccio qualcosa del tipo:

/ usr / sbin / logrotate -s file di stato logrotate.conf

mysqldump --tables --add_drop_table --user = my-db-username --password = 'my-password' --host = dbase-server mio-database > /the/backup/dir/my-database.sql

Il mio logrotate.conf dice di fare i registri giornalieri, comprimere, ruotare ogni 14 giorni. Faccio jolly per applicarlo a tutti i file * .sql.

    
risposta data 17.05.2012 - 01:39
fonte

Leggi altre domande sui tag