AIX 및 Solaris에서 커널의 마지막 업데이트 날짜를 알고 싶습니다.
Linux의 경우 명령은 다음과 같습니다.
rpm -qa --last | grep kernel-`uname -r` | sed 's/^k.*\s\s//'
이 명령에 대해 다음과 같은 결과를 얻었습니다.
Wed 29 Nov 2017 03:26:48 PM EST
AIX와 Solaris에도 동일한 대체 제품이 필요합니다.
AIX에 대해 이 명령을 실행하려고 하는데 필요한 컴플렉스에 대한 올바른 출력이 아닙니다.
lslpp -ha bos.adt.base | grep COMPLETE | sed 's/^k.*\s\s//'
Return Code: 0, 6.1.1.0 COMMIT COMPLETE 09/16/14 13:49:31
6.1.1.0 APPLY COMPLETE 09/16/14 13:49:31
6.1.8.16 COMMIT COMPLETE 09/16/14 13:59:18
6.1.8.16 APPLY COMPLETE 09/16/14 13:55:32
6.1.9.30 COMMIT COMPLETE 07/02/15 16:36:49
6.1.9.30 APPLY COMPLETE 07/02/15 16:33:22
6.1.9.45 COMMIT COMPLETE 09/04/15 15:45:19
6.1.9.45 APPLY COMPLETE 09/04/15 15:45:09
6.1.9.101 APPLY COMPLETE 09/14/17 16:44:44
6.1.1.0 COMMIT COMPLETE 09/16/14 13:49:36
6.1.1.0 APPLY COMPLETE 09/16/14 13:49:36
6.1.8.16 COMMIT COMPLETE 09/16/14 13:59:18
6.1.8.16 APPLY COMPLETE 09/16/14 13:55:32
6.1.9.30 COMMIT COMPLETE 07/02/15 16:36:49
6.1.9.30 APPLY COMPLETE 07/02/15 16:33:23
6.1.9.45 COMMIT COMPLETE 09/04/15 15:45:19
6.1.9.45 APPLY COMPLETE 09/04/15 15:45:10
6.1.9.101 APPLY COMPLETE 09/14/17 16:44:45
그렇지 않으면 위 출력의 마지막 줄만 원합니다.
답변1
AIX 부분의 경우 bos.adt.base
파일 세트는 하드코딩되지 않으며 요구 사항도 아닙니다.모두업데이트 수 - 적용 및 커밋 - 커밋뿐만 아니라 /unix 심볼릭 링크(커널을 가리키는)가 있는 파일 세트의 기록을 요청합니다.
lslpp -q -c -h -Or $(lslpp -q -c -w /unix | cut -d: -f2) | tail -1 | cut -d: -f7-8
여러 부분으로 나누어 보면 다음과 같습니다.
- -q -- 열 헤더를 인쇄하지 않습니다.
- -c -- 출력을 콜론으로 구분하여 인쇄합니다(분석하기 더 쉬움).
- -h -- 파일 세트 기록
- -w -- 주어진 파일을 소유하는 파일 세트
r
-또는-여기서 oot 또는u
sr 작업이 하나만 필요합니다.
내부에서부터 작업하여 파일 세트 이름을 얻은 lslpp ... -w
다음 해당 파일 세트의 기록을 요청한 다음 파이프를 통해 tail
마지막 행(최신 행으로 가정)을 가져온 다음 파이프를 통해 cut
날짜 및 시간 필드를 가져옵니다. .
Solaris 부분의 경우 최근에 적용된 커널 패치로 충분할까요?
nawk -F: '/^PATCH_INFO/ { sub(" From", ""); print $2":"$3":"$4; }' \
/var/sadm/pkg/SUNWckr/pkginfo |
sort -k6n | tail -1
답변2
Solaris에서는 다음 명령을 실행하여 설치된 커널 패치를 볼 수 있습니다.
uname -v | awk -F_ '{print $2}'
그런 다음 다음을 실행하면:
ls -lat /var/sadm/patch |grep <patch>
설치된 타임스탬프가 표시됩니다. 추가 정보가 필요한 경우 이 디렉터리에 로그도 있습니다.
답변3
출력의 마지막 줄을 다음과 같이 파이프할 수 있습니다 tail -1
.
lslpp -ha bos.adt.base | sed -n '/COMPLETE/ s/^k.*\s\s//p' | tail -1
또한 grep
명령을 명령으로 축소했습니다 . 자체적으로 수행할 수 없는 작업 sed
은 수행하지 않았습니다 .sed
참고: 저는 AIX 명령에 익숙하지 않기 lslpp
때문에 그것이 작업에 적합한 도구이고 가장 적절한 옵션을 사용했다고 가정합니다. 원하는 것을 얻기 위해 매뉴얼 페이지를 사용하는 더 좋은 방법이 있는지 알아보려면 매뉴얼 페이지를 읽어보는 것이 좋습니다.