如何将Linux服务器日志拷贝到本机,scp命令用法?

Linux服务器日志拷贝到本机,最直接的办法是用scp命令,一条scp 用户名@服务器IP:日志路径 本机目录就能搞定。如果日志文件巨大或者网络不稳定,rsync更适合断点续传,下面从最简单的命令到复杂的生产环境场景,把这几种方案的操作细节和坑都讲透。

先搞懂核心命令:scp基础用法

scp(Secure Copy)是基于SSH协议的安全复制工具,只要你能用SSH登录服务器,就能用它拷日志,命令格式很好记,就是从哪拷到哪:

2.12-scp通过命令上传下载文件、文件夹
加载中
2.12-scp通过命令上传下载文件、文件夹
A
Alex-1024
5003--
原视频地址
  • 从服务器拷到本机:scp 用户名@服务器IP:/服务器上的文件路径 /本机保存路径
  • 从本机传到服务器:scp /本机文件路径 用户名@服务器IP:/服务器上的保存路径

举个例子,假设服务器IP是192.168.1.100,用户名是root,日志文件在/var/log/nginx/access.log,想存到本机~/logs/目录下,执行:

scp root@192.168.1.100:/var/log/nginx/access.log ~/logs/

执行后会提示输入root用户的密码,验证通过就开始传输。

复制整个日志目录加个 -r 参数

如果日志不止一个文件,而是按天切割的一整个文件夹,比如/var/log/nginx/下有很多日志,就用递归参数-r:

scp -r root@192.168.1.100:/var/log/nginx/ ~/logs/

改SSH端口用 -P 参数

如果服务器的SSH端口不是默认的22(比如改成了2222),需要加-P指定端口,注意是大写P:

scp -P 2222 root@192.168.1.100:/var/log/nginx/access.log ~/logs/

指定私钥文件用 -i 参数

生产环境很多禁止密码登录,只允许密钥认证,用-i指定私钥文件:

scp -i ~/.ssh/id_rsa root@192.168.1.100:/var/log/nginx/access.log ~/logs/

linux服务器日志拷贝到本机怎么断点续传?用rsync

日常排障时用scp没问题,但日志文件动辄几个GB,网络一抖就断了,还得重新拷,这时候用rsync更靠谱,rsync支持断点续传、增量同步,还能压缩传输。

基础命令:

rsync -avzP root@192.168.1.100:/var/log/nginx/ ~/logs/

参数说明:

  • -a:归档模式,保留文件属性,递归同步目录
  • -v:显示传输过程
  • -z:传输时压缩,节省带宽
  • -P:等同于--partial --progress,支持断点续传并显示进度

中途断了,重新执行同一条命令,它会跳过已传完的部分,只传剩余数据。

rsync 和 scp 怎么选

场景 scp rsync
单个小文件、临时拷一下 推荐,命令短、系统自带 没必要,杀鸡用牛刀
几百MB到几个GB的日志 可以但断线要重来 推荐,支持断点续传
定时增量同步 不适合 推荐,只传差异部分
目标目录已存在大量文件 覆盖或另行处理 自动比对,增量更新

行业共识认为,rsync的增量特性在同步线上环境日志时,效率和安全性都明显高于scp。

免密rsync的配置方式

如果以后要反复拉取日志,不想每次都输密码,配置SSH密钥对:

  1. 本机生成密钥对:ssh-keygen -t rsa -b 4096(一直回车就行)
  2. 拷贝公钥到服务器:ssh-copy-id root@192.168.1.100
  3. 之后执行scp或rsync都不再需要密码

用rsync同步时想排除某些文件

比如你只要.log结尾的文件,不要.gz压缩包:

rsync -avzP --include=".log" --exclude=".gz" root@192.168.1.100:/var/log/nginx/ ~/logs/

注意--include和--exclude的顺序不要搞反,include放前面,否则会被exclude全部过滤掉,这是初学rsync比较容易踩的坑。

