ssh 접근이 가능한 서버에서 여러대의 다른 서버의 특정위치 파일 읽어와서 diff 결과를 파일로 저장하는 예제.
#!/bin/bash
HOST1=(
"old-host-1"
"old-host-2"
"old-host-3"
... ...
)
HOST2=(
"new-host-1"
"new-host-2"
"new-host-3"
... ...
)
arr_len=${#HOST1[@]}
result_log="./diff.log"
for (( i=0; i<arr_len; i++ )); do
txt1=$(ssh USER@${HOST1[$i]} "cat /path/to/filename")
txt2=$(ssh USER@${HOST2[$i]} "cat /path/to/filename")
echo "Diff ${HOST1[$i]} : ${HOST2[$i]}" >> $result_log
diff <(echo "$txt1") <(echo "$txt2") >> $result_log
echo "----------------------------------------------" >> $result_log
done
'Linux' 카테고리의 다른 글
[Linux] curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol (0) | 2024.05.23 |
---|---|
[Linux] tuned 프로필 상속받아 원하는 값만 변경, 적용 (0) | 2024.03.19 |
[Linux] bash 스크립트를 이용해 다수 서버간 방화벽 개방 여부 확인 (0) | 2024.03.19 |
[Linux] 명령어 실행이나 백그라운드 데몬 등에서 Read-only file system 관련 메시지가 뜰 때 (0) | 2023.04.25 |
[Linux] logrotate 실제 동작하지 않고 어떻게 되는지 테스트만 해보기 (logrotate dryrun) (0) | 2023.02.15 |