불일치가 있는지 확인하기 위해 서버를 다시 시작하기 전후에 다른 여러 기본 서비스의 파일 시스템을 비교하려고 합니다.
현재 데이터를 파일에 저장하고 다음을 사용하여 비교하고 있습니다.차이점주문하다
많은 서버에서 이는 아래에서 볼 수 있듯이 FS 크기 차이도 확인하므로 효율적이지 않습니다.
diff -rs ./prechecks/file ./postchecks/file
10c10
< udev 7.8G 164K 7.8G 1% /dev
---
> udev 7.8G 156K 7.8G 1% /dev
13c13
< /dev/mapper/vg01-lvopt_IBM 9.9G 8.2G 1.2G 88% /opt/IBM
---
> /dev/mapper/vg01-lvopt_IBM 9.9G 8.3G 1.2G 88% /opt/IBM
18,19c18,19
무시 옵션을 사용할 수 있는지 시도했지만 논리를 이해할 수 없습니다.
우리가 이 문제를 극복할 수 있는지 확인하고 싶습니다. 한 번에 수백 대의 서버를 처리해야 하기 때문에 비용이 많이 듭니다.
그렇지 않으면 아래와 같이 df -h 출력에서 tab-size;used;useful;using %; 를 무시하는 방법이 있습니까? 그러면 처음부터 검사가 제거됩니다.
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-lvroot 20G 16G 4.5G 78% /
내 문제를 해결하도록 도와주세요. 감사해요. !
편집 1:
df --output=source,fstype,target
첫 번째 선택이었지만 다른 서버에서는 이를 수행할 수 없습니다. df: unrecognized option '--output=source,fstype,target' 자세한 내용을 보려면 "df --help"를 시도하십시오. 다른 해결책이 있나요?
답변1
마운트 지점만 비교하려면 mount
명령 자체보다는 명령의 출력을 비교해야 할 수도 있습니다.df
또한 마운트 옵션과 파일 시스템 유형을 비교하는 것도 좋을 수 있습니다.
$ mount
server:/export/client/root on / type nfs (v3, udp, timeo=100, retrans=101)
server:/export/shared/usr on /usr type nfs (nodev, wxallowed, v3, tcp, soft, intr, timeo=100)
amd:20004 on /home type nfs (v2, udp, intr, timeo=100, retrans=101)
server:/export/shared/home on /tmp_mnt/server/export/shared/home type nfs (nodev, nosuid, v2, udp, soft, intr, timeo=100)
답변2
tab-size;used;useful;using %;를 무시하는 방법이 있습니까?
명령 df
출력 필드는 --output
옵션을 통해 조정할 수 있습니다.
df -h --output='source'
위의 내용은 출력됩니다.파일 시스템목록
Filesystem
/dev/mapper/vg00-lvroot
- 출력[=FIELD_목록]
FIELD_LIST에 의해 정의된 출력 형식을 사용하거나, FIELD_LIST가 생략된 경우 모든 필드를 인쇄합니다.
일부 옵션이 지원되지 않는 경우 다음 해결 방법을 시도해 보십시오 awk
.
df -h | awk '{print $1}'
답변3
GNU diff에는 변경 사항을 무시하는 두 가지 방법이 있습니다. 공백이나 대소문자 등 특정 유형의 차이점을 무시하는 옵션이 있지만 이는 몇 가지 사전 설정으로 제한됩니다. 특정 패턴과 일치하는 줄을 무시하는 옵션도 있지만 이 옵션을 사용하면 줄 내의 특정 변경 사항이 아닌 줄만 무시할 수 있습니다. 공백 변경 무시( diff -w
)는 열의 형식이 다른 너비로 지정된 경우에 도움이 될 수 있지만 특정 숫자를 무시하려면 다른 것이 필요합니다.
일부 차이점을 무시하는 일반적인 방법은 두 파일을 전처리하여 무시하려는 부분을 제거하거나 정규화하는 것입니다. 예를 들어 볼륨 이름과 마운트 지점에 공백이 없다고 가정하고 사용됨/여유/백분율 열을 무시하려면 다음을 사용할 수 있습니다.
awk '{print $1, $2, $6}'
전처리기로. 열거 순서의 차이는 df
중요하지 않으므로 이미 정렬하지 않은 경우 파일을 정렬할 수도 있습니다 . 프로세스 대체(ksh, bash, zsh)가 있는 쉘에서:
diff <(<./prechecks/file awk '{print $1, $2, $6}' | sort) \
<(<./postchecks/file awk '{print $1, $2, $6}' | sort)
많은 파일에 대해 이 작업을 수행하는 경우 diff -rs
.
답변4
이 명령의 출력을 고려할 수도 있습니다 lsblk
. 이는 Linux 전용 유틸리티이지만 아직 마운트되지 않은 경우에도 모든 블록 장치를 나열합니다. -n
헤더를 비활성화하는 이 옵션과 -o
필수 열을 지정할 수 있는 옵션에 대해서는 매뉴얼 페이지를 참조하십시오 .