zoukankan      html  css  js  c++  java
  • 别人的Linux私房菜(9)文件与文件系统的压缩

    www网站利用文件压缩技术进行数据传输,提升网络带宽。

     压缩命令gzip与显示zcat、zmore、zless、zgrep

    -c将压缩的数据显示到屏幕上

    -d解压缩

    -v显示原文件/压缩文件的压缩比等信息

    -#压缩等级,1最快9最慢

    例如压缩(默认不保留原文件):gzip -v service[文件]

    解压缩:gzip -d service.gz

    压缩并保留原文件:gzip -9 -c service > service.gz

    查找压缩文件里http字段所在的行:zgrep -n 'http' service.gz

    读取压缩文件zcat service.gz

    bzip2基本同gzip(为了提供更佳的压缩比)(查看bzcat、bzmore、bzless、bzgrep)

    -c   -d  -v  -#同gzip -k保留原始文件

    用法同gzip

    xz与xzcat、xzmore、xzless、xzgrep

    参数-v  -d -c -k -#同bzip  -l列出压缩文件的相关信息

    打包命令:tar

    -c建立打包文件  -t查看打包文件含有的文件名  -x解包或解压缩  

    -z通过gzip支持的压缩和解压缩  -j通过bzip2支持的压缩和解压缩  -J通过xz支持的压缩和解压缩

    -v将正在处理的文件名显示出来  -f后面接立即处理的文件名  -C 【目录】 在特定目录解压缩

    -p保留原本的权限与属性  -P保留绝对路径  --exclude=FILE在压缩的过程中不要将FILE打包

    例如打包并显示时间:time tar -zpcv -f /root/etc.tar.gz /etc   

    time tar -jpcv -f /root/etc.tar.bz2 /etc          time tar -Jpcv -f /root/etc.tar.xz /etc

    查看tar文件的数据内容:tar -jtv -f /root/etc.tar.bz2(无根目录/)

    将文件名中的根目录也备份,tar -jpPcv -f /root/etc.androot.tar.bz2 /etc

    查看:tar -jtf /root/etc.androot.tar.bz2 发现路径中带有根目录/

    解打包:tar -jxv -f /root/etc.androot.tar.bz2 在当前的工作目录下解打包

    解打包到指定目录:tar -jxv -f /root/etc.androot.tar.bz2 -C /tmp

    解开单一文件:#找到文件名,tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'  #解压该文件  tar -jxv -f /root/etc.tar.bz2  etc/shadow

    打包某目录但不含该某些目录:tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2  /etc /root

    仅备份比某个时刻还要新的文件:#查找etc中比passwd要新的文件  find /etc -newer /etc/passwd

    ll --full-time /etc/passwd查看文件日期      tar -jcv -f /root/etc.newer.than.passwd.tar.bz2 --newer-mtime="2019/04/09" /etc/*

    tarfile 即通过 tar -cv -f file.tar打包的文件

    tarball 即通过 tar -jcv -f file.tar.bz2 进行的带有压缩支持的文件

    文件打包到磁盘:tar -cv -f /dev/st0  /home /root /etc

    输出文件为 - 输入文件也为 -  |管道命令。tar -cvf -  /etc | tar -xvf -#将/etc下面的数据打包,通过tar命令解压到当前工作目录 类似 cp -r

    通过tar备份/etc目录,在其他系统上还原的过程中,可能导致/etc/shadow密码文件的SELinux类型在还原时被更改,导致登录程序无法读取。

    通过修改/etc/selinux/config文件,更改selinux为permissive模式,重启,

    或恢复系统后使用restorecon -Rv /etc自动修复selinux

    或建立/.autorelabel文件,重启后自动修复selinux

    xfsdump的完整备份和增量备份(备份差异文件)。

    xfsdump只能备份挂载的文件系统,需要root权限才能操作。只能通过xfsrestore解析,不能备份两个UUID相同的文件系统

    -L记录每次备份的session标头

    -M记录存储媒介的标头

    -l指定等级,0为完整备份

    -f后接产生的文件

    -I从/var/lib/xfsdump/inventory列出目前备份的信息状态

    例如:xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot备份boot

    之后查看备份的状态信息:ll /var/lib/xfsdump/invernory

    查看文件系统被备份过的数据:xfsdump -I

    建立一个新文件在/boot中:dd if=/dev/zero of=/boot/testing.img bs=1M count=10

    之后可以通过增量备份,只备份不一样的数据:xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot

    之后再查看备份过的数据:xfsdump -I

    xfs文件系统还原:xfsrestore

    -f后接备份文件,-L指定Label name    -s仅恢复某一目录或文件 -r磁带内多文件的累积恢复 -i进入交互模式 -I查看备份数据

    将备份数据还原:xfsrestore -f /srv/boot.dump -L boot_all  /boot

    将备份数据在某路径/tmp/boot下解开:xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot

    diff -sm /boot /tmp/boot查找两个文件夹下的内容差异

    将备份数据中的grub2恢复到/tmp/boot2:xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot2

    恢复增量备份数据:xfsrestore -f /srv/boot.dump1 /boot

    仅恢复部分文件的xfsrestore交互模式 

    如将部分数据恢复到/tmp/boot3中:xfsrestore -f /srv/boot.dump -i /tmp/boot3    ls   add xx    add  xx   add xx  extract

    光盘写入工具,

    建立镜像文件:mkisofs

    -o 后接产生的镜像文件   -r可记录较多的文件信息  -v显示创建过程   -V vol 建立卷标

    -m 排除文件,不备份到镜像中的文件    -graft-point:graft转嫁移植

    光盘格式iso9660一般支持8.3(8文件名3字符拓展名,加入-r,可以记录更多)

    建立镜像文件:mkisofs -r -v -o /tmp/system.img /root /home /etc

    挂载镜像文件:mount -o loop  /tmp/system.img /mnt

    查看挂载情况:df -h /mnt

    查看镜像文件内容:ls /mnt

    卸载:umount  /mnt

    目录分类建立镜像文件:mkisofs -r -V 'Linux file' -o /tmp/system.img -m /root/etc

    -graft-point /root=/root /home=/home /etc=/etc建立后文件归类。

    查看光盘信息:

    isoinfo -d -i /home/CentOS.iso

    通过挂载,创建工作目录,rsync -a 方式(完整复制数据,包括权限)将挂载点的数据复制到工作目录下,

    修改文件后,重新建立镜像文件,完成制作可启动光盘镜像文件,之后可以刻录

    wodim光盘刻录工具

    wodim --device dev=/dev/sr0#查询刻录机的bus位置

    wodim -v dev=/dev/sr0 blank=fast#擦除光盘原始内容

    wodim -v dev=/dev/sr0 speed=4 -dump -eject  /tmp/system.img#刻录光盘

    刻录完毕后可以通过挂载检查文件内容

    dd可以将设备文件复制等

    if  input file    of output file     bs block size           count数量

    上图4+1表示 四个扇区存满,一个未满。512 

    将光盘备份成为镜像文件:dd if=/dev/sr0 of=/tmp/system.iso 

    假设u盘为/dev/sda,将u盘刻录为光盘:dd if=/tmp/system.iso of=/dev/sda

    将boot整个文件系统备份下来:首先查询boot的挂载点 df -h /boot

    之后,备份:dd if=/dev/sda2 of=/tmp/sda2.img   查看:ll -h /tmp/sda2.img

     创建新的分区/sda3后,可以将sda2直接放入到sda3中生成文件系统:(sda3应比sda2.img大)

    dd if=/dev/sda2 of=/dev/sda3 #建立复制

    xfs_repair -L /dev/sda3#清除日志

    uuidgen

    xfs_admin -U xxxxxx  /dev/sda3#修改UUID

    mount /dev/sda3 /mnt#挂载

    xfs_growfs /mnt#文件系统放大

    cpio   备份具体man吧!命令真的太多了

    找出boot下的所有文件然后备份到tmp下、:find boot | cpio -ocvB > /tmp/boot.cpio  

     查看文件类型:file  /tmp/boot.cpio

    备份文件在当前工作目录下解开(还原):cpio -idcv < /tmp/boot.cpio

    查看:cpio -ivct  < file or device

  • 相关阅读:
    VHDL硬件描述语言(三)——基本数据对象和数据类型
    VHDL硬件描述语言(二)——子程序
    VHDL硬件描述语言(一)——基本结构
    C#类
    C#基本语法
    C#的简单数据类型
    C#与.NET
    ARP
    IPv6
    以太网
  • 原文地址:https://www.cnblogs.com/bai2018/p/10704501.html
Copyright © 2011-2022 走看看