sed & ssh ./hostsallow.sh: 行 11: sed -i /deployit$/a: そのファイルやディレクトリはありません。

sed & ssh ./hostsallow.sh: 行 11: sed -i /deployit$/a: そのファイルやディレクトリはありません。

ホストのリストにIPアドレスを追加しようとしています。

ホストから直接これを行うと機能します。

sed i- /apache$/a sshd: 192.168.2.2 : allow' /etc/hosts.allow

ただし、bashスクリプトを介してこれを行うと、log.txtファイルに次のように書き込まれます。

./hostsallow.sh: line 11: sed -i /apache$/a: No such file or directory

スクリプトは次のとおりです。

#!/bin/bash
set -x

for q in `cat itg4`
do

echo $q &>> log.txt


ssh $q -n 'sed -i '/apache$/a sshd: 192.168.2.2 : allow' /etc/hosts.allow' &>> log.txt
done

set -x は画面に以下を提供します。

Pseudo-terminal will not be allocated because stdin is not a terminal.

私を助けてくれますか?

ありがとう、

答え1

これが問題を解決しました

ssh $q "sed -i '/apache$/a sshd: 192.168.2.2 : allow' /etc/hosts.allow" &>> log.txt

関連情報