본문 바로가기

IT/linux72

시스템 로그(syslog) 종류, 비활성화 방법과 예제 시스템 로그(syslog) 종류, 비활성화 방법과 예제 임베디드 시스템에서 개발 및 운영을 하다 보면 맞닥뜨리는 문제 중 하나인 디스크 용량 관리에 대한 이야기다. 본인도 그렇고 다른 개발자도 마찬가지겠지만 로그 관리를 위해서 circular queue 형태의 로그 파일을 생성한다던가(e.g. 하나의 프로그램 당 10mb 용량의 순환 바이너리 로그를 사용함) 디버그 메시지를 화면에 현시하는 정도로 쓸 것이다. 하지만 시스템 애플리케이션은 어떨까. 시스템, 로그인, 웹서버 데이터 베이스 등등 /var/log 에 acceess/fail/auth 관련 로그를 마구 찍어내다 보면 디스크 용량이 얼마 되지도 않는 임베디드 시스템 환경에선 그런 로그들이 금세 쌓여 치명적인 문제로 다가온다. 그러한 문제를 시스템 로.. 2021. 12. 29.
포트 보안을 위한 서비스 중지 목록 및 방법 포트 보안을 위한 서비스 중지 목록 및 방법 포트 보안을 위한 서비스 제어의 목적은 외부로 노출된 포트와 잘 알려진 포트들의 서비스를 중지 또는 포트의 변경을 목적으로 한다. 아래의 몇 가지 검사/정지 패턴을 상황에 맞게 사용하면 된다. 1. rpcbind, 서비스 중지 * 상태 확인, 1인 경우 활성 및 동작 중 - systemctl status rpcbind | grep Active | grep running | wc -l * 중지 및 비활성화 - systemctl stop rpcbind - systemctl disable rpcbind * 활성 및 시작 - systemctl enable rpcbind - systemctl start rpcbind 2. mosquitto, 서비스 중지 * 상태 확인,.. 2021. 12. 28.
vimrc 공유 / linux vi, vim vimrc 공유 본인이 오랫동안 사용하고 있는 vimrc 파일을 공유한다. 뭐 특별한 게 있는 건 아니고 vim을 처음 사용하면 너무 메모장 같은 화면에 당황하시는 분들이 있어서 이런 패턴으로 사용한다라고 알려주고 싶었다. 우선 vim 은 linux의 편집기이다. 텍스트 외에 코드, 바이너리까지 모두 편집할 수 있는 강력한 도구이다. vimrc 파일은 사용자 계정의 home 디렉터리에 위치하고 숨김 파일로. vimrc로 작성한다. (e.g. /home/muabow/.vimrc) vi와 vim은 다르니 vim 이 없다면 apt 등을 통해 설치해야 한다. vimrc의 구성은 다음과 같다. set noshowcmd set showmode set wrap set laststatus=2 set autoindent.. 2021. 12. 28.
sshpass 를 이용한 ssh 접속 방법 설명 sshpass 를 이용한 ssh 접속 방법 sshpass는 비대화형으로 ssh 비밀번호를 입력해주는 명령어이다. 우선 sshpass 가 설치되었는지 확인한다. dpkg -l | grep sshpass iisshpass1.05-1amd64Non-interactivessh 설치가 안되어있다면 apt-get 을 이용하여 설치하자. sudo apt-get install sshpass [sudo] password for muabow: 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 sshpass is already the newest version (1.05-1). 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: libexpat1:i386.. 2021. 12. 28.
linux wget 을 사용한 간단한 web server alive check 예제와 공유 wget 을 사용한 간단한 web server alive check 이번 wget 을 사용한 alive check 의 대상으로 google.com 을 써본다. wget --timeout=1 --tries=1 --spider http://google.com 2>&1 | grep -c '200 OK' wget 옵션을 살펴보자. --timeout=1 타임아웃을 지정한다. 응답까지 1초만 대기한다. --tries=1 시도횟수를 지정한다. 1회만 시도한다. --spider http://google.com 대상을 다운로드하지 않고 체크만 한다. 대상 URL 의 상태를 체크한다. | grep 을 제외한 명령문의 결과부터 확인하자. wget --timeout=1 --tries=1 --spider http://googl.. 2021. 12. 22.
POST 시 수신 측에서 데이터 짤려서 받을 때 POST 시 수신 측에서 데이터 짤려서 받을 때 웹 페이지에서 새로운 윈도 팝업을 띄우면서 post를 하는 간단한 동작을 만들었다. 현재 프로토 타입이라 json 데이터는 약 8만 바이트를 약간 넘는 작은 사이즈임에도 불구하고 데이터 일부가 유실되는 상황이 발생하였다. 처음에는 보내는 쪽을 console.log 및 F12 개발도구에서 request / response 데이터를 살펴보았지만 request 데이터는 정상적으로 송신하였고 response는 받은 만큼만 처리해서 응답하는 것을 확인하였다. 그래서 다른 해결 방법을 찾으려 linux 내에서 apache2 error 로그를 확인하다보니 재미있는 문장을 발견하였다. tail -f /var/log/apache2/error.log [Tue Dec 21 0.. 2021. 12. 21.
리눅스 부팅 시 date 가 맞지 않을 때 해결 방법 리눅스 부팅 시 date 가 맞지 않을 때 임베디드 리눅스 장치에서 sntp를 사용하지 않고 date 및 hwclock을 사용하여 시간을 설정하였으나 물리 리셋(전원을 내렸다 올림)을 하면 2000년 1월 1일 xx시 xx분 xx초로 변경이 되는 상황이 발생하였다. 하지만 소프트웨어 리셋(reboot)을 통하여 재부팅을 하면 유지가 되었다. 원인을 찾기 위해 자사 템플릿 내부에서 시간을 제어하는 모듈을 모두 비활성하였고 dmesg 명령을 실행하여 time, date, rtc 같이 시간과 관련 있는 항목을 찾다 보니 아래 화면 같은 rtc 같은 현상을 발견하였다. 그럼 rtc 드라이버의 문제인가? 라고 생각했지만 동일한 빌드 환경과 펌웨어를 사용하는 다른 장치에서는 똑같이 "setting system cl.. 2021. 12. 20.
grep / linux, 사용법, 설명, 옵션, 정규표현식, 예제 grep(그렙, g/re/p) - 텍스트 검색 기능을 가진 명령어 1. 사용법 grep [ -E | -F ] [ -i ] [ -h ] [ -H ] [ -L ] [ -r | -R ] [ -s ][ -u ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l | -q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } File ... ] 2. 설명 grep(Globally find Regular-Expression and Print) 은 입력 파일을 줄단위로 읽으면서 PATTERN과 일치하는 문자열이 있는지 확인해서 출력한다. 3. 옵션 -.. 2020. 3. 30.