开源中文网

您的位置: 首页 > Debian Linux > 正文

Debian 备份命令

来源:  作者:

Debian备分工具
1.debian常用备份工具:
    1.cp
    2.tar
    3.cpio
    4.dd
2.差量备份与数据同步:
    1.rcs:备份并进行历史记录,只支持文本
    2.rdiff-backup:备份并进行历史记录。支持链接
    3.pdumpfs:对文件系统进行备份和历史记录。支持链接
    4.rsync:单路同步
    5.unison:双路同步
    6.cvs:多路同步服务器备份并进行历史记录,只支持文本,技术成熟
    7.arch:多路同步服务器备份并进行历史记录,但包括“处于工作中的目录”
    8.subversion:多路同步服务器备份并进行历史记录,专用于 Apache.
1.1  cp
       使用方式:
            cp [options] source dest
            cp [options] source... directory
            说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。  
            -a 尽可能将档案状态、权限等资料都照原状予以复制。
            -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
            -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
            范例:
            将档案 aaa 复制(已存在),并命名为 bbb :
            cp aaa bbb
---------------------------------------------
1.2   tar
         
tar 程序用于储存或展开 tar 存档文件。存档文件可放在磁盘中 ,也可以存为普通文件。 tar是需要参数的,可选的参数是A、c、d、r、t、u、x,您在使用tar时必须首先为 tar 指定至少一个参数;然后,您必须指定要处理的文件或目录。如果指定一个目录则该目录下的所有子目录都将被加入存档。
应用举例:
1)展开 abc.tar.gz 使用命令: tar xvzf abc.tar.gz 展开 abc.tar 使用命令: tar xvf abc.tar
2)将当前目录下的 man 目录及其子目录存成存档 man.tar tar cf man.tar ./man
参数说明
运行tar时必须要有下列参数中的至少一个才可运行
-A, --catenate, --concatenate
将一存档与已有的存档合并
-c, --create
建立新的存档
-d, --diff, --compare
比较存档与当前文件的不同之处
--delete
从存档中删除
-r, --append
附加到存档结尾
-t, --list
列出存档中文件的目录
-u, --update
仅将较新的文件附加到存档中
-x, --extract, --get
从存档展开文件

其他参数
--atime-preserve
不改变转储文件的存取时间
-b, --block-size N
指定块大小为 Nx512 字节(缺省时 N=20)
-B, --read-full-blocks
读取时重组块(???!!!)
-C, --directory DIR
转到指定的目录
--checkpoint
读取存档时显示目录名
-f, --file [HOSTNAME:]F
指定存档或设备 (缺省为 /dev/rmt0)
--force-local
强制使用本地存档,即使存在克隆
-F, --info-script F --new-volume-script F
在每个磁盘结尾使用脚本 F (隐含 -M)
-G, --incremental
建立老 GNU 格式的备份
-g, --listed-incremental F
建立新 GNU 格式的备份
-h, --dereference
不转储动态链接,转储动态链接指向的文件。
-i, --ignore-zeros
忽略存档中的 0 字节块(通常意味着文件结束)
--ignore-failed-read
在不可读文件中作 0 标记后再退出???
-k, --keep-old-files
保存现有文件;从存档中展开时不进行覆盖
-K, --starting-file F
从存档文件 F 开始
-l, --one-file-system
在本地文件系统中创建存档
-L, --tape-length N
在写入 N*1024 个字节后暂停,等待更换磁盘
-m, --modification-time
当从一个档案中恢复文件时,不使用新的时间标签
-M, --multi-volume
建立多卷存档,以便在几个磁盘中存放
-N, --after-date DATE, --newer DATE
仅存储时间较新的文件
-o, --old-archive, --portability
以 V7 格式存档,不用 ANSI 格式
-O, --to-stdout
将文件展开到标准输出
-p, --same-permissions, --preserve-permissions
展开所有保护信息
-P, --absolute-paths
不要从文件名中去除 '/'
--preserve 

like -p -s
与 -p -s 相似
-R, --record-number
显示信息时同时显示存档中的记录数
--remove-files
建立存档后删除源文件
-s, --same-order, --preserve-order
???
--same-owner
展开以后使所有文件属于同一所有者
-S, --sparse
高效处理
-T, --files-from F
从文件中得到要展开或要创建的文件名
--null
读取空结束的文件名,使 -C 失效
--totals
显示用 --create 参数写入的总字节数
-v, --verbose
详细显示处理的文件
-V, --label NAME
为存档指定卷标
--version
显示 tar 程序的版本号
-w, --interactive, --confirmation
每个操作都要求确认
-W, --verify
写入存档后进行校验
--exclude FILE
不把指定文件包含在内
-X, --exclude-from FILE
从指定文件中读入不想包含的文件的列表
-y, --bzip2, --bunzip2
用 bzip2 对存档压缩或解压
-Z, --compress, --uncompress
用 compress 对存档压缩或解压
-z, --gzip, --ungzip
用 gzip 对存档压缩或解压
--use-compress-program PROG
用 PROG 对存档压缩或解压 ( PROG 需能接受 -d 参数)
--block-compress
为便于磁盘存储,按块记录存档
-[0-7][lmh]
指定驱动器和密度[高中低]

