分类: LINUX

 
 
登录22后tar 压缩/var/log目录输出到标准输入通过管道传到本地22_log.tar.gz文件
ssh 192.168.0.22 "cd /var ;tar -zcvf - log"|cat >22_log.tar.gz
 
 
在提取存档文件时,会在相对位置重新创建文件。可以使用这种方法帮助同步目录。因为 tar 创建目录结构的字节流,可以通过结合使用 tar 和管道把文件从一个位置复制到另一个位置:$ tar cf - ./etc |( cd /backup; tar xf - )。“-” 指定 tar 应该使用标准输出(在写时)或标准输入(在读时)。圆括号让语句在一个子 shell 中执行。看一下管道符前面的代码,它创建文件的字节流并发送到标准输出。在管道符后面,切换到另一个目录,然后从标准输入提取字节流。

要想保留文件的所有者和权限,可以使用 p 选项保留每个文件和目录的元数据:$ tar cfp - ./etc |( cd /backup; tar xfp - )。

掌握这种基本结构之后,就可以执行更复杂的操作。例如,可以只复制在特定时间之后修改过的文件:$ tar cf - --newer 20090101 ./etc |(cd /backup; tar xf - )。这个命令创建在 2009 年 1 月 1 日之后修改过的文件的拷贝。

通过与 rsh 或 ssh 结合使用,还可以把文件同步到远程主机:$ tar cfp - ./etc |(ssh user@host -- tar xfp -)。按照这种方式使用 ssh 和 tar 是在远程主机上创建本地文件备份的好方法。但是,还有更高效的信息同步方法。

1、在A机压缩后,复制到B机器并解压缩
tar -cf - /opt/dir1 | ssh 192.168.0.116 "cd /opt; tar -xf -"

2、在A机压缩,并将压缩文件复制到B机
tar -cf - /opt/dir1 | ssh 192.168.0.116 "cd /opt; cat - > dir1.tar"

3、将A机的压缩文件,复制到B机并解压缩
zcat dir.tar | ssh 192.168.0.116 "cd /opt; tar -xf -"

传输到远程:tar czf - file| ssh server "tar zxf -"

压缩到远程:tar czf - file| ssh server "cat > file.tar.gz"

解压到远程:ssh server "tar zxf -" < file.tar.gz

解压到本地:ssh server "cat file.tar.gz" | tar zxf -

-----------------------------------------------------------------

$target 表示目的机器,指远端机器
$backup_server 表示备份机器,同样也是指远端机器
$save 则是指备份目录

要求远端备份并拉回 local
ssh $target tar -cf - / --exclude /mnt | bzip2 -9 | cat > $target.tar.bz2

解开本地备份并回存到远端去
bunzip2 -dc $target.tar.bz2 | ssh $target "cd /;tar -pxkf -"

备份 local 资料,丟到远端去压缩并存档
tar cf - / --exclude xxx | ssh $backup_server "bzip2 -9 > $save/test.tar.bz2"

把远端资料拉回 local,作解压缩动作
ssh $backup_server "cat $save/test.tar.bz2" | bunzip2 | tar -xpkf -

在本地脚本放在远程执行

cat myscript.sh | ssh kramer /bin/sh 
hostname
date
w
ifconfig
ps -ef | grep http | awk '{print $NF}'

在远程较长的管道命令(这个同样可以用上面的脚本方式执行)

  1. #! /bin/sh
  2. ssh 172.16.1.2 <<EOF
  3. sa=`/usr/sbin/alternatives --config java 2>&1`
  4. echo "Result:"
  5. echo "$sa"
  6. echo
  7. echo "Will I find anything when I look in that result for jdk1.6.0_05 ???"
  8. echo "$sa" | grep "jdk1.6.0_05"
  9. echo "Nope. I thought not! But the reason should be clear now!"
  10. EOF

ssh技巧

 
远程比较文件 
ssh remote-hosts cat memos/memo.draft | diff memos.new -
cat memos.new | ssh speedy diff - memos/memo.draft#diff <(ssh -n george cat /etc/passwd) <(ssh -n kramer cat /etc/passwd)
 
 
打包文件并直接传递到远程目录解开(不在本地生成文件) 
tar cf - some_directory | ssh kramer "( cd /path/to/destination; tar xf - )"
ssh 192.168.100.166 tar -cf - /var/www/html/centos/5/repodata |cat > tt.tar
ssh 192.168.10.145 tar -czf - '--exclude=*.gz' '--exclude=*.tgz' '--exclude=*.tar' /a8root/phpweb/website/images
直接获取远程文件tar并在本地保留
ssh 192.168.100.166 "find /var/www/html/centos/5/repodata -depth -print | cpio -oaV" | cat > tt.cpio

