Linux命令之tar-rsync

一、tar命令

可以对文件和目录进行打包压缩(相较于zip、gzip、bzip2不能对目录进行压缩,tar是一大优势)

用途:制作归档文件、释放归档文件

基本格式:

  压缩---> tar  [选项]...  归档文件名  源文件或目录

解压---> tar  [选项]...  归档文件名  [-C 目标目录]

常用命令选项:

  -c:创建 .tar 格式的包文件 --create

  -x:解开 .tar 格式的包文件 --extract

  -v:输出详细信息 --verbose

  -f:表示使用归档文件 --file

  -t:列表查看包内的文件 --list(list the contents of an archive)

  -p:保持原文件的原来属性 --preserve-permissions

  -P:保持原文件的绝对路径 --absolute-names

( don‘t  strip  leading  ‘/’s  from  file  names)

=======================================================

打包(接上面选项)并压缩(接下面选项调用压缩)

  -j --调用bzip2

  -z --调用gzip

  -J --调用xz

所以:创建压缩包基本语法

  tar  -cjf  归档文件名  源目录或文件  ---> tar.bz2

  tar  -czf  ……  ---> tar.gz

  tar  -cJf  ……  ---> tar.xz (目前效果是最好的)www.kernel.org里的压缩包都是tar.xz

###########压缩效果:xz-->bzip2-->gz

======查看:tar  tf  归档文件名

======解压:tar  xf  归档文件名

具体示例:

1、压缩-----创建压缩文件的时候,使用绝对路径指定创建压缩文件的路径

[[email protected] lianxi]# ls

messages  passwd

[[email protected] lianxi]# tar -czvf messages_passwd.tar.gz  messages  passwd

messages

passwd

//同时将2个文件打包成messages_passwd.tar.gz ,此文件存放在当前目录下

[[email protected] lianxi]# ls

messages  messages_passwd.tar.gz  passwd

[[email protected] lianxi]# tar -tf messages_passwd.tar.gz  //利用-tf选项查看压缩包里的内容

messages

passwd

(再次打包文件,如果文件名相同,存放的路径也相同,会替换原来的文件)

[[email protected] lianxi]# tar  -czf  /backup/messages_passwd.tar.gz  messages  passwd

//指定压缩打包文件存放的路径在/backup目录下,不指定默认情况下在当前目录

==========保持原文件的绝对路径 -P(不建议使用)=================

[[email protected] tmp]# tar -czf p_h.tar.gz  -P /etc/hosts /etc/passwd

[[email protected] tmp]# ls

p_h.tar.gz

[[email protected] tmp]# tar -tf p_h.tar.gz

tar: Removing leading `/‘ from member names

/etc/hosts

/etc/passwd

此时解压缩,备份数据会覆盖原来/etc下面的数据

[[email protected] tmp]# rm -f p_h.tar.gz

[[email protected] tmp]# tar -czf p_h.tar.gz /etc/hosts /etc/passwd

tar: Removing leading `/‘ from member names

[[email protected] tmp]# ls

p_h.tar.gz

[[email protected] tmp]# tar -tf p_h.tar.gz

etc/hosts

etc/passwd

[[email protected] tmp]#

建议:

  不要加-P这个选项来备份,毕竟很多时候,备份是为了要未来追踪问题用的,倒不一定需要还原回原来的系统中,remove根目录后,备份数据会比较安全。

==============================

2、解压-----可以解压.tar.gz  .tar.bz2 .tar.xz 的压缩包

  (解压文件的时候,解压出来的文件默认情况下放在当前目录,如果当前目录下有相同的文件,后来解压出来的文件会替换原来的文件)

示例:

[[email protected] bak]# ls

messages.tar.bz2

[[email protected] bak]# tar xf messages.tar.bz2

//解压messages.tar.bz2文件,存放在当前目录下

[[email protected] bak]# tar xvf messages.tar.bz2

messages

