小编Ena*_*nak的帖子

将 ssh 输出重定向到文件更改行结尾

首先,如果我做一个简单的,ssh admin@example.com "cat backup.tar" > backup.tar这不会发生!所以,还有其他我不知道的转换它。

我需要提供系统当前状态的备份而不授予对服务器的访问权限。我所做的是以下内容:

  1. 创建一个新用户。我们叫他username
  2. 只允许通过 ssh-key 访问
  3. 将钥匙放入 authorized-keys
  4. 将命令/外壳更改/etc/passwd为自定义脚本username
  5. 自定义脚本通过执行数据库转储和复制一些文件来获取数据,并最终创建一个 tar 存档到 stdout
  6. 确保没有额外的输出到stdout.

为了得到你需要做的的数据:ssh username@example.com > backup.tar

现在,除了行尾被更改外,几乎一切正常。将tar越来越大,我可以看到,每行有DOS行与结束^M的象征。如果我强制dos2unix使用二进制 tar 文件,该文件与服务器上的文件匹配。

为什么会发生这种情况,是什么改变了行尾?我什至将其简化为以下内容:使用上述命令登录并将输出重定向到本地计算机上的文件时,服务器上用于username链接的脚本/etc/passwd只是 make acat .viminfo并且行尾仍然传输错误。sshusername

shell ssh newlines

4
推荐指数
1
解决办法
222
查看次数

标签 统计

newlines ×1

shell ×1

ssh ×1