免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7733 | 回复: 14
打印 上一主题 下一主题

[网络相关] tar 和ssh [复制链接]

论坛徽章:
2
辰龙
日期:2015-01-11 00:34:002015年亚洲杯之巴勒斯坦
日期:2015-01-28 10:35:37
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-17 13:53 |只看该作者 |倒序浏览
本帖最后由 securitypluscn 于 2013-08-17 13:56 编辑

我正在学入侵检测程序Ossec HIDS
以下是书中的两个小程序。
# cat /; tar --exclude client.keys -cf /tmp/ossec.tar var/ossec etc/init.d/ossec 'find etc -name "S[0-9][0-9]ossec"'

# cat /tmp/ossec.tar | ssh root@192.168.65.30 "groupadd ossec; useradd -g ossec -d /var/ossec ossec; cd / ; tar -xf -"

第一个程序很好理解,将所需的文件用tar打包.
第二个程序我不懂,请帮忙解答。

我只知道用scp传文件。为什么用cat 命令?我在机器上只执行“cat /tmp/ossec.tar" 时会出一些乱码。
"tar -xf -" 中的“-”是做什么用的?

先谢谢了。


论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2013-08-17 17:38 |只看该作者
目的就是将tar 文件传到远程服务器后直接解包。 - 可以理解为标准输入。
  1. cat /tmp/ossec.tar | ssh root@192.168.65.30 " tar -xf -"
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
3 [报告]
发表于 2013-08-17 22:33 |只看该作者
回复 2# rdcwayx


    版版,我也有此疑问,为什么用cat?

论坛徽章:
2
辰龙
日期:2015-01-11 00:34:002015年亚洲杯之巴勒斯坦
日期:2015-01-28 10:35:37
4 [报告]
发表于 2013-08-17 23:52 |只看该作者
rdcwayx 发表于 2013-08-17 17:38
目的就是将tar 文件传到远程服务器后直接解包。 - 可以理解为标准输入。


非常感谢你的解答。

论坛徽章:
2
辰龙
日期:2015-01-11 00:34:002015年亚洲杯之巴勒斯坦
日期:2015-01-28 10:35:37
5 [报告]
发表于 2013-08-17 23:55 |只看该作者
reyleon 发表于 2013-08-17 22:33
回复 2# rdcwayx


我以为CAT只能读文本文件呢。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
6 [报告]
发表于 2013-08-18 12:18 |只看该作者
本帖最后由 rdcwayx 于 2013-08-18 14:23 编辑

tar 原来用于磁带备份,不带压缩功能。文件在打包的时候加了些头文件标识, 文件包大小前后比较的话,其实几乎没有变化。

所以untar 的时候,就相当于从磁带里读这个文件,和cat起的作用是一样的。

你可以在本机上试验一下这个命令。
  1. tar cvf infile.tar infile
  2. cat infile.tar |tar xvf -
复制代码
除非这个tar文件需要反复使用,让我做的话,我一般不产生这个临时tar文件,直接打包传到远程服务器后解包。
  1. tar cvf - 文件1 目录1 文件x  |ssh user@server "cd /PATH; tar xvf -"
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
7 [报告]
发表于 2013-08-18 20:39 |只看该作者
回复 6# rdcwayx


    学习了。

论坛徽章:
2
辰龙
日期:2015-01-11 00:34:002015年亚洲杯之巴勒斯坦
日期:2015-01-28 10:35:37
8 [报告]
发表于 2013-08-19 00:21 |只看该作者
本帖最后由 securitypluscn 于 2013-08-19 00:41 编辑

回复 6# rdcwayx

多谢,长知识了!

我试了一下压缩文件,也可以。
#cat infile.tar.gz | ssh 192.168.1.123 "cd /tmp; tar zxf -"
不知cat 是否将压缩文件打开来看,还是只是将整个文件不管三七二十一扔进管道完事。

再有 tar cvf - 文件1 目录1 文件x  |ssh user@server "cd /PATH; tar xvf -" 中的第一个“-” 是否可以不用。







   

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2013-08-19 09:33 |只看该作者
  1. #cat infile.tar.gz | ssh 192.168.1.123 "cd /tmp; tar zxf -"
  2. 不知cat 是否将压缩文件打开来看,还是只是将整个文件不管三七二十一扔进管道完事。
复制代码
就是这样,如果你的tar 支持 z 参数的话(就是自带类似gunzip的功能),那么也可以。
  1. 再有 tar cvf - 文件1 目录1 文件x  |ssh user@server "cd /PATH; tar xvf -" 中的第一个“-” 是否可以不用。
复制代码
如果第一个 - 没有的话,如何产生标准输出给下一条命令呢?

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
10 [报告]
发表于 2013-08-19 11:09 |只看该作者
cat 就是原样输出,管他是什么文件类型都一样输出。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP