我有一个文本文件,其中包含要添加到另一个存储在Linux服务器上的文件中的服务器名称。我需要使用什么命令才能将一个文本文件的内容添加到存储在linux中的另一个文件中。Linux中的文件仍应保留已存储在其中的任何信息。该文件与puppetautosign.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 servername-credential(get credential)-localfile“c:\ temp\host_list.txt”-remotepath“/home/puppetmaster”
调用sshcommand-index 0-command“cat host_list.txt>>autosign.conf”
这样我就可以把我的文件发送到服务器,然后把它附加到我想要的地方。新的问题是autosign.conf似乎是二进制的,我的文本文件是utf-16le。如何将文本文件更改为二进制文件,以便在追加时不会出现问题。
最佳答案
一个通常具有对linux服务器的sftp访问权限。
所以,使用任何支持文件追加的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/