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

관련 정보