------------------------------分割线(压缩)-----------------------------------------------
文件的备份和压缩是管理员遇到的首要问题,我刚学Linux,总结一下书上和网络上的方法。(本文章基于Redhat9)
一、使用tar命令进行备份
tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下我们都采用tar进行文
件整理和压缩。
/* 把/root整个目录进行压缩备份 */
# tar cvzf /tmp/root_backup_1215.tar.gz /root
那么我们就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。
说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是
基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。
同时,我们也很容易把已经打包压缩的文件进行恢复:
/* 从备份文件中进行还原 */
# tar tkvzf root_backup_1215.tar.gz
说明: tar命令是路经相关的。如果将文件用绝对路经保存到一个目录中(即开头为斜杆,如/home/mj),则可以从计算机上的任何位置将文
件恢复到这个目录。如果使用相对路经(没有开头的斜杆,如/home/mj),则文件不一定恢复到原址,而是取决于当前工作目录。
/* 把备份文件释放出来 */
# tar zxvf root_backup_1215.tar.gz
/* 把/root目录备份并且压缩 */
# tar czvf root_backup_1215.tar.gz /root
tar命令选项
---------------------------------------------------
选项 功能
---------------------------------------------------
c 生成档案
d 比较档案与当前目录中的文件
f 使用后面的档案文件名
j 压缩成bzip2格式的
k 不覆盖当前文件
r 见文件添加到档案末尾
t 列出当前档案中的文件
v 冗长方式,列出进出档案的所有文件
z Zip,按照普通gzip格式压缩文件
x 从备份文件中还原文件
---------------------------------------------------
以上只是部分常用选项,更详细请参考手册
二、使用cpio备份存档
cpio (copy in/out) 命令可以建立存档,跟tar不同之处在于,它能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。
如果要备份root的文件,使用下列命令:
# find /root | cpio -o > /tmp/root_backup_1215.cpio
cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:
# find *.tif | cpio -o > /tmp/back.cpio
记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:
# find / -name '*.tif' | cpio -o > /tmp/back_tif.cpio
同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:
# cpio -i < back_tif.cpio
和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。
cpio命令还有一个优点是可以直接将文件发送给外部源,例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:
# find /root | cpio -o -> /dev/st0
# cpio -i < /dev/st0
CPIO的命令选项
---------------------------------------------------
选项 功能
---------------------------------------------------
-A 添加到档案末尾,与-F密切相关
-F 指定档案文件名,可以换成反向箭头>
-i 从档案文件或设备读取
-o 复制到档案文件或者设备
-u 替换所有文件,使其更新
-v 冗长方式
---------------------------------------------------
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓简易压缩 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
01-.tar格式
解包:[*******]$ tar xvf FileName.tar
打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
02-.gz格式
解压1:[*******]$ gunzip FileName.gz
解压2:[*******]$ gzip -d FileName.gz
压 缩:[*******]$ gzip FileName
03-.tar.gz格式
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName
04-.bz2格式
解压1:[*******]$ bzip2 -d FileName.bz2
解压2:[*******]$ bunzip2 FileName.bz2
压 缩: [*******]$ bzip2 -z FileName
05-.tar.bz2格式
解压:[*******]$ tar jxvf FileName.tar.bz2
压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName
06-.bz格式
解压1:[*******]$ bzip2 -d FileName.bz
解压2:[*******]$ bunzip2 FileName.bz
07-.tar.bz格式
解压:[*******]$ tar jxvf FileName.tar.bz
08-.Z格式
解压:[*******]$ uncompress FileName.Z
压缩:[*******]$ compress FileName
09-.tar.Z格式
解压:[*******]$ tar Zxvf FileName.tar.Z
压缩:[*******]$ tar Zcvf FileName.tar.Z DirName
10-.tgz格式
解压:[*******]$ tar zxvf FileName.tgz
11-.tar.tgz格式
解压:[*******]$ tar zxvf FileName.tar.tgz
压缩:[*******]$ tar zcvf FileName.tar.tgz FileName
12-.zip格式
解压:[*******]$ unzip FileName.zip
压缩:[*******]$ zip FileName.zip DirName
13-.lha格式
解压:[*******]$ lha -e FileName.lha
压缩:[*******]$ lha -a FileName.lha FileName
14-.rar格式
解压:[*******]$ rar a FileName.rar
压缩:[*******]$ rar e FileName.rar
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
三、磁带转存和恢复
dump与restore命令使递增备份与差异备份很容易实现。dump可以取得目录内容,restore可以交互式将备份文件返回原址。
尽管这些命令最常用于磁带机,但是也同样适合其他介质,比如可以备份到软盘。
1、用dump存档
dump有三个基本选项,可以设置一系列命令,从主目录备份,差异备份。例如,我们要把/home/mao目录备份到/devnst0磁带机上:
# dump 0f /dev/nst0 /home/mao
# dump 1f /dev/nst0 /home/mao
# dump 2f /dev/nst0 /home/mao
# dump 3f /dev/nst0 /home/mao
# dump 4f /dev/nst0 /home/mao
# dump 5f /dev/nst0 /home/mao
第一个命令 # dump 0f /dev/nst0 /home/mao 是建立/home/mao目录的完全备份,后面的命令一次运行,只对商议次备份之后改变的文件建立
差异备份。
提示: 为了加速备份,可以使用磁带机允许的最大块长。例如,命令# dump 0f /dev/nst0 /home/mao -b 2048使用的块长为2048字节。可以
使用更大的块长来减少备份时间,但是也要在restore命令的时候使用想适应的块来还原。
如果想要备份整个系统,可以使用u选项,例如:
# dump 0uf /dev/nst0 /
dump的命令选项
------------------------------------------------------------
选项 功能
------------------------------------------------------------
0 ~ 9 转储级,0 = 完全备份,差异备份是递增(1,2,3..),
而增量备份存储号码是递减(8,7,6..)
A 建档备份目录表
f 将备份写入文件或设备
j level 压缩写入,要只定压缩级,如2或4
T date 指定日期,而不用/etc/dumpddates中显示的日期
u 备份成功后更新/etc/dumpdates
------------------------------------------------------------
2、用restore进行还原
可以使用restore命令浏览dump命令备份的文件清单。例如:
# restore -tf /dev/fd0
也可以用恢复搜索的方式搜索当前备份。
restore命令选项
--------------------------------------------------------
选项 功能
--------------------------------------------------------
-C 比较备份与当前文件
-f 指定文件
-i 允许备份的交互恢复,恢复方式中有几个命令
-r 在全新格式化分区重建数据
-t 列出备份中的文件名
--------------------------------------------------------
-----------------------------------------------------撤回------------------------------------
在vi中按u可以撤销一次操作
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
注意:
如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。
重做
如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的例子,输入CTRL-R两次。字符A和它后面的空格就出现了:
young intelligent turtle
有一个特殊版本的撤销命令:“U”(行撤销)。行撤销命令撤销所有在前一个编辑行
上的操作。 输入这些命令两次取消前一个“U”:
A very intelligent turtle
xxxx 删除very
A intelligent turtle
xxxxxx 删除turtle
A intelligent
用“U”恢复行
A very intelligent turtle
用“u”撤销“U”
A intelligent
“U”命令自己改变自己,“u”命令撤销操作,CTRL-R命令重做操作。这有点乱,但不用
担心,用“u”和CTRL-R命令你可以切换到任何状态。
流行的文本编辑器通常都有前进和后退功能,可以在文件中曾经浏览过的位置之间来回移动。在 vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
----------------------------------------分割线-------------------------------------------------
df -h 查看挂载的磁盘
文件权限管理
说明:在linux下,文件的权限有:所有者、所属组、其它的区分
权限:权限有:读(r)、写(w)、执行(x),ls -l即可查看
rwxr-xr--
修改:使用chmod命令修改文件的权限
格式:chmod [身份] [修改] [权限] 文件
身份:
u:用户
g:组
o:其它
a:所有身份
修改:
+:添加
-:去掉
=:设置
权限:
r:读
w:写
x:执行
简洁写法:chmod 0755 1.txt
所有者可读可写可执行、所属组可读可执行、其它可读可执行
软硬链接文件
说明:ls -l 结果的第一列就是文件类型
类型:
-:普通文件
d:目录文件
l:软链接
命令:ln [-s] 原文件 目标文件
分类:软链接、硬链接(很少用到)
创建:不加参数-s创建的链接就是硬链接,添加-s参数创建的就是软链接
例子:ln -s 1.txt 2.txt
文件查找
tree:查看目录结构,-L指定层级深度,tree / -L 2
find:查找文件
-name:指定名字,find / -name 1.txt
-type:指定类型,(b/c/d/p/l)
-size:指定大小,单位K/M/G,+表示大于,-表示小于,find / -size +1G
-perm:指定权限
-user:指定用户
-group:指定组
-maxdepth:指定最大层级深度
whereis:查找程序,不要使用find(效率太低)
which:专门用来查找命令
alias:给某个命令起别名,alias ls='ls --color=auto'
unalias:取消别名
grep:正则匹配查找
-i:忽略大小写
-n:显示行号
例子:
grep root /etc/passwd 在 /etc/passwd文件中查找包含root的行
ls /bin | grep '^m' 查找/bin目录下以m开头的文件