ssh tar 命令把远程文件拉回来或推过去的更多相关文章

  1. ssh结合tar命令把远程文件拉回来或推过去(实现数据无落地推送)

    登录22后tar 压缩/var/log目录输出到标准输入通过管道传到本地22_log.tar.gz文件 ssh 192.168.0.22 "cd /var ;tar -zcvf - log& ...

  2. Linux 命令 - scp: 远程文件拷贝

    scp 与普通的文件复制命令 cp 类似,而它们之间最大的差别在于 scp 命令的源或目标文件是远程文件. 命令格式 scp [options] [[user@]host1:]file1 ... [[ ...

  3. Linux SSh scp使用【远程文件/目录的传输】

    一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...

  4. C#登录SSH执行命令,下载文件

    前言 批量登录SSH执行命令 ,把应急响应中的日志文件下载回来. 代码实现 Renci.SshNet编译出DLL,引用. using System; using System.Collections. ...

  5. 使用 tar 命令管理存档文件

    tar命令用于将大型文件集汇集为一个文件(存档) tar的三种操作:c(创建存档).t(列出存档的内容).x提取存档 tar的常用选项:f(要操作的存档文件名).v(可视化操作) 创建压缩的tar存档 ...

  6. scp命令获取远程文件

    一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响 ...

  7. Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件

    我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...

  8. jenkins系列_使用scp命令进行远程文件复制遇到的坑

    转自:https://blog.csdn.net/kingboyworld/article/details/78905553 一.场景介绍 项目为微服务项目,使用jenkins进行统一部署.基本思路是 ...

  9. 开发掉坑(一)tar命令解压文件覆盖源文件

    今天在编译机上编译前端代码,报了找不到依赖的异常.检查后发现是node_modules/.bin下少了一些文件. 一开始疑惑为什么本地能成功生成软链在node_modules/.bin,服务器上面却不 ...

随机推荐

  1. Javascript基础系列之(五)条件语句(switch语句)

    stwith语句的格式一般如下: switch (expression){ case value :statement1 break; case value2 :statement2 break; . ...

  2. c# 通过反射获取私有方法

    class Program { static void Main(string[] args) { //通过反射来调私有的成员 Type type = typeof(Person); //Bindin ...

  3. F12调试打开时,出现很多多余内容问题解决

    关闭vs2013的browserlink功能即可: <appSettings> <add key="vs:EnableBrowserLink" value=&qu ...

  4. go语言指针符号的*和&

    先看一段代码 先放一段代码,人工运行一下,看看自己能做对几题? package main import "fmt" func main() { var a int = 1 var ...

  5. 【RSYSLOG】rsyslog作为日志采集器安装配置说明

    RSYSLOG is the rocket-fast system for log processing. About 由于环境基于CentOS 6.7 x64,rsyslog本身就是OS的组件,由于 ...

  6. KK录像机破解补丁

    KK录像机是由杭州凯凯科技有限公司出品的免费的集游戏录像.视频录制.视频剪辑.添加字幕.添加音乐等功能于一体的高清视频录制软件.操作简单,且兼容录制所有游戏视频,是玩家分享精彩的工具. KK VIP功 ...

  7. javascript与服务器1

    A. 通过在客户端设置Cookie,然后在服务器端读取它. 关于Cookie只说明一点, 它是存储在客户端机器上的一小块信息, 可以有客户端程序或服务器程序创建,并通过http传递.常用于跟踪用户在客 ...

  8. oracle-7参数文件的管理

    参数文件的管理:1.参数文件的作用:记录数据库的配置的 (1)pfile  ---> 文本文件 (2)spfile --->服务器的参数文件(二进制的) 两个参数文件的区别: pfile ...

  9. BZOJ1202 狡猾的商人

    HNOI2005 Day1 T4 Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1, ...

  10. C#图片读取和保存

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...