Debian에 설치된 Linux 커널 버전을 확인하는 방법은 무엇입니까?

Debian에 설치된 Linux 커널 버전을 확인하는 방법은 무엇입니까?

DevOPS 스크립트의 경우 Debian 시스템을 업그레이드한 후 Debian에 설치된 최신 Linux 커널 버전을 확인하고 실행 중인 버전( uname -r)과 비교해야 합니다.

이 문제를 해결하는 가장 쉬운 방법은 무엇입니까?

필요한 경우 시스템을 자동으로 다시 시작하려면 어떻게 해야 합니까?

답변1

질문에서 지적했듯이 현재 실행 중인 커널은 다음을 사용하여 얻을 수 있습니다.

uname -r

출력은 다음과 같습니다.

4.19.0-8-amd64

대신 패키지 관리자에서 최신 커널 패키지 버전을 얻어야 합니다. amd64아키텍처와 표준 설치를 가정하면 linux-image-amd64항상 최신 커널 패키지를 가리키는 메타패키지 종속성을 확인할 수 있습니다.

dpkg-query -f '${Package}: ${Depends}\n' -W linux-image-amd64

출력은 다음과 같습니다.

linux-image-amd64: linux-image-4.19.0-8-amd64

이를 쉘 스크립트에 넣으려면 두 가지 추가 단계가 필요합니다. 먼저 다음을 통해 아키텍처를 자동으로 결정해야 합니다.

dpkg --print-architecture

출력은 다음과 같습니다.

amd64

linux-image-둘째, 커널 패키지 이름에서 접두사를 제거 해야 합니다 .

echo linux-image-4.19.0-8-amd64 | sed s/^linux-image-//

출력은 다음과 같습니다.

4.19.0-8-amd64

이 모든 것을 종합하고 올바른 쉘 스크립트 참조를 추가하면 다음과 같은 결과를 얻을 수 있습니다.

if [ "$(uname -r)" != "$(dpkg-query -f '${Depends}' -W "linux-image-$(dpkg --print-architecture)" | sed s/^linux-image-//)" ]; then
  reboot
fi

답변2

일반적인 방법으로 이 작업을 수행하는 가장 좋은 방법은 다음과 같습니다.이 댓글에 설명되어 있음.

이 스크립트를 복사하여 붙여넣고 실행 가능하게 만든 다음 실행하면 예상한 결과를 얻을 수 있습니다.

관련 정보