登录到远程ssh服务器时如何将文件复制到本地计算机

时间:2015-01-21 08:13:33

标签: bash unix ssh server scp

我有一个进程(我已将其放入.bash_profile中的别名中)从远程ssh服务器获取日志文件,将其保存到本地计算机,然后清空远程文件。

目前,我的流程有以下两个命令:

scp admin@remote.co.za:public/proj/current/log/exceptions.log "exceptions $(date +"%d %b %Y").log"

将文件下载到我的本地计算机,然后

ssh admin@remote.co.za "> /public/proj/current/log/exceptions.log"

清除远程文件。这样做意味着我通过ssh 两次登录。我希望这个有效,所以我想要一种方法只登录一次,做两个操作,然后注销。

因此,如果我能找到一种方法从服务器的命令行将文件发送到本地计算机,我可以这样做:

ssh admin@remote.co.za "[GET FILE]; > /public/proj/current/log/exceptions.log"

有办法做到这一点吗?如果没有,还有其他方法可以在登录时实现我的目标吗?

1 个答案:

答案 0 :(得分:3)

ssh admin@remote.co.za "cat /public/proj/current/log/exceptions.log &&
  > /public/proj/current/log/exceptions.log" > "exceptions $(date +"%d %b %Y").log"

这可以将整个文件写入stdout,它将作为ssh的stdout流过,然后远程截断文件(假设cat成功)。