服务器没有SSH开放端口怎么办?用sz命令绕过

有些公司内网机器出于安全考虑,SSH端口只对跳板机开放,本机直连不上去,如果服务器上还能用终端软件登录(如Xshell、SecureCRT),优先考虑sz命令,这也是linux服务器日志下载到本地常用的一种方式。

先看服务器上装没装lrzsz:

which sz

没装就装一下(需要root权限):

# Debian/Ubuntu
apt-get install -y lrzsz
# CentOS/RHEL
yum install -y lrzsz

然后直接执行:

sz /var/log/nginx/access.log

在弹出的对话框里选个本机保存路径,就开始下载了。

sz命令的优点是简单粗暴,不用管IP和端口,只要终端软件连着服务器就能用,缺点是只能传文件不能传目录,传大文件容易中断且不支持断点续传、不能传文件夹,如果要传文件夹,先把服务器上的日志打包,再sz下载。

打包日志再下载的通用套路

不管用scp还是rsync,如果日志文件特别多、特别碎,先在服务器上打成tar包,传输效率往往更高:

# 在服务器上进入日志目录
cd /var/log/nginx/
# 打包并压缩
tar -czvf access_logs_$(date +%Y%m%d).tar.gz access.log

之后再传这个tar包,传到本地解压即可,文件数量和压缩两个因素都会较大程度影响传输耗时,打包后再传往往更划算。

sz传输大文件中断,试试split切割

sz传超过1GB的文件很容易中途卡死,这时可以用split把大文件切成小块,逐个下载:

split -b 200m /var/log/nginx/access.log access_log_part_

在服务器上生成access_log_part_aa、access_log_part_ab等分片文件,分别下载后本地合并:

cat access_log_part_ > access.log

拷到本机后常见问题:权限、编码、时间同步

日志拷下来了,打不开或者打开乱码的情况也不少。

文件权限不对,本地打不开

服务器上的日志通常权限是root:root且600或640权限,拷贝到本机后归属变成了你的本机用户,一般没问题,但如果你用root身份拷到本机后,普通用户读取有时会遇到Permission denied,解决:

sudo chown 本机用户名:本机用户组 ~/logs/

中文乱码

服务器默认语言是en_US.UTF-8,本机Windows记事本打开常常乱码,解决方法是下载时顺手转换编码,或者用支持UTF-8的编辑器(VS Code、Notepad++)打开。

如果想在Linux本机直接转码:

iconv -f UTF-8 -t GBK access.log > access_gbk.log

日志时间跟本地对不上

服务器常用UTC时间,本机用北京时间(UTC+8),差8小时,查看日志时建议执行:

date

确认服务器时区,如果差8小时就在分析时脑子里加回去,或者直接在服务器上临时把TZ改成本地时区再分析,做日志分析的人通常默认时间差这个细节,排障定位时容易慌乱出错。

用定时任务替代手动拷贝

如果公司要求每天把日志归档一份到本地,手敲命令太容易忘,可以挂个crontab定时任务。

先写一个同步脚本/home/ops/sync_logs.sh:

#!/bin/bash
rsync -avzP --delete root@192.168.1.100:/var/log/nginx/ /home/ops/nginx_logs/ >> /var/log/sync_logs.log 2>&1

注意--delete参数含义是让本机目录跟服务器保持完全一致,服务器上删掉的日志本机也会删,如果只是想积累日志,不要加这个参数。

加执行权限:

chmod +x ~/sync_logs.sh

编辑crontab:

crontab -e

加入每天凌晨3点执行:

0 3    /home/ops/sync_logs.sh

断网或服务器只能出不能进的场景用Python临时起HTTP服务

还有一种偏门但好用的方案:服务器装了Python,用Python起一个HTTP服务,本机用wget或浏览器直接下载,这算是没有外网权限环境下sed、awk之外的另一个思路,适合应急。

在服务器日志目录里执行:

