备份和恢复的技能在操作系统的管理中应用相当广泛。

这部分内容主要通过tar命令配合cron、date命令及其它的一些技巧来实现自动化备份和恢复。

tar命令的一些帮助信息:
NAME
       tar - The GNU version of the tar archiving utility

SYNOPSIS
       tar <operation> [options]

Operations:
       [-]A --catenate --concatenate
       [-]c --create
       [-]d --diff --compare
       [-]r --append
       [-]t --list
       [-]u --update
       [-]x --extract --get
       --delete

Common Options:
       -C, --directory DIR
       -f, --file F
       -j, --bzip2
       -p, --preserve-permissions
       -v, --verbose
       -z, --gzip

注意tar有些特殊,甚至于支持没-的参数。但我个人不提倡。脚本是用来应用,应该是易于理解的。

我们平时经常用的参数有:
tar xzvf 解压一个*.tar.gz文件
tar xjvf 解压一个*.tar.bz2的文件

tar czvf 压缩成一个*.tar.gz的文件
tar xjvf 压缩成一个*.tar.bz2的文件

如果去掉v,就不显示详细信息,实际在脚本中,如果不需要交互或隐藏执行过程的话,不要加好了。

我们还可以通过-C的参数来指定解压的目录。

下面参数之一必须使用:
c
x

z 是gzip的压缩格式,压缩后文件后缀为gz;
j 是bzip2的压缩格式,压缩后文件后缀为bz2。

A 是添加压缩包到已经存在的一个压缩包中。

u 指比较压缩包中的文件和当前文件,如果比压缩包的更新,就替换掉。
r 添加文件或文件夹到一个已经存在的压缩包中。

-t这是显示压缩文件文件列表。

-d 比较压缩包中的文件与文件系统中的文件的差异。
--delete 从压缩包中删除文件或文件夹。

如果在脚本中,我们为了更容易识别不同时创建的文件,我们可以用日期给压缩包命名。

这里我们可以看一个示例:
#!/bin/sh

cd /home/admin/backup

year=`date +%Y`

month=`date +%m`

day=`date +%d`

now=$year-$month-$day

mkdir backup_$now

tar zcvf backup_$now/backup.tar.gz /home/html

关于如何通过date来显示当前的时间,请查阅详细的date man 手册,但要注意一些重点参数,需要识记。

同时我们还可以通过脚本来实现周一全备,以后每天一次增量备份,周日提醒光盘备份,当然所有这些都需要脚本和计划任务cron的参与,关于cron请查看相关的帮助。

FORMAT controls the output.  The only valid option for the second  form  specifies  Coordinated
       Universal Time.  Interpreted sequences are:

%%     a literal %

%a     locale’s abbreviated weekday name (e.g., Sun)

%A     locale’s full weekday name (e.g., Sunday)

%b     locale’s abbreviated month name (e.g., Jan)

%B     locale’s full month name (e.g., January)

%c     locale’s date and time (e.g., Thu Mar  3 23:05:25 2005)

%C     century; like %Y, except omit last two digits (e.g., 21)

%d     day of month (e.g, 01)

%D     date; same as %m/%d/%y

%e     day of month, space padded; same as %_d

%F     full date; same as %Y-%m-%d

%g     last two digits of year of ISO week number (see %G)

%G     year of ISO week number (see %V); normally useful only with %V

%h     same as %b

%H     hour (00..23)

%I     hour (01..12)
      
       %j     day of year (001..366)

%k     hour ( 0..23)

%l     hour ( 1..12)

%m     month (01..12)

%M     minute (00..59)

%n     a newline

%N     nanoseconds (000000000..999999999)

%p     locale’s equivalent of either AM or PM; blank if not known

%P     like %p, but lower case

%r     locale’s 12-hour clock time (e.g., 11:11:04 PM)

%R     24-hour hour and minute; same as %H:%M

%s     seconds since 1970-01-01 00:00:00 UTC

%S     second (00..60)

%t     a tab

%T     time; same as %H:%M:%S

%u     day of week (1..7); 1 is Monday

%U     week number of year, with Sunday as first day of week (00..53)

