linux - 尝试使用 PowerShell 从我的本地计算机复制文本文件内容并将其添加到 Linux 服务器中的另一个文件

标签 linux powershell

我有一个包含服务器名称的文本文件,我想将该文件添加到存储在 Linux 服务器上的另一个文件中。我需要使用什么命令才能将一个文本文件的内容添加到存储在 Linux 中的另一个文件中。 Linux 中的文件仍应保留已存储在其中的所有信息。该文件与 Puppet autosign.conf 相关。下面的脚本是我用来读取我拥有的包含我需要的服务器名称列表的 csv 文件的脚本。该脚本基本上以我希望列出的方式仅提取服务器名称。我现在需要命令将我的结果附加到 Linux 中的文件中。

$data =
    Get-Content "C:\dev\Scripts\Admin Scripts\Environment Deployment\vms2deploy.csv" |
    Select-Object -skip 1 |
    ConvertFrom-Csv -header name 
$myhosts = foreach ($item in $data) { Write-Output $item.name } 
$myhosts >> 'c:\temp\host_list.txt'

更新:

在阅读下面的建议后,我产生了一个想法,并想出了这些命令来运行以解决我的问题。

Set-SCPFile -ComputerName 服务器名 -Credential (Get-Credential) -LocalFile "c:\temp\host_list.txt"-RemotePath "/home/puppetmaster" Invoke-SSHCommand -Index 0 -Command "cat host_list.txt >> autosign.conf"

这样我就可以将我的文件发送到服务器,然后将其附加到我想要的位置。新问题是 autosign.conf 似乎是二进制文件,而我的文本文件是 utf-16le。我如何将文本文件更改为二进制文件,以便在附加时不会出现问题。

最佳答案

通常可以通过 SFTP 访问 Linux 服务器。

因此,请使用任何支持文件附加的 SFTP 客户端。

例如 WinSCP scripting ,您可以在 PowerShell 脚本中使用以下命令。

& winscp.com /log=log.log /command `
    "open sftp://username:password@example.com -hostkey=""...""" `
    "put -append c:\temp\host_list.txt /remote/path/list.txt" `
    "exit"

你可以拥有WinSCP GUI generate a command-line template for the SFTP upload给你。

(我是 WinSCP 的作者)

关于linux - 尝试使用 PowerShell 从我的本地计算机复制文本文件内容并将其添加到 Linux 服务器中的另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47046422/

相关文章:

c# - debian 上的单声道 : Could not find file "/srv/www/proj/bin\roslyn\csc.exe"

linux - 汇总测量某些文件类型的磁盘空间

c - 在 C 中有效地编辑文件中的单个值

linux - udev中键盘的 `KEY`属性解读

PowerShell 脚本加载程序集

Powershell - 将多个参数传递给 Invoke-Command

.net - 使用Powershell发布云服务-保留IP问题

windows - 如何将带点的批处理参数传递到 powershell 脚本中?

web-services - 使用PowerShell代码访问_vti_bin/lists.asmx

MySQL "Error Code: 1118. Row size too large (> 8126)"