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、压缩-----创建压缩文件的时候,使用绝对路径指定创建压缩文件的路径
[root@wulimengzhu lianxi]# ls
messages passwd
[root@wulimengzhu lianxi]# tar -czvf messages_passwd.tar.gz messages passwd
messages
passwd
//同时将2个文件打包成messages_passwd.tar.gz ,此文件存放在当前目录下
[root@wulimengzhu lianxi]# ls
messages messages_passwd.tar.gz passwd
[root@wulimengzhu lianxi]# tar -tf messages_passwd.tar.gz //利用-tf选项查看压缩包里的内容
messages
passwd
(再次打包文件,如果文件名相同,存放的路径也相同,会替换原来的文件)
[root@wulimengzhu lianxi]# tar -czf /backup/messages_passwd.tar.gz messages passwd
//指定压缩打包文件存放的路径在/backup目录下,不指定默认情况下在当前目录
==========保持原文件的绝对路径 -P(不建议使用)=================
建议:
不要加-P这个选项来备份,毕竟很多时候,备份是为了要未来追踪问题用的,倒不一定需要还原回原来的系统中,remove根目录后,备份数据会比较安全。
==============================
2、解压-----可以解压.tar.gz .tar.bz2 .tar.xz 的压缩包
(解压文件的时候,解压出来的文件默认情况下放在当前目录,如果当前目录下有相同的文件,后来解压出来的文件会替换原来的文件)
示例:
[root@studying bak]# ls
messages.tar.bz2
[root@studying bak]# tar xf messages.tar.bz2
//解压messages.tar.bz2文件,存放在当前目录下
[root@studying bak]# tar xvf messages.tar.bz2
messages
[root@studying bak]# ls
messages messages.tar.bz2
#######################
默认是解压在当前工作目录下
使用-C 指定解压目录
#######################
[root@studying bak]# tar xf messages.tar.bz2 -C /linshi/
//将当前目录下的messages.tar.bz2解压到/linshi目录下
[root@studying 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 包含)
示例:
[root@wulimengzhu lianxi]# ls
bak messages passwd boot
[root@wulimengzhu lianxi]# tar czvf /back/no_bak.tar.gz /lianxi/ --exclude=/lianxi/bak
//将/lianxi目录下的bak目录排除不备份到/back/no_bak.tar.gz目录里
##如果,排除多个文件使用{}括起来,中间使用逗号分隔
[root@wulimengzhu 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 {} \;
#!/bin/bash
[ -d /bak ]&&echo "/bak is existing"||mkdir /bak
b_time=`date +%F-%H_%M_%S`
tar czf /bak/$b_time-log.tar.gz /var/log &>/dev/null&&echo "backup ok"||echo "backup failed"
find /bak -mtime + -exec rm -rf {} \;
二、rsync命令
---a fast, versatile, remote (and local) file-copying tool(同步工具)
常见选项:
-a 归档并且是递归
-z 压缩,可以传输快速,也省流量
--delete 将目标目录中存在的,但是不存在源目录中的文件删除
-v 显示详细信息
-c 检查校验码
基本格式:
rsync -az 源目录/* 目标目录/
#########将源目录下的文件同步到目标目录下
示例:
[root@studying ~]# rsync -az /lianxi/* /tmp/
配置Rsync备份服务器
[root@backup ~]# 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 # 存放用户和密码的文件
[root@backup ~]# rsync --daemon
[root@backup ~]# ss -antup | grep rsync
tcp LISTEN 0 5 :::873 :::* users:(("rsync",7098,5))
tcp LISTEN 0 5 *:873 *:* users:(("rsync",7098,4))
Linux命令之tar-rsync的更多相关文章
- (转)每天一个Linux命令(8): tar
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...
- 每天一个linux命令(27)--tar命令
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候 tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的 tar 是麻雀虽小,五脏俱全. tar 命令可以为Linux ...
- 【Linux 命令】- tar 命令
语法 tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Sc ...
- linux 命令——28 tar
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大.tar命令可以为linux的 ...
- Linux命令(009) -- tar
tar命令可以为Linux的文件和目录创建档案(备份).利用该命令,可以为某一特定文件创建备份,也可以在档案中改变文件或向档案中加入新的文件:可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件 ...
- Linux命令学习-tar命令
Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件 ...
- Linux命令:tar命令批量解压方法总结
tar命令批量解压方法总结 (2010-05-24 17:48:46) 转载▼ 标签: tar 批量解压 杂谈 分类: linux学习 由于linux的tar命令不支持批量解压,所以很多网友编写了好多 ...
- linux命令学习——tar
tar命令用来处理压缩,压缩和解压.在linux上经常遇到tar命令,总结如下: tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独 ...
- 2018/04/17 每日一个Linux命令 之 tar
10天没有更新这个每日学习 linux 了,因为实在很忙,晚上还要看会其他知识. 但是也不应该给自己找理由,还是应该每天的坚持下去 -- tar 用于在 linux 解压缩/文件 这个命令下面的参数非 ...
- Linux命令中:rsync和cp之间的区别
rsync:只拷贝那些更新的文件: cp -u:也可以实现类似效果: 两者都基本可以满足备份的需求: 只是一般情况下,用rsync做这类备份之类的事情,更多见: 在备份的操作中,拷贝,过期文件的删除是 ...
随机推荐
- 单独编译IMX6Q的VPU示例程序:mxc_vpu_test.out
mxc_vpu_test.out是飞思卡尔为IMX6Q编写的VPU示例程序,有编解码和简单的网络传输功能. 首先从/opt/freescale/pkgs/中提取出imx-test-3.0.35-4.1 ...
- iOS学习之Map,定位,标记位置的使用
iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single V ...
- beetl模板引擎使用笔记
maven项目pom: <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl< ...
- python_如何判断字符串a以某个字符串开头或结尾?
案例: 某文件系统目录下有一系列文件: 1.c 2.py 3.java 4.sh 5.cpp ...... 编写一个程序,给其中所有的.sh文件和.py文件加上可执行权限 如何解决这个问题? 1. 先 ...
- python_大学排名爬取
逻辑思路是什么? 1. 获取页面 2. 处理页面,提取信息 3. 格式输出 先走面向过程编程: 1. 要定义3个函数,对应以上三个过程 2. 在__main__函数中传入参数,并执行以上三个过程 #! ...
- java连接mysql以及增删改查操作
java连接数据库的代码基本是固定的,步骤过程觉得繁琐些,代码记起来对我来说是闹挺.直接上代码: (温馨提醒:你的项目提前导入连接数据库的jar包才有的以下操作 ) class DBConnectio ...
- 如何通过命令或脚本方式在Windows上访问linux系统
很多情况下,我们需要在Windows上写脚本,创建计划任务程序,这个过程中可能需要访问linux系统,执行脚本或者上传下载文件.并且我们也不想在Windows上安装什么东西.那最好的办法就是使用put ...
- python爬虫之小说爬取
废话不多说,直接进入正题. 今天我要爬取的网站是起点中文网,内容是一部小说. 首先是引入库 from urllib.request import urlopen from bs4 import Bea ...
- HTTP基本知识
1.TCP/IP 传输控制协议/因特网互联协议 (1)应用层:决定向用户提供应用服务时通信的活动(FTP.DNS和HTTP都属于该层). (2)传输层:提供处于网络连接中的两台计算机之间的数据传输(T ...
- python3中的进程
由于GIL的存在,python中的多线程并不是真正的多线程. 如果想要充分的使用多核CPU的资源,在python中大部分情况需要使用多进程. 在计算机中,进程与进程这之间在内存中是相互独立的,是两块完 ...