최근에 홈 디렉터리에 코어 덤프가 생성되어 파일 시스템의 공간이 부족해지는 경험을 했습니다.
AIX에게 다른 곳에 코어 덤프를 생성하도록 어떻게 지시합니까?
답변1
IBM의 이 페이지에는 AIX의 코어 덤프 파일에 대해 알아야 할 모든 내용이 포함되어 있는 것 같습니다.
찾고 있는 명령은 다음과 같습니다 chcore
. 해당 페이지에서 발췌한 내용은 다음과 같습니다.
시스템의 모든 계정에 대해 중앙 코어 파일 저장소를 설정할 수 있지만 각 계정은 기본값을 재정의하고 사용자 정의 저장소를 설치할 수 있습니다. 이 저장소에 충분한 여유 공간이 있는 파일 시스템을 선택하십시오. 모든 계정에는 이 디렉터리에 대한 읽기 및 쓰기 권한이 필요합니다. 다른 사용자가 만든 핵심 파일을 사용자가 삭제하는 것을 방지하려면 고정 비트를 활성화해야 합니다. 디렉토리의 권한은 일반적으로 1777과 동일해야 합니다
/tmp
.고유한 코어 파일 이름 지정을 사용하여 시스템 전체 코어 파일 저장소를 설정하려면 루트로 다음 명령을 실행하십시오.
$ cd /path/to/filesystem $ mkdir corefiles $ chmod 1777 $ ./corefiles $ chcore -p on -n on -l ./corefiles
참고: 코어 파일 압축을 켜려면 -c on 옵션을 추가하세요. 이러한 설정은 새로 로그인한 계정에만 적용되며 재부팅 후에도 계속 적용됩니다.
시스템 전체 기본 저장소를 재정의하고 특정 사용자에 대한 저장소를 설정하려면 해당 사용자로 다음 명령을 실행합니다.
$ mkdir ~/corefiles $ chcore -p on -n on -l ~/corefiles
답변2
기본적으로 코어 덤프는 core_pattern에 의해 설정된 상대 경로에만 위치합니다(일반적으로 이는 코어 프로세스의 현재 작업 디렉터리를 의미합니다). core_pattern 앞에 절대 경로를 추가하면 거기에 덤프가 저장됩니다.
sysctl을 사용하거나 값을 /proc에 직접 덤프하여 이를 수행할 수 있습니다.
예를 들어:
$ echo "/tmp/cores/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern
이제 코어 덤프는 /tmp/cores/에 위치합니다.
편집: 죄송합니다. AIX용이라는 것을 놓쳤습니다. 이렇게 하려면 chcore 유틸리티를 사용할 수 있습니다. 즉,chcore -p on -l /tmp/cores/
-d
이 플래그를 추가하여 시스템 기본값으로 설정할 수도 있습니다 .