호스트 목록에 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