2017-11-01 8 views
1

Linuxサーバーに保存されている別のファイルに追加するサーバー名を含むテキストファイルがあります。 1つのテキストファイルの内容をLinuxに保存された別のファイルに追加するには、どのようなコマンドを使用する必要がありますか。 Linuxのファイルには、すでに格納されている情報は保持されます。このファイルはPuppet autosign.confに関連しています。以下のスクリプトは、私が必要とするサーバ名のリストを含むcsvファイルを読むために使用しているものです。スクリプトは本質的に、私がそれらをリストしたい方法でサーバー名だけを引っ張ります。私は今、Linuxのファイルに結果を追加するコマンドが必要です。PowerShellを使用してローカルマシンのテキストファイルの内容をコピーし、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' 

更新:

思って打ったし、私の問題を解決するために実行するために、これらのコマンドを思い付いたの下に提案を読んAtfer。

セットSCPFile -ComputerNameサーバー名-Credential -LocalFile "C:\一時\のhost_list.txt"( - 資格取得)-RemotePath "/ホーム/からくり士" 起動-SSHCommand -index 0 - コマンド「猫のhost_listをします。 txt >> autosign.conf "

これを行うことで、私のファイルをサーバーに送信して、それを必要な場所に追加することができました。新しい問題は、autosign.confはバイナリで、私のテキストファイルはutf-16leです。どのようにテキストファイルをバイナリに変更すれば、それが追加されても問題はないでしょう。

答えて

0

他の回答を読んだ後、私は考えて打たれたし、私の問題を解決するために実行するために、これらのコマンドを思い付きました。

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

これを行うことで、ファイルをサーバーに送信してから、必要な場所にファイルを追加することができました。

0

CSVの内容をbashのファイルに渡したい場合は、最初にファイルをLinuxマシンにコピーします(WinSCPコマンドラインツールが有効です)。th.enをbashで追加します使用:WindowsサーバはIISがインストールされている場合は

cat textile1 >> textfile2 

するとは、LinuxマシンからプライベートIPとカールで、それを利用できるようにすることができます:

curl http://192.168.120.10/textfile1 >> textfile2 

あなたはSMB共有のいずれかを介してファイルを利用できるようにすることができそれが適切な選択肢だったのですが、環境に依存しています。これは、次のようになります。

cat smb://server1/share1/textfile1 >> textfile2 
2

通常、LinuxサーバへのSFTPアクセスがあります。

したがって、ファイルの追加をサポートするSFTPクライアントを使用してください。

たとえば、WinSCP scriptingを使用すると、PowerShellスクリプトで次のコマンドを使用できます。

& winscp.com /log=log.log /command ` 
    "open sftp://username:[email protected] -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のの著者です)

+0

ファイルコピーがスケジュールされていれば、Linux側のcronが行追加を実行し、元のファイルを切り捨てることができると考えていました。しかし、それはちょっと面倒なことに終わるでしょう、これはより良い答えです:) – kayjay

関連する問題