홈 › 리눅스 명령어 › 06 / 10

네트워크 명령 (ip·ss·ping·scp)

섹션 7진행 0 / 10

4. 응용 변형 예제

4.1 여러 서버 한 번에 점검

bash
for h in app1 app2 app3; do
  echo "== $h"; ssh -o ConnectTimeout=3 "$h" 'uptime; df -h / | tail -n 1'
done

ConnectTimeout 이 없으면 죽은 서버에서 오래 멈춥니다. ~/.ssh/config 별칭과 키 접속이 돼 있어야 비밀번호 입력 없이 돕니다.

4.2 로그 내려받기

bash
ssh app1 'tar czf - /var/log/myapp/app.log' > app1-log.tgz
rsync -avz app1:/var/log/myapp/ ./logs-app1/

첫 줄은 서버에서 묶어 표준 출력으로 보내고 로컬 파일로 받습니다. 둘째 줄은 폴더째 동기화라 반복 실행하면 새 것만 옵니다.

4.3 포트 터널로 관리 화면 보기

bash
ssh -L 9090:localhost:9090 app1
# 내 PC 브라우저에서 http://localhost:9090

서버의 9090 이 방화벽으로 막혀 있어도 ssh 22 번만 열려 있으면 됩니다. 세션을 끊으면 터널도 닫힙니다.

4.4 DNS 없이 이름 쓰기

bash
echo '10.20.0.5 db-prod' | sudo tee -a /etc/hosts
getent hosts db-prod

폐쇄망에서 DNS 가 없을 때 /etc/hosts 에 적습니다. 자바 앱의 JDBC URL 에 이름을 쓸 수 있게 됩니다.

4.5 두 서버 사이 방화벽 시험

bash
# 서버 B 에서
nc -l 9000
# 서버 A 에서
nc -zv server-b 9000

앱을 띄우기 전에 포트가 통하는지 봅니다. Connected 면 방화벽이 열린 것이고 아니면 신청 대상입니다.