You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Expect脚本结合Crontab从Linux服务器SSH传输文件至Windows机器不稳定的问题排查求助

通过Expect脚本结合Crontab从Linux服务器SSH传输文件至Windows机器不稳定的问题排查求助

大家好,我最近碰到一个特别棘手的自动化文件传输问题,想请各位前辈帮忙分析下:

背景情况

我们有一台Linux服务器,会针对不同元素生成PDF和DOCX两种格式的报告文件。为了自动把这些文件同步到本地Windows工作站,我在Windows机器上安装了SSH服务器,并且写了一个Expect脚本(因为Windows用户需要密码验证,直接用SCP命令无法自动完成),再通过Crontab定时执行这个脚本。

遇到的问题

这套方案偶尔能正常工作,但稳定性极差:

  • 有时候只同步了PDF文件,DOCX文件完全没传过去
  • 有时候只同步了DOCX文件,PDF文件缺失
  • 甚至部分元素对应的两种文件都没同步完整

但非常奇怪的是,如果我手动在终端里执行脚本里的SCP命令,所有文件都能完整复制,没有任何缺失。

当前配置信息

  1. 脚本位置与权限:
[root@kns-db ~]# ll
-rwxr-xr-x  1 root root   196 Jan 13  2023 kopiranje_batt.exp
  1. Expect脚本内容:
#!/usr/bin/kopiranje_batt

spawn scp -r -p /home/kns_ftp/MPS_report/ mnadmin@xxx.xxx.xxx.xxx:C:/Users/mnadmin/desktop/

set pass "xxx"

expect {
password: {send "$pass\r"; exp_continue}
}

注:这里注意到脚本的shebang行写的是#!/usr/bin/kopiranje_batt,看起来大概率是笔误,正常应该指向系统的expect解释器路径,比如#!/usr/bin/expect,这个错误可能会导致脚本执行异常?

  1. Crontab定时任务配置:
[root@kns-db ~]# crontab -l
0 05,09,10,18,20,22 * * * expect /root/kopiranje_batt.exp

补充:从Windows端WINSCP的截图可以看到,确实存在部分元素仅同步单一格式文件的情况(比如有的只有DOCX,有的只有PDF)

我的疑问

现在我完全摸不着头绪,不知道该从哪个方向开始排查这个问题?有没有大佬能给点排查思路或者可能的原因分析?

备注:内容来源于stack exchange,提问作者anej zafred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:29:36