--------------------------

打包: tar -cf soft.tar soft
解包: tar -xf softcpar soft
压缩目录
打包压缩:tar czvf usr.tar.gz /home
解压缩:tar xzvf usr.tar.gz

压缩文件(对于目录失效)
压缩:zip good.zip good1 good2
解压:unzip good.zip
----------------------------------------------
3.   cpio

[root@linux ~]# cpio -covB > [file|device] <==备份
[root@linux ~]# cpio -icduv < [file|device] <==还原
参数
-o :将资料 copy 输出到文件或装置上
-i :将资料自文件或装置 copy 出来系统当中
-t :查看 cpio 建立的文件或装置的内容
-c :一种较新的 portable format 方式储存
-v :让储存的过程中文件名称可以在萤幕上显示
-B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes ! 这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)
-d :自动建立目录!由於 cpio 的内容可能不是在同一个目录内,如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,就可以自动的将需要的目录建立起来了!
-u :自动的将较新的文件覆盖较旧的文件!
范例
范例一:将所有系统上的资料通通写入磁带机内!  [root@linux ~]# find / -print | cpio -covB > /dev/st0
一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!

范例二:检查磁带机上面有什么文件? 
[root@linux ~]# cpio -icdvt < /dev/st0
[root@linux ~]# cpio -icdvt < /dev/st0 > /tmp/content
第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,将所有的档名通通纪录到 /tmp/content 文件去!

范例三:将磁带上的资料还原回来~ 
[root@linux ~]# cpio -icduv < /dev/st0
一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!
范例四:将 /etc 底下的所有『文件』都备份到 /root/etc.cpio 中! 
[root@linux ~]# find /etc -type f | cpio -o > /root/etc.cpio
这样就能够备份啰~您也可以将资料以 cpio -i < /root/etc.cpio 来将资料捉出来!
------------------------------------------------------
4. dd

[root@linux ~]# dd if="input_file" of="output_file" bs="block_size"  count="number"
参数 if :就是input file 或者 存储设备
        of :就是 output file 或者 存储设备;
        bs :规划的一个 block 的大小,如果没有设定时,预设是 512 bytes
        count:多少个 bs 的意思。
范例 范例一:将 /etc/passwd 备份到 /tmp/passwd.back 当中
[root@linux ~]# dd if=/etc/passwd of=/tmp/passwd.back
3+1 records in
3+1 records out
[root@linux ~]# ll /etc/passwd /tmp/passwd.back
-rw-r--r-- 1 root root 1746 Aug 25 14:16 /etc/passwd
-rw-r--r-- 1 root root 1746 Aug 29 16:57 /tmp/passwd.back
仔细的看一下,我的 /etc/passwd 文件大小为 1746 bytes,因为我没有设定 bs ,
所以预设是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的 512 bytes,
以及未满 512 bytes 的另一个 block 的意思。事实上,感觉好像是 cp 这个指令啦~
范例二:备份 /dev/hda 的 MBR  
[root@linux ~]# dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out
这就得好好瞭解一下啰~我们知道整颗硬盘的 MBR 为 512 bytes,就是放在硬盘的第一个 sector 啦,
因此,我可以利用这个方式来将 MBR 内的所有资料都纪录下来,真的很厉害吧! ^_^
范例三:将整个 /dev/hda1 partition 备份下来。
[root@linux ~]# dd if=/dev/hda1 of=/some/path/filenaem
这个指令很厉害啊!将整个 partition 的内容全部备份下来~后面接的 of 必须要不是在 /dev/hda1 的目录内啊~
否则,怎么读也读不完~这个动作是很有效用的,如果改天你必须要完整的将整个 partition 的内容填回去,
则可以利用 dd if=/some/file of=/dev/hda1 来将资料写入到硬盘当中。
--------------
2.1  rdiff-backup
   
rdiff-backup 提供了简单好用的方法对任何文件包括链接进行历史差异备份。例如要对 ~//mnt/backup: 目录下的所有文件备份到
     $ rdiff-backup --include ~/tmp/keep --exclude ~/tmp  ~/ /mnt/backup
从该文档包中取出 3 天前的旧数据恢复到 ~/old 目录:
     $ rdiff-backup -r 3D /mnt/backup ~/old

2.2   pdumpfs
pdumpfs 是一种简单的每日备份系统,与 Plan9 的 dumpfs 一样,它每天都保存系统快照。任何时候都可以用它来恢复到某天的系统状态。请使用 pdumpfs 和 cron 来备份你的 home 目录。
在目标目录中,pdumpfs 以 YYYY/MM/DD 的方式来组织系统快照。 当 pdumpfs 第一次运行时,它将所有源文件拷贝到快照目录。从每二次运行起,pdumpfs 仅拷贝更新的或新建的文件,对于没有改变的文件用硬链接方式指向前一天的系统快照,以此来节省硬盘空间。
$ pdumpfs src-dir dest-dir [dest-basename]

2.3   Changetrack
Changetrack 会定期对 RCS 文档包中基于文本格式的配置文件的变化进行记录。参阅 changetrack(1)。
     # apt-get install changetrack
     # vi changetrack.conf

Tags:Debian 备份命令
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明