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

 

 

 

 

Posted by bloodguy
,