[[email protected] bak]# ls

messages  messages.tar.bz2

#######################

默认是解压在当前工作目录下

使用-C 指定解压目录

#######################

[[email protected] bak]# tar xf messages.tar.bz2  -C  /linshi/

//将当前目录下的messages.tar.bz2解压到/linshi目录下

[[email protected] bak]# ls /linshi

messages

=================================================================

打包备份文件的时候,使用绝对路径会有相关提醒,例如:tar从成员名中删除开头的“/”。

shell> tar czf  /lianxi/bak/passwd_hosts.tar.gz  /etc/passwd   /etc/hosts

tar: Removing leading `/‘ from member names

shell> tar tf passwd_hosts.tar.gz

etc/passwd

etc/hosts

shell> tar xf passwd_hosts.tar.gz

shell> ls etc/

hosts  passwd

因为解压的时候,不指定路径,就直接解压到当前目录,如果因为打包压缩时带了选项P的话,带着/,解压的时候,显示原来文件的绝对路径,可能的替换和误删除误操作,会导致原来的文件丢失,不是我们希望看到的。

=================================================================

3、排除某一或多文件的打包备份

使用--exclude 选项,不包含某个文件(include 包含)

示例:

[[email protected] lianxi]# ls

bak   messages   passwd   boot

[[email protected] lianxi]# tar czvf  /back/no_bak.tar.gz  /lianxi/   --exclude=/lianxi/bak

//将/lianxi目录下的bak目录排除不备份到/back/no_bak.tar.gz目录里

##如果,排除多个文件使用{}括起来,中间使用逗号分隔

[[email protected] lianxi]# tar czvf  /back/no_bak-boot.tar.gz  /lianxi/  --exclude=/lianxi/{bak,boot}

tar命令的生产实践 :

编写一个脚本实现备份/var/log目录下的所有文件到/bak目录下,要求文件名是包含当天日期,文件名例如:2015-12-27-16_30-log.tar.gz,同时要求删除七天前的备份文件,只保留最近7天的

需求分析:

①备份 ---> tar

②tar  czvf  /bak/log.tar.gz  /var/log

③date +%F-%H_%M_%S

④find  /bak  -mtime +7 -exec  rm -rf {} \;

1 #!/bin/bash
2
3 [ -d /bak ]&&echo "/bak is existing"||mkdir /bak
4
5 b_time=`date +%F-%H_%M_%S`
6
7 tar  czf /bak/$b_time-log.tar.gz  /var/log  &>/dev/null&&echo "backup ok"||echo "backup failed"
8
9 find  /bak  -mtime +7  -exec rm -rf {} \;

二、rsync命令

---a fast, versatile, remote (and local) file-copying tool(同步工具)

常见选项:

  -a      归档并且是递归

  -z      压缩,可以传输快速,也省流量

  --delete    将目标目录中存在的,但是不存在源目录中的文件删除

  -v      显示详细信息

  -c      检查校验码

基本格式:

  rsync  -az  源目录/*  目标目录/

#########将源目录下的文件同步到目标目录下

示例:

[[email protected] ~]# rsync -az /lianxi/* /tmp/

配置Rsync备份服务器

第一步:在配置文件/etc/rsyncd.conf里添加nfsbackup新模块

[[email protected] ~]# vim /etc/rsyncd.conf
[nfsbackup]
path = /data/        # 使用目录
ignore errors        # 有错误时忽略
read only = false        # 可读可写(true或false)
list = false        # 阻止远程列表(不让通过远程方式看服务端有啥)
hosts allow = 172.16.0.0/16        # 允许IP
hosts deny = 0.0.0.0/32        # 禁止IP
auth users = rsync_backup        # 虚拟用户
secrets file = /etc/rsync.password        # 存放用户和密码的文件

第二步:启动rsync服务

[[email protected] ~]# rsync --daemon
[[email protected] ~]# ss -antup | grep rsync
tcp    LISTEN     0      5          :::873        :::*      users:(("rsync",7098,5))
tcp    LISTEN     0      5          *:873        *:*      users:(("rsync",7098,4))
时间: 2024-10-15 17:08:50

Linux命令之tar-rsync的相关文章

每天一个linux命令(27)--tar命令

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候 tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的 tar 是麻雀虽小,五脏俱全. tar 命令可以为Linux 的文件和目录创建档案,利用 tar, 可以为某一特定文件创建档案,也可以在档案中改变文件,或者向档案中加入新的文件.tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备撒花姑娘穿件档案.利用tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件

(转)每天一个Linux命令(8): tar

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便

Linux命令(009) -- tar

tar命令可以为Linux的文件和目录创建档案(备份).利用该命令,可以为某一特定文件创建备份,也可以在档案中改变文件或向档案中加入新的文件:可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件合并称为一个文件以便于网络传输非常有用. 首先要弄清两个概念:打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个压缩文件通过一些压缩算法变成一个小文件.为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得

linux 命令——28 tar

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大.tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于

Linux命令学习-tar命令

Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件后缀一般为 .tar.gz -j 使用bzip2来解压和压缩,文件后缀一般为 .tar.bzip2 -v 显示详细过程,用于查看整个过程中解压/压缩的文件 -f 指定压缩文件 假设当前处于wintest用户的主目录,路径为 /home/wintest ,存在文件夹testA.testB和testC,

linux 命令之 tar

作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 语法: tar [主选项+辅选项] 文件或目录 主选项: c 创建新的归档文件.(打包) x 从归档文件中释放文件.(拆包) t 列出归档文件内容 主选项只能同时存在一个 辅选项: z gzip格式,一般是后缀为gz的文件 j bzip2格式,一般是后缀为bz2的文件 v 显示命令执行过程 f 使用归档名 p 使用原文件的原属性(不会隐居使用这而变) --exclude FILE

linux 命令(12) tar

服务器迁移,因此需要把自己虚机上的文件copy到本地,由于文件太大,故而进行压缩,复习了tar命令 1:tar 介绍 -c: 新建打包文件,可以搭配 -v 来查看过程中被打包的文件名(fileName) -x:解打包或解压缩的功能,可以搭配 -C(大写)在特定的目录解开 -t:查看打包文件的内容含有那些文件名,重点在查看文件名 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩

2018/04/17 每日一个Linux命令 之 tar

10天没有更新这个每日学习 linux 了,因为实在很忙,晚上还要看会其他知识. 但是也不应该给自己找理由,还是应该每天的坚持下去 -- tar 用于在 linux 解压缩/文件 这个命令下面的参数非常多,想看的可以去看下,这里只写出常用的解压缩命令. Linux tar命令 -- 压缩 例如我们要把 /etc 目录打包 1:打包文件目录为 .tar 包 tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩! 2:打包目录并且使用  gzip 压缩 tar -zcvf /t

Linux命令之---tar

命令简介: 打包:打包是指将一大堆文件或目录变成一个总的文件: 压缩:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令),linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们称为tar包,tar包文件的命令通常都是以.tar结尾的. 命令格式: tar [必要参数] [选择参数][ 文件] 命令参数: -A 新增压缩文件到已存在的压缩 -B 设

linux命令:tar

1.命令介绍: tar用来打包,压缩和解压文件. 2.命令格式: tar [选项] 文件 3.命令参数: 必要参数有如下: -A 新增压缩文件到已存在的压缩 -B 设置区块大小 -c 建立新的压缩文件 -d 记录文件的差别 -r 添加文件到已经压缩的文件 -u 添加改变了和现有的文件到已经存在的压缩文件 -x 从压缩的文件中提取文件 -t 显示压缩文件的内容 -z 支持gzip解压文件 -j 支持bzip2解压文件 -Z 支持compress解压文件 -v 显示操作过程 -l 文件系统边界设置