%V     ISO week number, with Monday as first day of week (01..53)
      
       %w     day of week (0..6); 0 is Sunday

%W     week number of year, with Monday as first day of week (00..53)

%x     locale’s date representation (e.g., 12/31/99)

%X     locale’s time representation (e.g., 23:13:48)

%y     last two digits of year (00..99)

%Y     year

%z     +hhmm numeric timezone (e.g., -0400)

%:z    +hh:mm numeric timezone (e.g., -04:00)

%::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

%:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

%Z     alphabetic time zone abbreviation (e.g., EDT)

By default, date pads numeric fields with zeroes.  The following optional flags may follow ‘%’:

- (hyphen) do not pad the field _ (underscore) pad with spaces 0 (zero) pad with zeros ^
              use upper case if possible # use opposite case if possible

After  any flags comes an optional field width, as a decimal number; then an optional modifier,
       which is either E to use the locale’s alternate representations if available, or O to  use  the
       locale’s alternate numeric symbols if available.

我们也可以通过tar实现增量备份,这个就需要我们查看tar的官方文档。
       -g, --listed-incremental F
              create/list/extract new GNU-format incremental backup

-G, --incremental
              create/list/extract old GNU-format incremental backup

如何跟踪软链接
      -h, --dereference
              don’t dump symlinks; dump the files they point to
保持原来的文件结构           
           -l, --one-file-system
              stay in local file system when creating an archive
             
                       
ALL OPTIONS
       --atime-preserve
              don’t change access times on dumped files

-b, --blocking-factor N
              block size of Nx512 bytes (default N=20)

-B, --read-full-blocks
              reblock as we read (for reading 4.2BSD pipes)

--backup BACKUP-TYPE
              backup files instead of deleting them using BACKUP-TYPE simple or numbered

--block-compress
              block the output of compression program for tapes

-C, --directory DIR
              change to directory DIR
       --check-links
              warn if number of hard links to the file on the filesystem mismatch the number of  links
              recorded in the archive

--checkpoint
              print directory names while reading the archive

-f, --file [HOSTNAME:]F
              use archive file or device F (default "-", meaning stdin/stdout)

-F, --info-script F --new-volume-script F
              run script at end of each tape (implies --multi-volume)

--force-local
              archive file is local even if has a colon

--format FORMAT
              selects output archive format
              v7 - Unix V7
              oldgnu - GNU tar <=1.12
              gnu - GNU tar 1.13
              ustar - POSIX.1-1988
              posix - POSIX.1-2001

-g, --listed-incremental F
              create/list/extract new GNU-format incremental backup

-G, --incremental
              create/list/extract old GNU-format incremental backup

-h, --dereference
              don’t dump symlinks; dump the files they point to

--help like this manpage, but not as cool

-i, --ignore-zeros
              ignore blocks of zeros in archive (normally mean EOF)

--ignore-case
              ignore case when excluding files

--ignore-failed-read
              don’t exit with non-zero status on unreadable files

--index-file FILE
              send verbose output to FILE instead of stdout

-j, --bzip2
              filter archive through bzip2, use to decompress .bz2 files

-k, --keep-old-files
              keep existing files; don’t overwrite them from archive

-K, --starting-file F
              begin at file F in the archive

--keep-newer-files
              do not overwrite files which are newer than the archive

-l, --one-file-system
              stay in local file system when creating an archive

-L, --tape-length N
              change tapes after writing N*1024 bytes

-m, --touch, --modification-time
              don’t extract file modified time

-M, --multi-volume
              create/list/extract multi-volume archive

--mode PERMISSIONS
              apply PERMISSIONS while adding files (see chmod(1))

-N, --after-date DATE, --newer DATE
              only store files newer than DATE

--newer-mtime DATE
              like --newer, but with a DATE

--no-anchored
              match any subsequenceof the name’s components with --exclude

--no-ignore-case
              use case-sensitive matching with --exclude

--no-recursion
              don’t recurse into directories

--no-same-permissions
              apply user’s umask when extracting files instead of recorded permissions

--no-wildcards
              don’t use wildcards with --exclude

--no-wildcards-match-slash
              wildcards do not match slashes (/) with --exclude

--null --files-from reads null-terminated names, disable --directory

