텍스트로만 이루어진 단일 로그 파일이 수십, 수백 GB 단위로 생성되기도 합니다. 이런 로그 파일은 메모장으로 열 수도 없을뿐더러, 운이 안 좋으면 과부하로 시스템이 뻗어버릴 수도 있습니다. 용량이 커서 서버 밖으로 꺼내서 분석을 하기도 쉽지 않습니다. 이런 경우 윈도우 운영체제에서 대응 가능한 방법에 대해 알아보겠습니다. 첫 번째는 파일의 내용을 일부씩 확인하는 방법이고, 두 번째는 텍스트 파일을 여러 개의 파일로 나누어 저장하고 반출하는 방법입니다. 대용량 로그 파일 확인 방법 예시를 위해 log1, log2, log3, … log10000까지 이어지는 1만줄짜리 Large_logs.txt를 생성했습니다. 1. CMD more로 내용 확인 more 명령어를 이용하면 텍스트의 일부씩만 로드하며 내용을 ..
윈도우에서 실행하는 프로그램에 문제가 있을 때 실시간으로 디버깅 메시지를 확인할 수 있는 방법이 있습니다. 마이크로소프트에서 제공하는 DebugView 툴을 사용하는 것입니다. DebugView를 사용하는 방법을 간단한 디버그 출력 예시와 함께 알아보겠습니다. DebugView란? 디버그뷰(DebugView)는 Windows 응용 프로그램과 시스템을 디버깅하는 툴입니다. 디버그뷰를 실행하면 실시간으로 발생하는 이벤트에 대한 디버그를 출력하고 캡처하고 저장할 수 있습니다. 애플리케이션 디버깅 : 애플리케이션 행이 발생하거나, 충돌하거나, 정상적으로 동작하지 않는 이유 등을 확인할 수 있습니다. 드라이버 디버깅 : 장치 드라이버 디버그를 출력할 수 있습니다. 장치가 올바르게 작동하지 않는 이유를 찾는데 도움..
윈도우에서 정상적으로 서비스를 종료하는 방법은 서비스 앱에서 중지를 클릭하는 것입니다. 그러나 어떤 이유로든 프로세스가 종료되지 않거나 서비스를 중지하는 중이라는 상태가 너무 길게 이어지는 등 문제가 발생할 수 있습니다. 이런 경우에 서비스를 강제종료하기 위해 taskkill 명령어를 사용할 수 있습니다. taskkill 명령어 사용 방법과 일반적인 종료와 taskkill 강제종료의 차이를 알아보겠습니다. taskkill taskkill을 통한 프로세스 종료는 프로세스 이름이나 PID를 기준으로 합니다. PID를 이용하는 게 더 좋습니다. taskkill /IM 프로세스명 taskkill /PID PID /IM : 종료할 프로세스의 이름을 지정합니다. /PID : 종료할 프로세스의 프로세스 ID를 지정합..
리눅스에서 시스템 시간을 확인하려면 date 명령어를 사용합니다. 이를 통해 출력된 결과를 타임스탬프라고 부릅니다. 타임스탬프는 애플리케이션 운영 관점에서 중요합니다. date 명령어의 몇 가지 옵션과 시스템 시간과 애플리케이션의 로그 시간에 차이가 생기는 이유에 대해 알아보겠습니다. date 명령어 date의 기본적인 활용법은 옵션 없이 date을 입력해서 타임스탬프를 출력하는 것입니다. [root@localhost ~]# date Thu Feb 2 07:05:48 PST 2023 위 출력에 대한 의미는 다음과 같습니다. Thu : 목요일 Feb : 2월 2 : 날짜(일) 07:05:48 : 7시 5분 48초 PST : 시간대 (Pacific Standard Time) 타임스탬프를 다른 형식으로 표시 ..
ISMS 인증심사를 준비하다 보면 서버에 불필요한 계정 제거에 대한 항목이 있습니다. CentOS 배포판을 쓰는 경우 lp, uucp, nuucp 등의 계정이 그 예시로 나타납니다. 이런 계정은 사용되는 경우가 거의 없어서 대부분 삭제해도 무방합니다. 그래도 주의는 해야겠죠. 삭제 조치 전 체크해야 하는 사항에 대해서도 알아보겠습니다. lp, uucp, nuucp 계정이란? 일반적으로 OS 설치 시 기본 생성되는 계정들입니다. 과거에는 사용되기도 했지만 최근에는 거의 쓸 일이 없습니다. lp : 인쇄 서비스에 사용되는 계정입니다. uucp : Unix to Unix Copy의 약자로 서로 다른 Unix 시스템 간에 파일을 전송하는데 사용됩니다. nuucp : uucp 프로토콜을 사용해 파일을 전송하기 위..
리눅스는 여러 사용자에게 사용되곤 합니다. 각 사용자 별로 자신 계정의 디렉토리 이외에는 접근을 제한받는 방식으로 사용됩니다. 그래서 리눅스는 파일 및 디렉토리에 대한 소유자, 소유그룹, 대상에 대한 권한이 중요하게 여겨집니다. 이런 연장선에서 자주 마주칠 수 있는 에러가 바로 permisson denied입니다. 권한이 없으니 요청한 작업을 수행할 수 없다는 의미입니다. SFTP permisson denied 파일질라 등의 sftp로 원하는 경로에 파일을 업로드하려는데 open for write: permission denied 에러가 발생할 수 있습니다. 이는 쓰기 권한이 없기 때문에 파일을 업로드할 수 없다는 의미입니다. 예를 들어, test라는 사용자로 로그인한 상태에서 test2 경로에 파일을 ..
운영체제에서 경로는 파일 시스템에서 파일이 존재하는 고유한 위치를 나타냅니다. 모든 리눅스의 최상위 경로는 root 디렉토리(/)입니다. 절대경로 절대경로는 / 디렉토리부터 시작되는 경로를 의미합니다. pwd 명령어를 입력하면 출력하는 전체 경로라고 말할 수 있습니다. 예를 들어 /home/test와 같은 경로입니다. [test@localhost ~]$ pwd /home/test test 디렉토리에 있는 testFile의 절대 경로의 경우 파일명까지 포함한 /home/test/testFile가 절대경로입니다. [test@localhost ~]$ ls testFile [test@localhost ~]$ pwd /home/test 상대경로 상대경로는 사용자가 있는 위치를 기준으로 표현되는 경로입니다. 예를 ..
yum은 기본적으로 인터넷과 연결된 저장소(repository)를 바라보고 작업을 수행합니다. 저장소에 업로드되어 있는 패키지들을 인터넷을 통해 접근하고, 찾아서 내 리눅스에 받아오는 식입니다. 그 말은 인터넷에 연결할 수 없는 내부망 서버에선 사용이 불가하다는 의미입니다. 현업에선 보안상의 이유로 내부망에 서버를 구축하는 경우가 많습니다. 이처럼 인터넷이 없는 환경에서도 로컬에 repository를 만들어주면 yum을 이용할 수 있습니다. 이를 흔히 "로컬에 레포를 잡는다"고 말합니다. 로컬에 yum repository 만드는 방법 이 글은 CentOS 7을 기준으로 방법을 설명드립니다. 그러나 다른 배포판도 원리는 비슷하기 때문에 읽어보시면 패키지 관리 도구의 작동 방식을 이해하시는데 도움이 되실거에..
우분투나 데비안 배포판은 패키지 관리 툴로 apt를 사용합니다. apt로 패키지를 설치, 삭제, 패치하고 서버를 최신 상태로 유지할 수 있습니다. 참고로 CentOS, RHEL 등 레드햇 계열은 apt가 아닌 yum, dnf를 사용합니다. APT APT는 Advanced Package Tool의 약자로 패키지를 관리하는 툴이라는 의미를 담고 있습니다. 시스템에 패키지를 설치, 삭제, 업데이트 하는 명령어다보니 sudo 권한이 필요한 명령이 많습니다. apt [options] command apt [options] command 패키지명 apt [options] command 패키지명1 패키지명2 새 패키지 설치 sudo apt install 패키지명 [예시] nginx를 설치 sudo apt instal..
OCX는 윈도우에서 사용하는 응용 프로그램에 기능을 추가할 수 있게 만듭니다. 혹시 아래 한글 문서를 인터넷 브라우저 화면이나 설치형 편집기 프로그램에서 컨트롤하는 걸 본 적이 있으신가요? 이는 OCX가 있기에 구현이 가능한 것입니다. OCX란? OCX는 OLE custom control의 약자입니다. OLE는 객체 연결 삽입(Object Linking and Embedding)이라는 의미로 윈도우의 각종 응용 프로그램 간 서로 데이터를 공유할 수 있도록 연결하는 규약입니다. 마이크로소프트가 개발했습니다. 정리하면 OCX는 윈도우에서 사용되는 특정 응용 프로그램의 객체를 다른 응용 프로그램에서 호출할 수 있도록 해주는 기술로 이해할 수 있습니다. OCX를 통해 메서드를 호출하고 인터페이스를 구현합니다. ..