tar 打包
tar 本身是一个打包工具,可以把目录打包成一个文件,它把所有文件整合成为一个大文件,方便复制或者移动;
tar 不仅可以打包目录,也可以打包文件,其中不管打包还是解包,源文件是不会删除的,会覆盖当前已存在的目录。
1、基本语法
tar [ 选项 ] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件式.tar.gz )
2、选项说明
选项 | 功能 |
-c | 产生.tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar 文件 |
-C | 解压到指定目录 |
3、压缩案例实操
## 1 压缩多个文件
[root@icoolkj dataBak]# ls
test1.txt test2.txt
[root@icoolkj dataBak]# tar -zcvf test.tar.gz test1.txt test2.txt
test1.txt
test2.txt
[root@icoolkj dataBak]# ls
test1.txt test2.txt test.tar.gz
[root@icoolkj dataBak]#
## 2 压缩目录
[root@icoolkj dataBak]# ll
总用量 5928
drwxr-xr-x 3 root root 4096 12月 27 09:40 t1
[root@icoolkj dataBak]# tar -zcvf t.tar.gz t1/
t1/
t1/t2/
t1/t2/t3/
t1/t2/t3/test1.txt
t1/t2/test2.txt
[root@icoolkj dataBak]# ls
t1 t.tar.gz
[root@icoolkj dataBak]#
## 3 后台运行压缩
[root@icoolkj dataBak]# nohup tar -zcvf test.tar.gz t1/ >mycompress20221228.log 2>&1 &
[root@icoolkj dataBak]# ls
nohup.out t1 test1.txt test2.txt test.tar.gz
[root@icoolkj dataBak]#
4、解压案例实操
## 1 解压到当前目录
[root@icoolkj dataBak]# tar -zxvf test.tar.gz
test1.txt
test2.txt
[root@icoolkj dataBak]# ls
t1 test1.txt test2.txt test.tar.gz t.tar.gz
[root@icoolkj dataBak]#
## 2 解压到指定目录
[root@icoolkj dataBak]# tar -zxvf t.tar.gz -C tt/
t1/
t1/t2/
t1/t2/t3/
t1/t2/t3/test1.txt
t1/t2/test2.txt
[root@icoolkj dataBak]# ll tt/
总用量 4
drwxr-xr-x 3 root root 4096 12月 27 09:40 t1
[root@icoolkj dataBak]#
## 3 后台运行解压指定目录
[root@icoolkj dataBak]# nohup tar -zxvf test.tar.gz -C tt/ >mydecompress20221228.log 2>&1 &
[root@icoolkj dataBak]# ls
nohup.out t1 test1.txt test2.txt test.tar.gz tt
[root@icoolkj dataBak]# ls tt/
t1
[root@icoolkj dataBak]#
5、后台运行命令:nohup
nohup命令:nohup是不挂断的意思( no hang up)。如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令忽略所有挂(SIGHUP)信号,可以在你退出帐户/关闭终端之后继续运行相应的进程。
一般格式为: nohup yourcommand &
## yourcommand:启动对象命令。可以跟该命令需要的各种参数。
## &是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出. nohup与&结合起来,可以实现不挂断的后台运行。
实现屏幕输出记录到日志文件: nohup yourcommand 2>&1 &
## 0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
## 2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到日志文件中。
如果希望将日志输出到别的文件中,可以增加一个文件路径参数。如:nohup yourcommand > myout.log 2>&1 &
实时监测日志输出内容命令:tail
tail 命令是nohup命令的好搭档。配合-f参数,可以实时监视向日志文件增加的信息。
tail -f myout.log
6、rsync 传送数据
## 从远程主机复制整个文件夹到本地目录下
[root@icoolkj dataBak]# rsync -av root@192.168.1.101:/home/data/test.tar.gz .
[root@icoolkj dataBak]# rsync -av root@192.168.1.101::/home/data/test.tar.gz .
单个冒号和双冒号的区别:使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。
##
jobs //查看任务,返回任务编号n;
bg %n //将编号为n的任务转后台运行;
fg %n //将编号为n的任务转前台运行;
Ctrl+z //挂起当前任务;
Ctrl+c //结束当前任务。
disown -h %n //将这个作业忽略HUP信号
## 如何Kill掉jobs里在后台运行的程序?
## kill %1
## %后的数字,是jobs里中括号里的数字。