--numeric-owner
              always use numbers for user/group names

-o, --old-archive, --portability
              like  --format=v7; -o exhibits this behavior when creating an archive (deprecated behav-
              ior)

-o, --no-same-owner
              do not attempt to restore ownership when extracting;  -o  exhibits  this  behavior  when
              extracting an archive

-O, --to-stdout
              extract files to standard output

--occurrence NUM
              process  only NUM occurrences of each named file; used with --delete, --diff, --extract,
              or --list

--overwrite
              overwrite existing files and directory metadata when extracting

--overwrite-dir
              overwrite directory metadata when extracting

--owner USER
              change owner of extraced files to USER

-p, --same-permissions, --preserve-permissions
              extract all protection information

-P, --absolute-names
              don’t strip leading ‘/’s from file names

--pax-option KEYWORD-LIST
              used only with POSIX.1-2001 archives to modify the way tar handles extended header  key-
              words

--posix
              like --format=posix

--preserve
              like --preserve-permissions --same-order

--acls this option causes tar to store each file’s ACLs in the archive.

--selinux
              this  option causes tar to store each file’s SELinux security context information in the
              archive.

--xattrs
              this option causes tar to store each file’s extended attributes  in  the  archive.  This
              option  also  enables  --acls  and--selinux if they haven’t been set already, due to the
              fact that the data for those are stored in special xattrs.

--no-acls
              This option causes tar not to store each file’s ACLs in the archive and not  to  extract
              any ACL information in an archive.

--no-selinux
              this  option causes tar not to store each file’s SELinux security context information in
              the archive and not to extract any SELinux information in an archive.

--no-xattrs
              this option causes tar not to store each file’s extended attributes in the  archive  and
              not to extract any extended attributes in an archive. This option also enables --no-acls
              and --no-selinux if they haven’t been set already.

-R, --record-number
              show record number within archive with each message

--record-size SIZE
              use SIZE bytes per record when accessing archives

--recursion
              recurse into directories

--recursive-unlink
              remove existing directories before extracting directories of the same name

--remove-files
              remove files after adding them to the archive

--rmt-command CMD
              use CMD instead of the default /usr/sbin/rmt

--rsh-command CMD
              use remote CMD instead of rsh(1)

-s, --same-order, --preserve-order
              list of names to extract is sorted to match archive

-S, --sparse
              handle sparse files efficiently

--same-owner
              create extracted files with the same ownership

--show-defaults
              display the default options used by tar

--show-omitted-dirs
              print directories tar skips while operating on an archive

--strip-components NUMBER, --strip-path NUMBER
              strip NUMBER of leading components from file names before extraction

