2007年5月15日星期二

备份(Backup and Recovery)

Deyou.Yang (yangdeyou@gmail.com) System Management
15 May 2007

天有不测风云。我们迟早会遇到一些意想不到的事情。这里将介绍一些保证睚灾难来临之前准备好数据副本的方法。

  • 通过ssh使用tar工具执行备份
test@home:~$scp /app/*.tar.gz 192.168.0.8:/app
scp不可跨越子目录保留文件的所有者和权限位,ssh能像标准Unix命令一样与其他命令组合使用。若要将一个服务器上home目录的所有文件备份到另一个服务器上的存档中,可以使用以下命令:
root@home:~#tar zcvf - /home | ssh 192.168.0.8 "cat >home-homes.tgz"tar zcvf - /home | ssh 192.168.0.8 "cat >home-homes.tgz"
可以将压缩存档文件直接写到远程计算机的磁带驱动器中:
root@home:~#tar zcvf - /home | ssh 192.168.0.8 "cat >/dev/tape"
文件夹(tomcat)同步
root@home:~#cd /app;tar zcf - tomcat/ \
| ssh 192.168.0.8 "cd /app; mv tomcat tomcat.bak; tar zpxvf -"
本地大存档还原到远端服务器
root@home:~#ssh oracle@192.168.0.8 "cd /app/oracle/log; tar zpvxf -" \
< log.tgz

oracle@DB1:~$ssh root@home "cat log.tgz" \
| tar zpvxf -

  • 通过ssh使用rsync工具
rsync [OPTION]... SRC [SRC]... DEST
root@home:~#rsync -ave ssh test@192.168.0.8:/app/tomcat/http/ /app/tomcat/http/
使用ssh传输rsync流量的优点:可通过网络加密数据,在二台计算机之间保持大型、复杂目录结构的同步极为方便。比如把web内容镜像到任意数量的服务器上,构建一个Web“群集”。

  • Pax命令进行存档
pax代表“可移植存档文件交换”
创建存档文件:
root@home:~#cd /app;pax -wf app.pax .
root@home:~# file app.pax
app.pax: POSIX tar archive
root@home:~#pax -f app.pax |more
展开存档文件
root@home:~#cd ~;pax -rvf /app/app.pax
pax可以还原tar和cpio存档
root@home:~#pax -rvzf /app/mdamd.tar.gz
root@home:~#pax -rvf /app/oracle.cpio
交互式还原
root@home:~#cd ~;pax -rvif /app/app.pax
递归复制目录结构
root@home:~#cd /app/tech_project
root@home:~#mkdir -p /data/tech_project
root@home:~#pax -rw . /data/tech_project
增量备份
每一周全备一次,其它时间进行增量备份
root@home:~#mkdir -p /data/backups/tech_doc
root@home:~#pax -wvf /data/backups/tech_doc/tech_bak`date +%w` .
root@home:~#pax -wv -T 0000 -f /data/backups/tech_doc/tech_add_bak`date +%w` .
还原时跳过文件
root@home:~#pax -rvf /app/backups/tech_doc/tech_bak1 -c './file1'
c选项是例外选项。n选项与c不同的是n选项只还原第一个匹配该模式的文件。

  • ISO方式
root@home:~#mkisofs -r /app/tomcat/ >./tomcat.iso
-r生成映像文件中加入Rock Ridge扩展,即将保留长文件名和文件权限。
root@home:~#dd if=/dev/cdrom of=image.iso bs=10k
root@home:~#mount -o loop ./tomcat.iso /mnt/iso
ISO记录成CDR/CDRW
root@home:~#cdrecord -v speed=16 dev=0,0,0 -data image.iso
root@home:~#cdrecord -v speed=8 dev=0,0,0 -data image.iso
root@home:~#mkisofs -r /app/backup/ \
| ssh 192.168.0.8 "cdrecord -v speed=16 dev=0,0,0 fs=8m -data -"
root@home:~#curl ftp://202.115.128.174/pub2/linux/distribution/redhat/9/shrike-i386-disc1.iso \
| cdrecord -v speed=0 dev=0,0,0 fs=8m -data -
网络记录需要优质稳定的100Mbps网络,下载记录只能显示Unix管道的能力。

没有评论: