如何使用SCP命令将Linux服务器access日志最后10行下载到本地
远程日志最后10行获取方案
SCP本身仅支持完整文件传输,无法读取管道传入的标准流内容,因此直接将tail命令通过管道拼接scp无法实现需求,可通过以下两种方案完成操作:
方案1:SSH直接导出(推荐)
直接通过SSH在远程执行tail命令,将返回结果重定向到本地即可,无需额外生成临时文件:
- 需保存到本地文件时执行:
ssh 你的用户名@远程服务器IP "tail -n 10 远程access日志的绝对路径" > ./本地保存的文件名.log - 仅需在终端实时展示无需保存时,去掉末尾的重定向即可:
ssh 你的用户名@远程服务器IP "tail -n 10 远程access日志的绝对路径"
如果你的远程SSH服务使用非默认22端口,需要在ssh参数中指定端口:ssh -p 自定义SSH端口 你的用户名@远程服务器IP "tail -n 10 远程access日志的绝对路径"
方案2:临时文件中转配合SCP传输
如果必须使用SCP完成传输,可以先在远程生成临时文件再拉取,拉取后可清理远程临时文件:
- 远程生成仅包含最后10行日志的临时文件
ssh 你的用户名@远程服务器IP "tail -n 10 远程access日志的绝对路径 > /tmp/access_last10.tmp" - 用SCP拉取临时文件到本地
scp 你的用户名@远程服务器IP:/tmp/access_last10.tmp ./ - 可选:清理远程服务器上的临时文件
ssh 你的用户名@远程服务器IP "rm -f /tmp/access_last10.tmp"
如果使用非默认SSH端口,SCP需要大写P参数指定端口:scp -P 自定义SSH端口 你的用户名@远程服务器IP:/tmp/access_last10.tmp ./
内容的提问来源于stack exchange,提问作者J0nty
相关产品推荐
相关产品推荐