cd /var/log/nginx && python3 -m http.server 8888

本机浏览器打开http://服务器IP:8888,或者用wget拉取:

wget http://192.168.1.100:8888/access.log

注意:这个方案没有任何认证加密,内网敏感数据慎用,用完立刻Ctrl+C关掉。

日志文件超大时的传输策略

日志动辄几十GB时,先去服务器上分析,只把结果下载回来,比传输原始日志更现实,比如用grep先筛出某个时间段的报错:

grep "2026-03-11 14:" access.log > error_0311.log

把筛选结果压缩传输,延迟和带宽都能省一步,分析效率反而更高,实际排障中多数情况下先grep再传,比直接搬原始日志快得多。

回到核心建议

  • 日常单次拷日志:scp最简单,优先用
  • 日志量大或断网续传:rsync -avzP 是最稳的选择
  • 服务器不支持直连但终端能连:sz命令即可
  • 每周自动同步:crontab + rsync脚本

Q&A:linux服务器日志拷贝到本机常见疑问

scp拷贝日志时提示Permission denied怎么办?

先确认服务器端日志文件对当前登录用户有读权限,没有权限就切换到有权限的用户,或者用sudo执行scp:sudo scp root@服务器IP:/var/log/secure ~/logs/,另外检查服务器上目标目录权限问题则要区分清楚是源路径没权限还是本机目标路径没权限。

服务器日志用rsync同步到本机,删掉服务器上的源文件后本机的会不会丢?

不会,rsync默认只增量拷贝,不带--delete参数时不会主动删除本地已有文件,即使带了--delete,也只会在同步执行时删除本机有而服务器没有的多余文件,不影响本地已有文件的完整性,资料来源见rsync官方手册。

怎样确认拷贝过来的日志文件完整无损?

用md5sum在两边分别校验哈希值,服务器上执行md5sum access.log,拷贝完本机再执行md5sum access.log,两次输出的md5字符串一致即传输完好,rsync同步时也可以用-c参数强制校验文件校验和,适合对完整性要求较高的场景。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e5%a6%82%e4%bd%95%e5%b0%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%97%a5%e5%bf%97%e6%8b%b7%e8%b4%9d%e5%88%b0%e6%9c%ac%e6%9c%ba%ef%bc%8cscp%e5%91%bd%e4%bb%a4%e7%94%a8%e6%b3%95%ef%bc%9f/

赞 (0)
上一篇 2026年10月23日 13:54
下一篇 2026年10月23日 13:55

