- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在实现一个 PowerShell 脚本,以利用 WinSCP .NET 程序集访问一组 Linux 服务器,在每个服务器上执行 bash 脚本,并复制文件。我已经成功地为我的脚本实现了连接和复制功能(通过从每台机器上提取文件来验证),但是我无法正确执行 bash 脚本。
我调查了这两个 ExecuteCommand和 call命令,但对于我尝试过的所有变体,都会收到类似的错误消息。
错误:
WinSCP.SessionRemoteException: Connection has been unexpectedly closed. Server sent command exit status 255.
Error skipping startup message. Your shell is probably incompatible with the application (BASH is recommended).
有人可以解释为什么脚本可以正确连接和复制,但无法远程执行 bash 脚本吗?
Foreach ($asset in $idAssetArray)
{
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = $asset[1]
UserName = $credential.UserName
Password = $credential.GetNetworkCredential().Password
SshHostKeyFingerprint = $asset[2]
}
#
$HostDescription = $asset[0]
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Format timestamp
$stamp = $(Get-Date -f "MMddyyyy")
# Create timestamp directory if DNE
$newDirectory = $stamp
md -Force $newDirectory
# ATTEMPT SCRIPT EXECUTION HERE
# Execute CVA Collection Script on asset
#$runCommand = "./EncariCVA_RedHatLinux_CollectData.sh"
#$session.ExecuteCommand($runCommand)
#$session.call ../tmp/cva/EncariCVA_RedHatLinux_CollectData.sh
$session.ExecuteCommand("call ./EncariCVA_RedHatLinux_CollectData.sh")
# Download the file and throw on any error
$session.GetFiles(
($remotePath + $fileName),
($localPath + $stamp + "\" + $HostDescription + "." + $stamp + "." + $fileName)).Check()
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
}
exit 0
}
catch [Exception]
{
Write-Host ("Error: {0}" -f $_.Exception.Message)
exit 1
}
日志输出:
. 2016-08-09 11:43:24.885 --------------------------------------------------------------------------
. 2016-08-09 11:43:24.885 WinSCP Version 5.9 (Build 6786) (OS 6.1.7601 Service Pack 1 - Windows 7 Enterprise)
. 2016-08-09 11:43:24.885 Configuration: nul
. 2016-08-09 11:43:24.885 Log level: Normal
. 2016-08-09 11:43:24.885 Local account:
. 2016-08-09 11:43:24.885 Working directory: C:\Scripts\CVACollection
. 2016-08-09 11:43:24.885 Process ID: 7860
. 2016-08-09 11:43:24.885 Command-line: "" /xmllog="" /xmlgroups /nointeractiveinput /dotnet=590 /ini=nul /log="c:\Scripts\CVACollection\Log.txt" /console /consoleinstance=
. 2016-08-09 11:43:24.886 Time zone: Current: GMT-5, Standard: GMT-6 (Central Standard Time), DST: GMT-5 (Central Daylight Time), DST Start: 3/13/2016, DST End: 11/6/2016
. 2016-08-09 11:43:24.886 Login time: Tuesday, August 09, 2016 11:43:24 AM
. 2016-08-09 11:43:24.886 --------------------------------------------------------------------------
. 2016-08-09 11:43:24.886 Script: Retrospectively logging previous script records:
> 2016-08-09 11:43:24.886 Script: option batch on
< 2016-08-09 11:43:24.886 Script: batch on
< 2016-08-09 11:43:24.886 Script: reconnecttime 120
> 2016-08-09 11:43:24.886 Script: option confirm off
< 2016-08-09 11:43:24.886 Script: confirm off
> 2016-08-09 11:43:24.886 Script: option reconnecttime 120
< 2016-08-09 11:43:24.886 Script: reconnecttime 120
> 2016-08-09 11:43:24.886 Script: open sftp://X:***@ -hostkey="" -timeout=15
. 2016-08-09 11:43:24.886 --------------------------------------------------------------------------
. 2016-08-09 11:43:24.886 Session name: (Ad-Hoc site)
. 2016-08-09 11:43:24.886 Host name: (Port: 22)
. 2016-08-09 11:43:24.886 User name: X (Password: Yes, Key file: No)
. 2016-08-09 11:43:24.886 Tunnel: No
. 2016-08-09 11:43:24.886 Transfer Protocol: SFTP
. 2016-08-09 11:43:24.886 Ping type: Off, Ping interval: 30 sec; Timeout: 15 sec
. 2016-08-09 11:43:24.886 Disable Nagle: No
. 2016-08-09 11:43:24.886 Proxy: None
. 2016-08-09 11:43:24.886 Send buffer: 262144
. 2016-08-09 11:43:24.886 SSH protocol version: 2; Compression: No
. 2016-08-09 11:43:24.886 Bypass authentication: No
. 2016-08-09 11:43:24.886 Try agent: Yes; Agent forwarding: No; TIS/CryptoCard: No; KI: Yes; GSSAPI: No
. 2016-08-09 11:43:24.886 Ciphers: aes,chacha20,blowfish,3des,WARN,arcfour,des; Ssh2DES: No
. 2016-08-09 11:43:24.886 KEX: ecdh,dh-gex-sha1,dh-group14-sha1,rsa,WARN,dh-group1-sha1
. 2016-08-09 11:43:24.886 SSH Bugs: Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto
. 2016-08-09 11:43:24.886 Simple channel: Yes
. 2016-08-09 11:43:24.886 Return code variable: Autodetect; Lookup user groups: Auto
. 2016-08-09 11:43:24.886 Shell: default
. 2016-08-09 11:43:24.886 EOL: LF, UTF: Auto
. 2016-08-09 11:43:24.886 Clear aliases: Yes, Unset nat.vars: Yes, Resolve symlinks: Yes; Follow directory symlinks: No
. 2016-08-09 11:43:24.886 LS: ls -la, Ign LS warn: Yes, Scp1 Comp: No
. 2016-08-09 11:43:24.886 SFTP Bugs: Auto,Auto
. 2016-08-09 11:43:24.886 SFTP Server: default
. 2016-08-09 11:43:24.886 Local directory: default, Remote directory: home, Update: Yes, Cache: Yes
. 2016-08-09 11:43:24.886 Cache directory changes: Yes, Permanent: Yes
. 2016-08-09 11:43:24.886 Recycle bin: Delete to: No, Overwritten to: No, Bin path:
. 2016-08-09 11:43:24.886 DST mode: Unix
. 2016-08-09 11:43:24.886 --------------------------------------------------------------------------
. 2016-08-09 11:43:24.886 Looking up host "X" for SSH connection
. 2016-08-09 11:43:24.886 Connecting to X port 22
. 2016-08-09 11:43:24.924 We claim version: SSH-2.0-WinSCP_release_5.9
. 2016-08-09 11:43:24.944 Server version: SSH-2.0-OpenSSH_5.3
. 2016-08-09 11:43:24.944 We believe remote version has SSH-2 channel request bug
. 2016-08-09 11:43:24.944 Using SSH protocol version 2
. 2016-08-09 11:43:24.945 Have a known host key of type rsa2
. 2016-08-09 11:43:24.965 Doing Diffie-Hellman group exchange
. 2016-08-09 11:43:24.984 Doing Diffie-Hellman key exchange with hash SHA-256
. 2016-08-09 11:43:25.540 Server also has ssh-dss host key, but we don't know it
. 2016-08-09 11:43:25.540 Host key fingerprint is:
. 2016-08-09 11:43:25.540 ssh-rsa 2048 X
. 2016-08-09 11:43:25.540 Verifying host key rsa2 X
. 2016-08-09 11:43:25.541 Host key matches configured key
. 2016-08-09 11:43:25.542 Initialised AES-256 SDCTR client->server encryption
. 2016-08-09 11:43:25.542 Initialised HMAC-SHA-256 client->server MAC algorithm
. 2016-08-09 11:43:25.542 Initialised AES-256 SDCTR server->client encryption
. 2016-08-09 11:43:25.542 Initialised HMAC-SHA-256 server->client MAC algorithm
! 2016-08-09 11:43:25.616 Using username "X".
. 2016-08-09 11:43:25.635 Prompt (password, "SSH password", <no instructions>, "&Password: ")
. 2016-08-09 11:43:25.635 Using stored password.
. 2016-08-09 11:43:25.636 Sent password
. 2016-08-09 11:43:25.654 Access granted
. 2016-08-09 11:43:25.654 Opening session as main channel
. 2016-08-09 11:43:25.675 Opened main channel
. 2016-08-09 11:43:25.751 Started a shell/command
. 2016-08-09 11:43:25.752 --------------------------------------------------------------------------
. 2016-08-09 11:43:25.752 Using SFTP protocol.
. 2016-08-09 11:43:25.752 Doing startup conversation with host.
> 2016-08-09 11:43:25.752 Type: SSH_FXP_INIT, Size: 5, Number: -1
< 2016-08-09 11:43:25.772 Type: SSH_FXP_VERSION, Size: 95, Number: -1
. 2016-08-09 11:43:25.772 SFTP version 3 negotiated.
. 2016-08-09 11:43:25.772 Unknown server extension posix-rename@openssh.com="1"
. 2016-08-09 11:43:25.772 Supports statvfs@openssh.com extension version "2"
. 2016-08-09 11:43:25.772 Unknown server extension fstatvfs@openssh.com="2"
. 2016-08-09 11:43:25.772 We believe the server has signed timestamps bug
. 2016-08-09 11:43:25.772 We will use UTF-8 strings until server sends an invalid UTF-8 string as with SFTP version 3 and older UTF-8 strings are not mandatory
. 2016-08-09 11:43:25.772 Limiting packet size to OpenSSH sftp-server limit of 262148 bytes
. 2016-08-09 11:43:25.772 Getting current directory name.
. 2016-08-09 11:43:25.773 Getting real path for '.'
> 2016-08-09 11:43:25.773 Type: SSH_FXP_REALPATH, Size: 10, Number: 16
< 2016-08-09 11:43:25.792 Type: SSH_FXP_NAME, Size: 43, Number: 16
. 2016-08-09 11:43:25.792 Real path is '/home/X'
. 2016-08-09 11:43:25.792 Startup conversation with host finished.
< 2016-08-09 11:43:25.792 Script: Active session: [1] X@X
> 2016-08-09 11:43:26.465 Script: pwd
< 2016-08-09 11:43:26.465 Script: /home/X
> 2016-08-09 11:43:26.545 Script: call bash /tmp/cva/EncariCVA_RedHatLinux_CollectData.sh
< 2016-08-09 11:43:26.546 Script: Searching for host...
. 2016-08-09 11:43:26.547 [Shell] Looking up host "X" for SSH connection
. 2016-08-09 11:43:26.547 [Shell] Connecting to X port 22
. 2016-08-09 11:43:26.572 [Shell] We claim version: SSH-2.0-WinSCP_release_5.9
< 2016-08-09 11:43:26.573 Script: Connecting to host...
. 2016-08-09 11:43:26.595 [Shell] Server version: SSH-2.0-OpenSSH_5.3
. 2016-08-09 11:43:26.595 [Shell] We believe remote version has SSH-2 channel request bug
. 2016-08-09 11:43:26.595 [Shell] Using SSH protocol version 2
. 2016-08-09 11:43:26.595 [Shell] Have a known host key of type rsa2
. 2016-08-09 11:43:26.618 [Shell] Doing Diffie-Hellman group exchange
. 2016-08-09 11:43:26.637 [Shell] Doing Diffie-Hellman key exchange with hash SHA-256
. 2016-08-09 11:43:27.222 [Shell] Server also has ssh-dss host key, but we don't know it
. 2016-08-09 11:43:27.222 [Shell] Host key fingerprint is:
. 2016-08-09 11:43:27.222 [Shell] ssh-rsa 2048 X
. 2016-08-09 11:43:27.222 [Shell] Verifying host key rsa2 X with fingerprint ssh-rsa 2048 X
< 2016-08-09 11:43:27.222 Script: Authenticating...
. 2016-08-09 11:43:27.222 [Shell] Host key matches configured key
. 2016-08-09 11:43:27.222 [Shell] Initialised AES-256 SDCTR client->server encryption
. 2016-08-09 11:43:27.222 [Shell] Initialised HMAC-SHA-256 client->server MAC algorithm
. 2016-08-09 11:43:27.222 [Shell] Initialised AES-256 SDCTR server->client encryption
. 2016-08-09 11:43:27.223 [Shell] Initialised HMAC-SHA-256 server->client MAC algorithm
! 2016-08-09 11:43:27.317 [Shell] Using username "X".
< 2016-08-09 11:43:27.317 Script: Using username "X".
. 2016-08-09 11:43:27.345 [Shell] Prompt (password, "SSH password", <no instructions>, "&Password: ")
. 2016-08-09 11:43:27.346 [Shell] Using stored password.
< 2016-08-09 11:43:27.346 Script: Authenticating with pre-entered password.
. 2016-08-09 11:43:27.347 [Shell] Sent password
. 2016-08-09 11:43:27.366 [Shell] Access granted
. 2016-08-09 11:43:27.366 [Shell] Opening session as main channel
. 2016-08-09 11:43:27.388 [Shell] Opened main channel
. 2016-08-09 11:43:27.481 [Shell] Started a shell/command
< 2016-08-09 11:43:27.481 Script: Authenticated.
. 2016-08-09 11:43:27.481 [Shell] --------------------------------------------------------------------------
. 2016-08-09 11:43:27.481 [Shell] Using SCP protocol.
. 2016-08-09 11:43:27.481 [Shell] Doing startup conversation with host.
< 2016-08-09 11:43:27.481 Script: Starting the session...
. 2016-08-09 11:43:27.482 [Shell] Skipping host startup message (if any).
> 2016-08-09 11:43:27.482 [Shell] echo "WinSCP: this is end-of-file:0"
! 2016-08-09 11:43:27.661 [Shell] Can't call method "readline" on an undefined value at /usr/local/share/perl5/Term/Shell.pm line 107.
. 2016-08-09 11:43:27.664 [Shell] Server sent command exit status 255
. 2016-08-09 11:43:27.666 Closing connection.
. 2016-08-09 11:43:27.666 Sending special code: 12
. 2016-08-09 11:43:27.667 Sent EOF message
. 2016-08-09 11:43:27.667 [Shell] Disconnected: All channels closed
< 2016-08-09 11:43:27.669 Script: Connection has been unexpectedly closed. Server sent command exit status 255.
< 2016-08-09 11:43:27.669 Error skipping startup message. Your shell is probably incompatible with the application (BASH is recommended).
. 2016-08-09 11:43:27.670 Script: Failed
> 2016-08-09 11:43:28.213 Script: exit
. 2016-08-09 11:43:28.213 Script: Exit code: 1
. 2016-08-09 11:43:29.249 --------------------------------------------------------------------------
最佳答案
您应该使用 bash
调用脚本:
$session.ExecuteCommand("bash /path/to/EncariCVA_RedHatLinux_CollectData.sh")
这将授予:
bash
调用您的 bash 脚本(例如,如果缺少 shebang)。关于linux - 使用 PowerShell 脚本中的 WinSCP .NET 程序集在 Linux 服务器上运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38837872/
创建使用.NET框架的asp.net页面时,访问该页面的客户端是否需要在其计算机上安装.NET框架? IE。用户访问www.fakesite.com/default.aspx,如果他们没有安装框架,他
我阅读了很多不同的博客和 StackOverflow 问题,试图找到我的问题的答案,但最后我找不到任何东西,所以我想自己问这个问题。 我正在构建一个应用程序,其中有一个长时间运行的工作线程,它执行一些
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我一直想知道为什么微软为这样一个伟大的平台选择了一个如此奇怪的、对搜索引擎不友好的名称。他们就
.Net Framework .Net .NET Standard的区别 1、.NET Framework 在未来.NET Framework或许成为过去时,目前还是有很多地方在使用的。这一套
如果有选择的话,您会走哪条路? ASP.NET Webforms + ASP.NET AJAX 或 ASP.NET MVC + JavaScript Framework of your Choice
我有一个 Web 服务,它通过专用连接通过 https 使用第三方 Web 服务,我应用了 ServicePointManager.ServerCertificateValidationCallbac
为什么我应该选择ASP.NET Web Application (.NET Framework)而不是ASP.NET Core Web Application (.NET Framework)? 我在
我在网络上没有找到任何关于包含 .NET Standard、.NET Core 和 .NET Framework 项目的 .NET 解决方案的公认命名约定。 就我而言,我们在 .NET 框架项目中有以
.NET Compact 是 .NET 的完美子集吗? 假设我考虑了屏幕大小和其他限制并避免了 .NET Compact 不支持的类和方法,或者 .NET Compact 是一个不同且不兼容的 GUI
我已经阅读了所有我能找到的关于 connectionManagement 中的 maxconnection 设置的文章:即 http://support.microsoft.com/kb/821268
我现在正在使用asp.net mvc,想知道使用内置的Json或 Json.Net哪个是更好的选择,但我不确定一个人是否比另一个人有优势。 另外,如果我确实选择沿用Json.Net的路线,那么我应该选
在 Visual Studio 中,您至少可以创建三种不同类型的类库: 类库(.NET Framework) 类库(.NET 标准) 类库(.NET Core) 虽然第一个是我们多年来一直使用的,但我
.NET 和 ASP.NET 之间有什么区别?它们有什么关系? 最佳答案 ASP.Net 基于 .Net 框架构建,提供有关 Web 开发的附加功能。 你可以去看看wikipedia article
在安装更高版本(3.0)之前,我需要安装.net框架1.1和2.0吗?或者单独安装 3.0 框架就足够了,并为在早期框架版本上编写的软件提供支持?谢谢 ,丽然 最佳答案 不,您不必安装以前的框架。 我
我正在开发一个项目,人们可以“更新”类别,例如更改类别的名称。我收到以下消息 This is called after clicking update 按钮 with the SQL statemen
.NET 类 System.Net.CookieContainer 线程安全吗? --更新:交 key 答复-- 是否有任何方法可以确保异步请求期间修改的变量(即 HttpWebRequest.Coo
我正在使用 JScript.NET 在我编写的 C# WinForms 应用程序中编写脚本。它工作得很好,但我只是尝试在脚本中放置一些异常处理,但我无法弄清楚如何判断我的 C# 代码抛出了哪种类型的异
我需要你的帮助, 比如我有一个小数类型的变量,我想这样取整。 例如 3.0 = 3 3.1 = 4 3.2 = 4 3.3 = 4 3.4 = 4 3.5 = 4 3.6 = 4 3.7 = 4 3.
我使用过这样的代码:http://msdn.microsoft.com/en-us/library/dw70f090.aspx在 ASP.NET 中工作之前访问数据库(2-3 年前)。我没有意识到我正
自 ConfigurationManager .NET Standard 中不存在,检索正在执行的程序集的应用程序设置的最佳方法是什么,无论是 web.config或 appSettings.{env
我是一名优秀的程序员,十分优秀!