问题标签 [psftp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 传输完成后 PSFTP 重命名文件
我正在使用批处理文件通过 PSFTP 将文件传输到 3rd 方服务器。在传输文件时,由于缓冲问题,文件被破坏/未完全传输。
作为补救措施,第 3 方要求我们在开始文件传输之前用“.new”命名每个文件,并在文件完全/成功传输后删除“.new”。
请让我知道上面实现的批处理脚本命令。如果您需要更多信息,请告诉我。
c# - PSFTP 如何使用 RegExp 从 Dir 命令获取文件名
我正在尝试使用正则表达式来解析dir
从 PSFTP 的命令生成的日志文件。
示例目录示例 1
示例目录示例 2
因此,根据我在网上找到的信息,如果文件超过 6 个月或将来,则会显示年份而不是一天中的时间。
例如 1,我使用正则表达式:/d/d/s .*.*.*
后跟子字符串函数来检索文件名。
但我不知道如何处理第二个例子。我希望也许dir
命令有一个参数来包含时间戳,这样我就可以使用相同的正则表达式。或者也许有另一个正则表达式可以处理这两个例子。
非常感谢!
batch-file - 批处理作业在 Control-M 中继续运行,即使任务已完成
嗨,我在 Windows Server 中创建了一个批处理作业。批处理作业的任务是使用 PSFTP 对文件进行 ftp。当我直接运行 .bat 文件时,它在脚本运行后工作正常,窗口关闭。但是当我通过我们的 CTRL-M 运行时,即使我通过 psftp 接收文件,它也会保持运行状态。不知道该怎么做。下面是脚本文件。非常感谢您的帮助。
tar - 我可以在服务器上看到文件但是我不能在上面使用“get”命令(putty/psftp)
我是使用这些 sftp 程序从服务器获取文件的新手,所以请理解我可能对很多事情非常无知。话虽如此:
我正在使用 Windows 命令行运行 psftp.exe,如下所示:
psftp.exe hostname@server -i "myprivatekey.ppk"
提示成功将我带到服务器。从这里我导航到我想要的目录。我使用“ls”命令查看目录下的所有文件。我看到我的文件是一些格式为“somestuff.DSD.tar.somenumber”的 tar 文件,我键入:
get somestuff.DSD.tar.somenumber
然后提示告诉我:
/somedirectory/somestuff.DSD.tar.somenumber:open for read: no such file or directory
这里有什么问题?为什么它看不到文件?它是 .tar 文件,扩展名为 tar 之后的某个数字吗?我不确定 tar 文件是什么我相信一些存储多个文件的压缩文件夹。
感谢您抽出宝贵时间调查此问题!
file-upload - 使用 PSFTP.exe 将文件上传到 sftp 服务器时执行进程任务出错
我在 SSIS 中创建了一个执行进程任务,以将文件上传到 sftp 服务器。我拥有对服务器文件夹的完全访问权限,并且能够使用 filezilla 拖放文件。我正在使用 putty sftp 客户端 psftp.exe 进行上传。现在,当我将 psftp.exe 与用户、传递和批处理参数一起使用时,它在 windows cmd 中运行良好。但是当我在 SSIS 中执行相同的操作时,我收到以下错误:
我的 windows cmd 参数是:
然后它要求输入密码,输入密码后,文件上传成功。但我无法通过 SSIS 执行相同的操作。下面是 SSIS 进程任务参数截图:
我在网上搜索并在这里找到了一些类似的问题,但没有特定于 psftp。在 stackoverflow 上也发现了同样的问题,但提到的解决方案是权限,我已经检查过了。
任何帮助,将不胜感激。
file - 忽略错误代码 2 PSFTP
我们有一个桌面应用程序,它动态生成命令文件以提取名称中包含当前日期的特定文件。所以最后我们有一个如下所示的命令文件:
其中 0111 是 MMDD。命令文件是通过桌面应用程序执行的 .bat 文件创建的。然后应用程序通过 PSFTP.exe 连接到远程服务器并运行该命令文件以提取文件。我们遇到的问题是由于发生了一个单独的问题,我们将 PSFTP.exe 更新到了较新的版本。现在,如果远程服务器上的文件不可用,它会返回错误代码 2,从而停止检索其余文件。因此,如果列表中的第一个文件不存在,则它会失败并且不会下载其余文件。
有没有办法忽略错误代码 2 以便检索其余文件?起初我想通过批处理文件运行 PSFTP.exe 和它的命令,但这没有用。
有任何想法吗?
powershell - psftp 说“服务器的主机密钥没有缓存在注册表中”
尝试使用 PowerShell 从 PowerShell 连接到 SFTP 服务器时收到以下消息psftp
:
错误:
psftp.exe :服务器的主机密钥未缓存在注册表中。您无法保证服务器就是您认为的计算机。
服务器的 rsa2 密钥指纹为:ssh-rsa 2048 41289438190410491
连接被放弃。
PowerShell 脚本:
(psftp.exe存放在c:\windows\system32)
我之前通过 PuTTY 和 WinSCP 从该服务器 SSH 到该服务器,没有问题。但是,它在通过 PowerShell 运行时不会连接。
batch-file - 当通过 ControlM 运行脚本时,Putty 不会缓存访问服务器的密钥
问题:每当通过 Control-M(以 LocalServiceAccount 启动的服务)触发 Windows 批处理文件(包含要执行的命令PSFTP
)时,密钥都不会被缓存,并且每次都会提示存储密钥。
说明:我们正在使用psftp.exe
(Putty) 执行文件传输。当我使用我的帐户执行批处理文件时,我能够指纹并看到在注册表中更新的密钥(在 下HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
)
努力 #1:在 TaskScheduler 中创建了一个任务,以与用户作为 LocalServiceAccount 运行相同的命令(通过批处理文件),并通过ECHO "Y" |
在 psftp 命令之前添加来执行指纹识别,这样它就不会提示确认。它有效,但仅适用于测试目的,因为我认为当我们转向生产时这不是一个好习惯。
努力#2:删除所有键并在注册表中手动添加键。它仍然不适用于 LocalServiceAccount,它只适用于我的帐户。LocalServiceAccount 没有进行指纹识别。
PsfTP 命令:
(添加 whoami 只是为了确认用户是否正确。)
不管批处理文件是通过 Control-M 服务(作为 LocalServiceAccount 运行)触发还是我们通过任务计划程序运行它都没有关系。在这两种情况下,密钥都没有被缓存。
类似的问题:感谢这篇文章,我得到了临时解决方案来添加 echo "Y"
:Putty won't cache the keys to access a server when run script in hudson
LocalServiceAccount 是服务器上管理员组的一部分,所以我不确定是否有导致问题的帐户的任何权限。
任何关于我应该寻找什么的建议表示赞赏。