相关推荐

  • 服务器测试项目如何有效实施,有哪些注意事项

    挑选服务器测试项目不是堆料跑分,关键在还原真实业务场景,用最小代价暴露潜在瓶颈,服务器测试项目流程:需求决定深度最常犯的错误是一上来就跑工具,结果数据华丽却对生产毫无指导意义,严谨的服务器测试项目流程应该从业务指标入手,反向推导出每一层需要验证的技术点,从业务指标到技术指标拆解先明确业务侧能接受的底线:并发用户……

    2026年7月16日
    2300
  • AIoT怎么读?AIoT正确发音教学

    AIoT的正确读音为“AI-I-O-T”或连读为“埃奥特”,其核心在于准确拆解“AI”与“IoT”两个独立概念,并遵循英语缩略词的拼读规则,掌握准确的读音不仅是语言交流的基础,更是展现从业者专业素养的第一步,避免因发音错误导致的沟通障碍或专业形象受损, 核心拆解:AI与IoT的发音逻辑要掌握AIoT的读音,必须……

    2026年3月14日
    10900
  • 证书更新失败怎么解决?2026最新证书更新教程

    更新SSL证书的核心在于确保证书链完整、兼容最新浏览器协议,并优先选择支持自动化部署的DV或OV证书以平衡成本与安全,为什么2026年证书更新变得如此关键随着网络攻击手段的日益复杂,HTTPS已不再是“可选项”,而是互联网服务的“基础设施”,在2026年的今天,浏览器对安全标准的审查达到了前所未有的严格程度,如……

    程序编程 2026年5月27日
    4900
  • 云服务器FTP连接不上怎么设置,为什么总是连接失败?

    云服务器ftp连接不上,九成问题出在安全组规则、服务端口和被动模式三个环节,按顺序排查就能解决,这几项是云服务器和本地电脑最大的区别,也是新手最容易卡住的地方,下面直接从最常见的原因讲起,每一步都有对应操作,云服务器ftp连接不上时,先做这三项基础检查开始动防火墙和配置之前,先用本地电脑做几个快速验证,能省下大……

    2026年10月16日
    100
  • 彩虹六号怎么改成eas服务器?, 彩虹六号加速器节点推荐。

    想把彩虹六号的服务器改成eas(东亚服务器),最快的办法是在游戏内的匹配设置里直接切换,或者修改游戏配置文件中的DataCenterHint参数,两种方式都能在几分钟内完成,很多玩家在晚上开黑时发现延迟突然飙到上百毫秒,或者组队时队友来自天南海北,根源往往是服务器区域没选对,彩六的服务器系统是按区域代码分布的……

    2026年10月18日
    200
  • Excel漂亮图表怎么制作,有哪些技巧?

    Excel图表怎么做漂亮?掌握这三个核心原则制作Excel漂亮图表的核心在于合理选择图表类型、统一配色方案、精简图表元素,并利用原生功能做细节微调,而非简单套用默认样式,很多人在Excel里做图表,只是选中数据、插入图表、然后改个标题就完事,结果图表要么颜色杂乱,要么信息堆砌,看起来既不专业也不清晰,要做出漂亮……

    程序编程 2026年7月17日
    2300
  • LOL无法连接服务器失败怎么办,英雄联盟连接失败怎么解决?

    lol出现无法连接服务器失败,大概率不是你的显卡或CPU带不动,而是网络握手环节断了,按“先确认服务器状态,再清理本地DNS和防火墙,最后换网络或加速器”的顺序排查,多数情况十分钟内能恢复,你正选完英雄准备进加载界面,突然弹窗“无法连接服务器”,然后重连也失败,这种场景很常见,下面按从软到硬、从本地到外网的顺序……

    程序编程 2026年10月17日
    200
  • 广西网站空间怎么选?广西网站空间租用价格及推荐

    广西网站空间的核心优势在于低延迟、高稳定性及本地化运维响应,对于面向华南及东南亚市场的企业而言,选择本地机房托管是提升用户体验与SEO权重的最优解,在数字化浪潮席卷全球的今天,网站不仅是企业的线上名片,更是业务转化的核心阵地,对于身处广西的企业或希望深耕西南及东盟市场的创业者来说,服务器选址往往被忽视,却直接决……

    2026年5月28日
    4400
  • 固网hp1000u服务器怎么设置,如何操作?

    固网hp1000u服务器作为一款面向小型机房的入门级单路塔式设备,其“怎么弄”的核心答案就是三步走:拆机装硬件、用U盘做系统、进BIOS调阵列,跟着本文的操作路径走,从收到机器到跑起业务系统,大约半天时间就能完成,固网hp1000u服务器怎么弄?先把这机器的家底摸清楚固网hp1000u服务器在市面上通常以两种形……

    2026年10月18日
    200
  • 服务器git钩子怎么配置?服务器git钩子自动部署教程

    服务器Git钩子是自动化运维体系中最关键的“守门员”,其核心价值在于将代码质量管控、自动化部署流程与团队协作规范强制固化在代码提交的瞬间,通过在服务器端部署特定的钩子脚本,开发团队能够实现从代码推送到生产环境发布的全程无人值守,彻底杜绝人为操作失误导致的生产事故,这是实现DevOps自动化闭环不可或缺的核心环节……

    2026年4月7日
    7600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注