2014-01-18 247 views
2

我是比较新的使用scp - 我试图在EC2做一些简单的东西 - 像下面这样:SCP输出日志文件

scp -i ec2key.pem [email protected]:/path/to/file ~/path/to/dest/folder/file 

我想有是的日志上面的命令(即屏幕输出到文本文件) - 有没有办法实现这一点?

谢谢。

回答

2

你可以用&>命令的两个输出(标准输出,标准错误)重定向只要您使用详细(-v)的说法。否则,scp将抑制输出,因为它预计将其stdout连接到终端。但你得到太多的信息,您可以得到grep排除:如果你想有输出都到屏幕和文件

scp -v -i ec2key.pem [email protected]:/path/to/file ~/path/to/dest/folder/file |& grep -v ^debug > file.log 

,使用tee

scp -v -i ec2key.pem [email protected]:/path/to/file ~/path/to/dest/folder/file |& grep -v^debug tee file.log 
+0

我以前尝试过第一种方法 - 但是对于scp,它可以工作,你可以自己试试看,它基本上写出一个空文件。 – JohnJ

+0

查看我的更新回答 – damienfrancois

+0

非常感谢你的帮助(你为我节省了很多时间!) - 你的第一个方法对我来说是完美的,把你的答案作为正确的答案,只是一个小小的后续问题:如果我想将'$ date'追加到上面的file.log中,怎么处理呢?再次感谢 – JohnJ

0

怎么样(未经测试,压缩/path/to的可读性):

(scp -i ec2key.pem [email protected]:/p/t/file ~/p/t/d/f/file) 2>/p/t/textfile 
+1

这种方法不适用于scp出于某种原因 - 因此是我的问题'&> 2'和'2>'根本不适用于scp :(不知道为什么。 – JohnJ

0
scp -v -i ec2key.pem [email protected]:/p/t/file ~/p/t/d/f/file >> something.log 2>&1 

-v2>&1将在现有的something.log文件中附加扩展详细信息(即调试信息)。