回答:
「cat」コマンドを使用して、リモートファイルを作成できます。
echo 'Some Text' | ssh user@remotehost -T "cat > /remotefile.txt"
-T
無効は割り当て端末を擬似し、メッセージを得ることからあなたを停止し、
stdinは端末ではないため、疑似端末は割り当てられません。
他の答えよりも少し短い:
ssh user@remotehost "echo Some Text > /remotefile.txt"
echo
ローカルではなく、任意のコマンド(または一連のコマンド)をローカルで実行したい場合、答えは役に立たず、受け入れられた答えがそれを行う方法です。
ssh localhost "echo 'hi'; echo 'hello'; echo 'well, hello there!'
ssh localhost
ですか?それは水を濁らせているだけであり、水を透明にするものではありません。(2)変更した例にリダイレクトを表示しないことにより、コマンドをグループ化し、すべての出力を1つのファイルに送信する方法を知っているかどうかという疑問が生じます。…(続き)
command (localhost)
>
file (remotehost)
ddを使用してファイルに追加することもできます。少しわかりにくいかもしれませんが、リモートホストでの出力のリダイレクトが不可能な場合に便利です。
cat ~/.ssh/id_rsa.pub | ssh user@remote.host 'dd of=.ssh/authorized_keys oflag=append conv=notrunc'
この例では、公開キーをリモートホスト上のauthorized_keysファイルに追加します。
複数回使用する必要がある場合は、このコードを使用する方が簡単かもしれません。「sshpass」ツールを使用すると、sshはスクリプトの呼び出しごとにパスワードの入力を求めません。(あなたがそれを秘密にしておく必要がある場合を除いて、それを使用しない方が良い)
sshpassの詳細:https ://stackoverflow.com/questions/12202587/automatically-enter-ssh-password-with-script
#!/bin/bash
SCRIPT="echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
if [ "$#" -ne 1 ]; then
echo "Wrong number of arguments. usage: prog dest_machine"
else
sshpass -p "root" ssh -o StrictHostKeyChecking=no root@"$1" "${SCRIPT}"
fi
以下のようにスクリプトを作成します。
# !/bin/bash
read -p "Enter target server IP : " server
echo "Enter root password for $server : " ; read -s password
yum install sshpass -y
sshpass -p "$password" ssh -o strictHostKeyChecking=no root@$server echo "your text goes here" >> /remotefile.txt
yum
、非常に正当な理由がない限り、新しいコマンドを使用しない人からです。この答えは、方法ではなく、理由を示しています。(とりあえずdownvoteをキャンセルします-これを編集して、より多くのコンテキストを提供してください)