2010-08-05 2 views
0

고객 로그를 분석 중이므로 어떤 배포판이 실행 중인지 알아야합니다. 나는 그들의 시스템에서 명령을 실행할 수 없다. 내가 갖고있는 것은 로그 뿐이다.리눅스 배포판을 결정하기 위해 os.version 값을 안정적으로 사용할 수 있습니까?

os.name 속성은 항상 Linux를 반환하지만 os.version은 커널 버전 인 것으로 나타납니다. 예를 들어, 2.6.9-42.0.3.ELsmp 또는 2.6.5-7.283-smp.

os.version의 마지막 문자를 배포판에 매핑 할 수있는 일부 Google이 나타난 후.

ELSMP 또는 EL로 끝나는 값은 Redhat에 매핑되고, 일반 smp는 SUSE에 매핑됩니다.

그게 사실인가요, 아니면 그냥 희망적으로 생각하고 있습니까?

+1

나는이 질문에 약간 당황 스럽다. 왜 이것을 알 필요가 있습니까? 왜 응용 프로그램에서 버전을 찾기 위해 외부 명령을 실행할 수 없습니까? 왜 고객에게 물어볼 수 없습니까? –

+0

좋은 질문입니다. disto를 결정하는 확실한 방법이없는 많은 기존 데이터가 있습니다. 예를 들어, SUSE에서 uname은 SUSE에 대한 명백한 참조를 포함하지 않으며 SMP 만 포함합니다. 어쩌면 다른 명령을 사용할 수는 있지만 외부 명령을 포크로 연결하여 다른 문제, 경로 지정 및 사용 권한을 유발할 수 있습니다. 일반적인 Java VM 프로퍼티에서 disto를 알아낼 수 있다면 문제는 훨씬 간단해질 것입니다. 건배. – KaizenSoze

답변

0

배포판 별 커널을 사용하는 한 사실입니다. 배포판 별 패치가 적용된 바닐라 커널입니다. 그러나 그들은 완전히 다른 커널이나 커스텀 커널을 사용할 수도 있습니다. 바닐라 커널을 사용할 수도 있습니다. 가상 머신이라면 어떻게 될지 잘 모르겠습니다. 이러한 커널은 -xen 또는 -openvz 또는 유사한 것으로 끝날 수 있습니다. 다른 배포판도 동일한 커널을 사용할 수 있으므로 다시 작성하기가 더 어려워집니다.

+0

예, 가상 조각은 골치 거리가 될 수 있지만 완전한 매핑이 필요하지는 않습니다. 특별한 경우에는 고객에게 직접 질문하고 설정 데이터베이스에 저장할 것입니다. – KaizenSoze

0

배포판 공급 업체가 자체 패치를 커널에 적용하는 경우 대개 버전 번호에 태그를 추가하여 커널의 사용자 정의 버전임을 나타냅니다. 리누스 (Linus)와 친구들이 작성한대로 스톡 커널을 사용하면 태그가없는 경우가 많습니다.

태그는 동일한 공급 업체의 배포판간에 다를 수 있으며 그렇지 않으면 호환 될 수 있습니다. 또는 다른 배포판에 대해 동일 할 수도 있습니다. Fedora 커널은 "EL"또는 "el"태그를 가지고 있지 않지만 CentOS 커널은 RHEL과 동일한 태그를 가지고 있습니다.) 또는 일부 배포판의 경우에는 전혀 없을 수도 있습니다.

0

주요 배포판에 대한 정보를 얻을 수 있습니다. 그러나 로그의 100 %를 추측 할 수는 없습니다.

참고 : 우분투의 경우 generic 또는 generic-pae을 검색하십시오. 데비안에는 -686-amd64을 제외한 특정 결말은 없지만 다른 많은 배포본의 경우가되어야합니다.

+0

현재 Redhat 및 SUSE 만 지원하지만 헤드 업에 감사드립니다. – KaizenSoze

관련 문제