운영체제에는 가상메모리라는 개념이 존재하고, 물리메모리가 부족하면 디스크에 저장을 해서 부족한 메모리를 커버한다. 그래도 부족하면 os 에서는 일부 프로세스를 강제로 kill 하는 상황이 발생되며, 의도치 않게 데몬이 죽는 케이스가 존재한다. 메모리 부족해서 프로세스가 kill 되었는지 확인하는 방법은 dmseg 커맨드를 쳐서 확인해보면, killed process 라는 정보를 확인할 수 있다. 그런데 모니터링 도구를 이용해 보면 서버에는 메모리 여유가 존재하는데 프로세스가 죽는 경우가 생길때가 있는데 이때는 swap 사용을 확인해보자. $ dmseg -H ... [ +0.000002] [19271] 500 19271 740064 16066 182 0 0 java [ +0.000001] [19438] 5..
커버로스 인증을 하려면 kinit 명령을 사용할 수 있어야 한다. 만약, 설치되어있지 않다면 아래와 같이 명령어를 찾을수 없다는 메시지가 출력될것이다. 이때는 kerberos 관련 모듈을 설치해야한다. $ kinit bash: kinit: command not found 설치방법 kinit 명령어가 없다면 centos 에서는 아래와 같은 명령어로 설치하면 된다. sudo yum install krb5-workstation krb5-libs krb5-auth-dialog -y 추가내용 kinit 실행파일이 생겼더라도, 인증서버 관련 정보가 정의된 /etc/krb5.conf 설정도 되어있어야 하는데, 별도의 경로에 존재하는 krb5.conf 를 사용하려면 환경변수를 지정하여 인증하는것도 가능하다. 보통 암호..
보통은 데이터를 pull 해오는 케이스가 많은데, 어짜다보니 데이터를 각 서버로 push 해줘야하는 상황이 생겼다. 쉽게 생각해서 1개의 서버에서 다른 서버에 데이터를 쏴주는 상황을 생각하면 된다. 인터넷에 보면 Xinetd 패키지가 필요하다고 설명되어있는데 내가 테스트해본 결과 이 패키지는 필요없었고, rsyncd 데몬만 서비스로 띄우면 잘 동작했다. 내가 이게 필요했던 이유는, airflow 의 DAG 를 여러 서버에 동기화 해주는 과정이 필요했기 때문이다. 설정방법 모든 서버에 /etc/rsyncd.conf 설정파일과 rsyncd 데몬이 떠있는지 체크해야한다. rsync 를 통해 업로드를 하는것이므로, read only 는 no 가 되어야한다. 그리고 업로드할 경로를 path 에 지정하고, hos..
주키퍼의 znode 를 웹에서 볼 수 있도록 지원하는 zoonavigator 라는 오픈소스가 존재한다. 도커를 이용하는 방식과 snap 을 이용해 설치하는 방식이 있는데, 이상하게 특정서버에서 설치가 안되는 현상이 발생되었다. 에러메시지는 다음과 같다. 신기한건 여러대의 서버에 설치를 시도할때, 일부 서버에서만 이런 현상이 발생되었다는점이다. $ sudo yum -y install epel-release $ sudo yum -y install snapd $ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap $ sudo snap install zoonavigator error: system does not full..
로그파일이나 임시파일들이 계속 쌓일때 생성일기준으로 과거 데이터를 지우고 싶을때 가 종종있다. 이럴때 유용한게 ls 에서 날짜 포맷팅 하고 awk 에서 필터링후 xargs 로 삭제 명령의 인자로 보내는 형태로 처리한다. 예시 나 같은 경우는 1달전 로그를 지워야 하는 패턴을 많이 쓰게 되는데... 예를 들어 2021년 1월 이전데이터를 다 삭제 하고 싶다면 아래와 같이 명령어를 날리면 된다. # 2021년 1월 이전 데이터 제거 ls -l --time-style="+%Y%m" | awk '{if ($6< 202101 ) {print $7}}' | xargs rm -rf 당연한 소리지만, 삭제할 파일이 모인 폴더로 이동하고 날리면 된다. 1달이 아니라 일단위까지 필요하다면 time-style 은 +%Y%m..
개요 가끔 개발서버에서 설정파일이나 오류메시지 로그를 복사해오고 싶은 경우가 있다. 그럴때 가장 손쉽게 사용할 수 있는건, python의 SimpleHTTPServer 를 쓰면 정말 쉽게 복사 해올수 있다. 이게 의외로 유용한게 linux 서버에 python 이 왠만하면 기본 설치 되어있다보니 리눅스 서버의 파일을 급하게 복사해올 때 매우 유용하다. (심지어 포트도 지정가능하고) python -m SimpleHTTPServer [port] 보통 장애났을때 관련된 전체 로그를 메일로 전달해주거나, 딴 서버에 동일하게 세팅해야해서 설정파일을 복사하거나 할 때 의외로 유용하게 사용했다. (윈도우도 python이 설치되면 사용가능하다) 사용방법 예시 사용법은 아주 쉽다. 복사할 파일이 있는 폴더로 이동하고, "..