我有一个包含服务器名称的文本文件,我想将该文件添加到存储在 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/