RFC 1952 文件:http://www.ietf.org/rfc/rfc1952.txt
鸟哥的备份:http://linux.vbird.org/linux_basic/0240tarcompress/0240tarcompress_gzip.php
2、压缩文件案扩展名:
*.Z compress 程序压缩的档案; 已退出流行
*.gz gzip 程序压缩的档案;
*.bz2 bzip2 程序压缩的档案; 更强大
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩;
*.tar.bz2 tar 程序打包的档案,其中并且经过 bzip2 的压缩。
3、gzip最广,zcat
gzip [-cdtv#] 档名 数据流重导向/解压缩参数/检验有无错误/压缩比信息/压缩等级(-1快压缩比差,-9反之,预设-6)
例:
先建立档案,如何建立?
cd /tmp
cp /etc/man.config .
gzip -v man.config
ll /etc/man.config /tmp/man*
读取:
zcat man.config.gz 需要man.config为文本文件,才可用zcat。
cat 可以读取纯文本档,zcat 则可以读取纯文本档被压缩后的压缩文件!
解压缩:
gzip -d man.config.gz 将.gz删除,产生原本的man.config档案
最佳压缩比压缩:
gzip -9 -c man.config > man.config.gz (不加9即为默认6)
4、bzip2 [-cdkzv#] 档名 输出数据到屏幕/解压缩参数/保留源文件/压缩参数/同上/同上
bzcat 档名.bz2
例:压缩
bzip2 -z man.config
读取:
bzcat man.config.bz2
解压缩:
bzip2 -d man.config.bz2
最佳压缩比压缩:
bzip2 -9 -c man.config > man.config.bz2
另:bunzip2可取代了bzip -d 的功能。
5、打包指令:tar
tar [-j][-z][cv][-f 建立的档案] 打包与压缩
tar [-j][-z][tv][-f 建立的档案] 查看档案
tar [-j][-z][xv][-f 建立的档案][-C 目录] 解压缩
(注意:-j 透过bzip2;-z透过gzip;-v显示;-p 备份保留权限属性;-P保留绝对路径;--exclude=FILE不将FILE打包)
压缩:tar -jcv -f filename.tar.bz2 要被压缩的档案或目录名称
查询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压的目录
例:tar -zpcv -f /root/etc.tar.gz /etc
tar -jpcv -f /root/etc.atr.bz2 /etc
ll /root/etc*
du -sm /etc 可见用-j更好
注意:一般不用-P,对备份的数据更安全。
tar -jxv -f /root/etc.tar.bz2 -C /tmp 不对?
ll /tmp
删除两个目录:
rm -rf /root/etc /tmp/etc 注意不是删除/etc/
仅解开单一档案法:
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow' 管线配合grep可以攫取关键词
解开档案:
tar -jxv -f /root/etc.tar.bz2 /etc/shadow
ll /etc
打开某目录,不包含某些档案:
tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc*\
>--exclude=/root/system.tar.bz2 /etc /root
注意:此处用man tar查得为【--exclude file】,用info为【--exclude=file】,须留意。
仅备份比某时刻新的档案:
find /etc -newer /etc/passwd 用find找出比/etc/passwd更新的档案
ll /etc/passwd
tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 > --newer-mtime="2016/10/16" /etc/*
显示出档案即可:
tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 |\
> grep -v '/$'
基本名称:tarfile(仅打包时的叫法),tarball(打包和压缩时的叫法)
备份到磁带机:tar -cv -f /dev/st0 /home /root /etc 注意不能用cp哦!(将/home /root /etc进行备份)
特殊应用:用管线与数据流:
cd /tmp
tar -cvf - /etc | tar -xvf -
上面类似 cp -r /etc /tmp (将/etc复制到/tmp)
两个“-”可理解为装置的缓冲区,即标准输出与输入。
6、系统备份范例:
不用备份文件:
/home/loop*;
/root下的压缩文件;
例:先处理放置备份数据的目录与权限:
mkdir /backups
chmod 700 /backups
ll -d /backups
建立备份:
tar -jcv -f /backups/backup-system-20161027.tar.bz2 \
> --exclude=/root/*.bz2 --exclude=/root/*.gz --exclude=/home/loop* \
> /etc /home /var/spool/mail /var/spool/cron /root
ll -h /backups/
7、完整备份工具:dump
dump [-Suvj][-level][-f 备份档] 待备份资料
dump -W
(列出需用的磁盘空间/将dump时间记录到/etc/dumpdates中/显示/加入bzip2/等级/接产生的档案/列出分隔槽是否备份)
找出最小文件系统:
df -h
需多少容量:
dump -S /dev/sda1 没有该指令哦
完整备份:
dump -0u -f /root/boot.dump /boot
ll /root/boot.dump /etc/dumpdates
系统主动建立的纪录文件:
cat /etc/dumpdates
用dump备份非文件系统,即单一目录方法:
dump -0j -f /root/etc.dump.bz2 /etc
8、复原数据:restore
restore -t [-f dumpfile][-h] 查看
restore -C [-f dumpfile][-D 挂载点] 比较
restore -i [-f dumpfile] 互动
restore -r [-f dumpfile] 还原整个文件系统
例:
restore -t -f /root/boot.dump
建立文件系统再还原:
fdisk /dev/sda
n
[Enter]
2335
+150M
W
partprobe
mkfs -ext3 /dev/sda7
mount /dev/sda7 /mnt
cd /mnt
restore -r -f /root/boot.dump
仅还原部分档案的restore互动模式:
cd /mnt
restore -i -f /root/etc.bump
restore > help
三个重点指令:add file 将file加入要解压缩的档案列表中;
delete file 将file移出列表,非删除;
extract 将选择的档案列表解压缩。
info restore 去了解功能
9、光盘写入工具:
建立映像档:mkisofs
mkisofs [-o 映像档][-rv][-m file]带备份文件..[-V vol] \
> -graft-point isodir=systemdir... (-m排除档案,-V建立Volume,-graft-point转嫁移植)
例1:mkisofs -r -v -o /tmp/system.img /root /home /etc
ll -h /tmp/system.img
ls /mnt
umount /mnt
结果是文件堆叠无法区分
例2:mkisofs -r -V 'linux_file' -o /tmp/system.img \
-m /home/lost+found -graft-point /root=/root /home=/home /etc /etc
ll -h /tmp/system.img
umount /mnt
在各个目录中分门别类,清晰。
10、光盘刻录工具:cdrecord
cdrecord -scanbus dev=ATA 寻找刻录机位置
cdrecord -v dev=ATA:x,y,z blank=[fast|all] 抹除
cdrecord -v dev=ATA:x,y,z -format 仅针对DVD+RW格式的DVD
cdrecord -v dev=ATA:x,y,z [可用选项功能] file.iso
进行CD的刻录动作:
cdrecord -v dev=ATA:1,1,0 blank=fast
cdrecord -v dev=ATA:1,1,0 fs=8m -dummy -date \
> /tmp/system.img
刻录完毕检测:
mount -t iso9660 /dev/cdrom /mnt
df -h /mnt
ll -/mnt
umount /mnt
注意:要加入-date,否则会以音轨格式写入光盘。
进行DVD-RW的刻录动作:
抹除内容:
cdrecord -v dev=ATA:1,1,0 blank=fast
写入DVD:
cdrecord -v dev=ATA:1,1,0 fs=8m -date -sao \
> driveropts=burnfree /tmp/system.img
检测同上:
总结区别:CD-RW会自动抹除,DVD-RW需手动抹除。
11、dd:几乎可以直接读取扇区sector,将装置备份成档案。
dd if="input_file" of="output_file" bs="block_size" \
> count="number"
将前者备份到后者:
dd if=/etc/passwd of=/tmp/passwd.back
备份磁盘的第一个扇区:
dd if=/dev/sda of=/tmp/mbr.back bs=512 count=1
区别:tar备份关键数据,dd备份这个parition或整个disk。
注意:复制boot sector,不能用cp或tar,只能用dd,且它不需格式化。
12、cpio,可备份任何东西,包括装置设备档案。
cpio -ovcB > [file|device] 备份
cpio -ivcdu < [file|device] 还原
cpio -ivct < [file|device] 查看
找出/boot底下所有档案:
find /boot -print
find /boot | cpio -ocvB > /tmp/boot.cpio
ll -h /tmp/boot.cpio
将档案解开:
cpio -ivct < /tmp/boot.cpio
ll -/root/boot
解压缩档案:
看档案格式:
file /boot/initrd-2.6.18.-128.el5.img 结果得出进行gzip压缩过
增加扩展名:
mkdir initrd
cd initrd
cp /boot/initrd-2.6.18.-128.el5.img initrd.img.gz
gzip -d initrd.img.gz
ll
file initrd.img
用cpio解档案:
cpio -iduvc < initrd.img
参考:
台湾学术网络管理文件:
Backup Tools in UNIX(Linux): http://nmc.nchu.edu.tw/tanet/backup_tools_in_unix.htm
中文 How to 文件计划 (CLDP):
http://www.linux.org.tw/CLDP/HOWTO/hardware/CD-Writing-HOWTO/CD-Writing-HOWTO-3.html
熊宝贝工作记录:
Linux 刻录实作:http://csc.ocean-pioneer.com/docum/linux_burn.html
PHP5 网管实验室:
http://www.php5.idv.tw/html.php?mod=article&do=show&shid=26
CentOS 5.x man dump
CentOS 5.x man restore