(1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-components
       --suffix SUFFIX
              use SUFFIX instead of default ’~’ when backing up files

-T, --files-from F
              get names to extract or create from file F

--totals
              print total bytes written with --create

-U, --unlink-first
              remove existing files before extracting files of the same name

--use-compress-program PROG
              access the archive through PROG which is generally a compression program

--utc  display file modification dates in UTC

-v, --verbose
              verbosely list files processed

-V, --label NAME
              create archive with volume name NAME

--version
              print tar program version number

--volno-file F
              keep track of which volume of a multi-volume archive its  working  in  FILE;  used  with
              --multi-volume

-w, --interactive, --confirmation
              ask for confirmation for every action

-W, --verify
              attempt to verify the archive after writing it

--wildcards
              use wildcards with --exclude

--wildcards-match-slash
              wildcards match slashes (/) with --exclude

--exclude PATTERN
              exclude files based upon PATTERN

-X, --exclude-from FILE
              exclude files listed in FILE

-Z, --compress, --uncompress
              filter the archive through compress

-z, --gzip, --gunzip, --ungzip
              filter the archive through gzip

--use-compress-program PROG
              filter the archive through PROG (which must accept -d)

-[0-7][lmh]
              specify drive and density

转载于:https://blog.51cto.com/wangxiaoyu/371276

Linux下常用的压缩解压命令[收藏]相关推荐

  1. Linux按压缩率大小排序,Linux下经常使用压缩 解压命令和压缩比率对比

    经常使用的格式有: tar, tar.gz(tgz), tar.bz2, 算法 不一样方式,压缩和解压方式所耗CPU时间和压缩比率也差别也比较大.测试 1. tar 只是打包动做,至关于归档处理,不作 ...

  2. Linux常用文件压缩/解压命令格式大全(tar、gzip、bzip2、zip、compress、cpio、compress、dd)建议收藏

    Linux常用文件压缩/解压命令格式大全 1. tar 2. gzip 3. bzip2 4. zip 5. compress 6. cpio 7.dd 1. tar 打包备份后的文件包缀:.tar ...

  3. linux系统下tar、rar、zip等工具常用的压缩/解压命令

    本文主要讲解的tar工具,先来看看tar命令的主要参数: 必要参数有如下: -A 新增压缩文件到已存在的压缩 -c 建立新的压缩文件 -d 记录文件的差别 -r 添加文件到已经压缩的文件 -u 添加改 ...

  4. Linux下压缩包生成与解压命令以及进度

    不同后缀压缩包的打包与加压命令 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName .gz 解压1:gunzip FileName ...

  5. linux可以识别rar,转 linux下支持RAR压缩解压

    下载安装: [root@localhost ~]#wget [root@localhost ~]# tar zxvf rarlinux-3.6.0.tar.gz[root@localhost ~]#  ...

  6. Linux下tar.xz压缩解压

    解压 tar.xz   tar -Jxvf  xxx.tar.xz 压缩 tar.xz   tar -Jcvf  xxx.tar.xz /root/xxx 今天尝试编译内核,下载到了一份tar.xz结 ...

  7. linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---------------------- ...

  8. linux文件名 -%3e,linux下的三种解压文件的命令?

    那要看你的压缩文件使用哪种压缩方式: gzip,压缩文件名:zip或gz,解压命令:unzip bzip2,压缩文件名:bz,解压命令:bzip2 -d 上面两个是最常用的压缩方式,一般在linux下 ...

  9. Linux按压缩率大小排序,Linux下常用压缩 解压命令与压缩比率对比

    常用的格式有: tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar 只是打包动作,相当于归档处理,不做压缩:解压也一样 ...

  10. linux常用命令-压缩解压命令

    压缩解压命令 目录  1. 压缩解压命令:gzip  2. 压缩解压命令:gunzip  3. 压缩解压命令:tar  4. 压缩解压命令:zip  5. 压缩解压命令:unzip  6. 压缩解压命 ...

最新文章

  1. 读excel文件至DataTable
  2. Tcpdump(linux)下载、安装、使用说明
  3. 北京大学Cousera学习笔记--3-计算导论与C语言基础-第一讲.计算机的基本原理-计算机怎么计算-数的二进制...
  4. Product Long text - children usage
  5. python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图
  6. Linux C面试题(内存管理)
  7. docker export import后,导入镜像,启动时的错误,Error response from daemon: No command specified...
  8. Spring bean注入之constructor-arg注入和property注入的区别
  9. 前端开发必备之MDN文档
  10. 晨读-如何打造出有效的“人脉关系”
  11. RapidXml读取并修改XML文件
  12. dxgi的概念以及奇怪问题处理
  13. Nginx实现白名单灰度发布,杜绝后台不可操控
  14. php计算面积,PHP中长方形的面积怎么求
  15. 音乐APP首页框架搭建
  16. This view is not constrained It is olny designtime positions,so it will jump.......的解决方法
  17. Python实现对中文文本分句
  18. Add Binary 二进制求和
  19. 第7讲 替代定理、戴维南定理、诺顿定理
  20. jQuery实现购物车

热门文章

  1. 支付宝退款接口及反回参数
  2. 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别(转)
  3. 部署Java Web项目到Heroku
  4. webpack@3.6.0(4) -- 配置模块化开发
  5. jfinal使用配置文件注意事情
  6. POJ 2135 Farm Tour
  7. vs2005 打包,并自动安装SQL数据库
  8. Hadoop在运行几个T数据量时报堆内存溢出
  9. [1-7] 把时间当做朋友(李笑来)Chapter 7 【从此时此刻开始改变】 摘录
  10. 追随你心 —— 聊聊VMCloud