Backups

38
Backups, esta vez de verdad Svet Ivantchev, eFaber UniEE, 27 de marzo de 2007

Transcript of Backups

Page 1: Backups

Backups, esta vez de verdad

Svet Ivantchev, eFaber

UniEE, 27 de marzo de 2007

Page 2: Backups

Las copias de seguridad

• Necesidad

• Ya, pero es un rollo

• Los dos tipos de personas

Page 3: Backups

¿Cómo nos quedará?

X X

Page 4: Backups

¿Cómo nos quedará?

Page 5: Backups

¿Cómo nos quedará?

Page 6: Backups

¿Cómo nos quedará?

• cd /backup/snapshots/

• ls -l

drwxr-xr-x 14 svet admin 476 Mar 20 23:44 snapshot-2007-03-20drwxr-xr-x 14 svet admin 476 Mar 21 23:44 snapshot-2007-03-21drwxr-xr-x 14 svet admin 476 Mar 22 23:44 snapshot-2007-03-22drwxr-xr-x 14 svet admin 476 Mar 23 23:44 snapshot-2007-03-23drwxr-xr-x 14 svet admin 476 Mar 24 23:44 snapshot-2007-03-24drwxr-xr-x 14 svet admin 476 Mar 25 23:44 snapshot-2007-03-25

Page 7: Backups

Foto

Page 8: Backups

¿Cuanto ocupa?

• $ cd /backup/snapshots/$ du -s -h snapshot-2007-03-20470M snapshot-2007-03-20

$ du -s -h snapshot-2007-03-23688M snapshot-2007-03-23

$ du -s -h snapshot-2007-03-25689M snapshot-2007-03-25

$ du -s -h753M .

• 470M + 688M + 689M + ⋯ = 753M ???

Page 9: Backups

¿Cuanto ocupa?

• $ cd /backup/snapshots/$ du -s -h snapshot-2007-03-20470M snapshot-2007-03-20

$ du -s -h snapshot-2007-03-23688M snapshot-2007-03-23

$ du -s -h snapshot-2007-03-25689M snapshot-2007-03-25

$ du -s -h753M .

• 470M + 688M + 689M + ⋯ = 753M ???

Nota: la programación necesaria son dos lineas (2 de verdad)

Page 10: Backups

Componentes

• Software:

• rsync

• cp y hardlinks

• (opcionalmente) cron

• Hardware (opcional)

• Un NSLU2 (+ Unslung firmware)

• Disco duro externo USB2

Page 11: Backups

rsync• $ rsync -ae ssh mi_portatil:/home/datos_importantes /backup/2007-03-27

Page 12: Backups

Día 1

Page 13: Backups

Día 2

Page 14: Backups

Día 3

Page 15: Backups

Evolución

Page 16: Backups

No todo cambia

Page 17: Backups

Nuevo

Page 18: Backups

Nuevo

Page 19: Backups

Nuevo

Page 20: Backups

Enlaces simbólicos

• $ ls -ltotal 85052-rw-r--r-- 1 svet svet 86999860 2007-03-26 22:27 fichero1.dat

$ ln -s fichero1.dat fichero2.dat $ ls -ltotal 85052-rw-r--r-- 1 svet svet 86999860 2007-03-26 22:27 fichero1.datlrwxrwxrwx 1 svet svet 12 2007-03-26 22:27 fichero2.dat -> fichero1.dat

$ du -s 85056 .

Page 21: Backups

Enlaces (hardlinks)• $ ls -l

total 85052-rw-r--r-- 1 svet svet 86999860 2007-03-26 22:27 fichero1.dat

$ ln fichero1.dat fichero2.dat $ ls -ltotal 170104-rw-r--r-- 2 svet svet 86999860 2007-03-26 22:27 fichero1.dat-rw-r--r-- 2 svet svet 86999860 2007-03-26 22:27 fichero2.dat

$ du -s 85056 .

$ ls -i fichero1.dat 3908701 fichero1.dat

$ ls -i fichero2.dat 3908701 fichero2.dat

Page 22: Backups

cp -al origen destino

