CentOS下甚用备份工具

说明:CentOS备份工具有很多选择,但要看备份的数据是否符合你的备份工具,选择错误,往往会造成很多麻烦事.

第一类 本地化备份

1、cp 复制

改变(创建)inode所指向的block(在创建时,会分配新的block)。

[带目录复制]

cp -R

2、mv 

mv 操作只是改变文件的inode,并没有对inode所指向的磁盘block做任何的改动。

3、dd

convert and copy a file 
dd if=[STDIN] of=[STDOUT]

if =输入文件(或设备名称)。 
of =输出文件(或设备名称)。 
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 
obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。 
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。 
cbs = byte 一次转换bytes字节。

例1:将文件sfile拷贝到文件 dfile中。 
#dd if=sfile of=dfile

例2:创建一个100M的空文件

#dd if=/dev/zero of=hello.txt bs=100M count=1

[/dev/zero,是一个输入设备,你可你用它来初始化文件。]

4、tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc --exclude=/etc/passwd <==打包后,以 gzip 压缩,不包含/etc/passwd文件

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz <==查阅打包文件包含哪些文件

[root@linux ~]# tar -zxvf /tmp/etc.tar.gz <==解压

[root@linux ~]# tar -zxvf /tmp/etc.tar.gz -C /tmp <==解压文件到/tmp目录下

5、cpio

将/etc下的文件备份到/mnt下

cd /etc;find . -print | cpio -Bpdumv /mnt/ > /mnt/cpio.log 2>&1  &

6、ln

ln分硬连接和软连接

ln -s 源目标 目的目标

硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,文件同步变化;

软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,文件同步变化;

软链接是可以跨分区的,但是硬链接只能在同一分区内;



1、硬链接和原来的文件没什么区别,共享一个inode号(文件在文件系统上的唯一标识),软连接不共享inode,和原文件对应的inode有区别;



 



2、若原文件被删除,软连接不在可以访问,而硬链接可以访问。



7、rsync



rsync -auvz /data1/a /data2/a



-a 递归方式传输文件



-u 仅仅进行更新,忽略已存在的文件



-v 详细模式输出



-z 对备份的文件在传输时进行压缩处理



-r 对子目录以递归模式处理
-R 使用相对路径信息



--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式



 



当然还有很多工具,这里暂不表。



 



第二类 远程备份



1 rsync



建立C/S模式



走tcp 873端口传输数据



[Server]



#yum install rsync -y



#vi /etc/rsyncd.conf



 



uid=nobody
gid=nobody
max connections=10 #最大连接数
use chroot=no #如果为true,那么在rsync在传输文件以前首先chroot到path参数指定的目录下
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid

[test]
path=/opt/htdocs
read only = no #可以写入
hosts allow=10.0.0.21 10.0.0.22 #限制可以访问的客户端



启动rsync server



#rsync --daemon



[Client]



客户端往服务器端传输数据



rsync -auvz /etc/* SERVER-IP::test/



服务器端往客户端传输数据



cd /tmp;rsync SERVER-IP::test/* .



 



2 FTP



 



3 NFS



 



4 SCP



本文转自大角牛博客51CTO博客,原文链接http://blog.51cto.com/jingshengsun888/1169241如需转载请自行联系原作者





运维的戏子