>

서버 재부팅 전후에 다른 많은 기본 서비스들과 파일 시스템을 비교하여 불일치가 있는지 확인하려고합니다.

현재 데이터를 파일로 저장하고 있으며diff명령

서버가 많기 때문에 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 출력에서 ​​처음에는 검사를 제거합니다.

Filesystem                                      Size  Used Avail Use% Mounted on
/dev/mapper/vg00-lvroot                          20G   16G  4.5G  78% /

도전을 해결하도록 도와주세요. 감사합니다.!

EDIT1 : df --output=source,fstype,target  내 첫 번째 선택이지만 다른 서버에서 할 수 없습니다     df : 인식 할 수없는 옵션 '--output = source, fstype, target'     자세한 내용은`df --help '를 시도하십시오. 다른 해결 방법이 있습니까 ??

  • 답변 # 1

    와이즈 비즈

    와이즈 비즈  명령 출력 필드는

    Is there a way to ignore the tabs - Size; Used; Avail; Use%;

    를 통해 조정 가능  옵션 :

    df
    
    

    위는파일 시스템이름 목록 만 출력합니다

    --output
    
    
    <시간> 와이즈 비즈 <시간>

    일부 옵션이 지원되지 않으면 df -h --output='source' 를 사용하여 다음 해결 방법을 시도하십시오. :

    Filesystem
    /dev/mapper/vg00-lvroot
    
    

  • 답변 # 2

    --output[=FIELD_LIST]
    use the output format defined by FIELD_LIST, or print all fields if FIELD_LIST is omitted.

    의 출력을 비교할 수 있습니다   awk 보다는 명령  마운트 지점 만 비교하려면 명령을 입력하십시오.

    이것은 마운트 옵션과 파일 시스템 유형을 비교할 수도 있습니다.

    df -h | awk '{print $1}'
    
    

  • 답변 # 3

    GNU diff는 두 가지 방법으로 변경 사항을 무시합니다. 공백이나 대소 문자와 같은 특정 종류의 차이점을 무시하는 옵션이 있지만 몇 가지 사전 설정으로 제한됩니다. 또한 특정 패턴과 일치하는 선을 무시하는 옵션이 있지만 선 내의 특정 변경 사항을 무시하지 않고 선만 무시할 수 있습니다. 공백 변경 무시 ( 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) 와 열거 순서의 차이 때문에 이미 수행하지 않는 한 파일을 정렬 할 수도 있습니다.  중요하지 않습니다. 프로세스 대체가있는 쉘 (ksh, bash, zsh) :

    diff -w
    
    

    awk '{print $1, $2, $6}' 를 사용하는 대신 많은 파일에 대해이 작업을 수행 한 경우 , 파일에 대해 개별적으로 diff를 호출하는 자신 만의 루프를 만듭니다.

  • 답변 # 4

    df 의 출력을 고려할 수도 있습니다  명령. 이 유틸리티는 Linux 전용 유틸리티이지만 마운트되지 않은 경우에도 모든 블록 장치를 나열합니다. diff <(<./prechecks/file awk '{print $1, $2, $6}' | sort) \ <(<./postchecks/file awk '{print $1, $2, $6}' | sort) 매뉴얼 페이지를 참조하십시오  옵션, 헤더를 비활성화하고 diff -rs  옵션을 사용하면 원하는 열을 지정할 수 있습니다.

    lsblk

관련 자료

  • 이전 shell script - 내장 읽기 이해
  • 다음 linux - 유닉스에서 스왑 메모리를 만드는 방법에 대한 정보가 필요합니다