Page 23: Backups

Todo junto

• rsync -v --delete -a servidor:/mis_datos /backup

cp -al /backup/mis_datos /snapshots/snapshot-`date -I`

X X

Page 24: Backups

Harwdare

Cisco/Linksys NSLU2:

Intel XScale IXP420, 266 MHz,8MB flash, 32MB SDRAM,

Ethernet,2 puertos USB 2

Page 25: Backups
Page 26: Backups
Page 27: Backups
Page 28: Backups

Unslung• $ ssh -l root 192.168.1.78

Welcome to Unslung V2.3R63-uNSLUng-6.8-beta

---------- NOTE: THIS SYSTEM IS CURRENTLY UNSLUNG ----------

BusyBox v0.60.4 (2005.03.22-06:52+0000) Built-in shell (ash)Enter 'help' for a list of built-in commands.

# df

Filesystem 1k-blocks Used Available Use% Mounted onrootfs 240125792 75010680 162675564 32% //dev/sdb1 6528 6332 196 97% /initrd/dev/sdb1 240125792 75010680 162675564 32% //dev/sda1 307426936 223085068 81218592 73% /share/flash/data/dev/sdb1 240125792 75010680 162675564 32% /share/hdd/data/dev/sdb2 116661 4155 111302 4% /share/hdd/conf/dev/sdb2 116661 4155 111302 4% /share/flash/conf

Page 29: Backups

Unslung: ipkg

• # ipkg list

abook - 0.5.6-1 - Abook is a text-based addressbook program designed ...adduser - 1.1.3-9 - a multi-call binary for login and user account administrationadns - 1.3-2 - Asynchronous resolver library and DNS resolver utilities.alac-decoder - 0.1.0-2 - A decoder for the apple lossless file format...asterisk - 1.2.14-3 - Open Source VoIP PBX System...rsync - 2.6.9-2 - fast remote file copy program (like rcp)...zoo - 2.10-1 - zoo - File archiving utility with compressionzsh - 4.2.6-3 - Zsh is a shell designed for interactive use.

Page 30: Backups

Unslung: ipkg

• # ipkg info rsync

Package: rsyncVersion: 2.6.9-2Status: install user installedSection: netArchitecture: armebmaintainer: NSLU2 Linux <[email protected]>MD5Sum: 4a7310cefe3d43ab5e6bd49577cdd057Size: 200677Filename: rsync_2.6.9-2_armeb.ipkSource: http://www.samba.org/ftp/rsync/rsync-2.6.9.tar.gzDescription: fast remote file copy program (like rcp)

# ipkg install rsync# ipkg install bash

Page 31: Backups

Backups again

Page 32: Backups

Backups again

Page 33: Backups

Backups again

Page 34: Backups

Backups again

Page 35: Backups

Extra: Amazon S3

Page 36: Backups
Page 37: Backups

• import flickrimport BitBucketimport urllibme = flickr.people_findByUsername("svet")bucket = BitBucket.BitBucket("svet-flickr")page = 1total_f = found_f = 0while 1: try: photos = flickr.people_getPublicPhotos(me.id, 1000, page) for photo in photos: total_f = total_f + 1 if bucket.has_key("%s-%s" % (photo.title, photo.id)): pass # ok, ya la tenemos else: data = urllib.urlretrieve("http://static.flickr.com/%s/%s_%s_o.jpg" % \ (photo.server, photo.id, photo.secret), "flickr.jpg") bits = BitBucket.Bits(filename="flickr.jpg") bucket["%s-%s" % (photo.title, photo.id)] = bits print "saving %s" % photo.title found_f = found_f + 1 page = page + 1 except AttributeError: break # bucket vacíoprint "Encontradas %s fotos, guardadas %s nuevas" % (total_f, found_f)

Ejemplo de uso

Page 38: Backups

Refrencias

• http://www.nslu2-linux.org/

• http://samba.anu.edu.au/rsync/

• http://aws.amazon.com

• http://www.mikerubel.org/computers/rsync_snapshots/

• http://www.postneo.com/2006/03/22/