Linux 159

[grep] 검색 시 특정 디렉터리 제외

개요 2021.07.17 - grep - 디렉터리에서 키워드를 포함한 파일 찾기 2022.03.03 - [grep] 대소문자 구분 없이 문자열 찾기 2022.03.04 - [grep] 특정 문자열 제외 위 글에 이어서 grep 사용 예시를 하나 더 적어둔다. grep -r 옵션을 이용해 하위 디렉터리를 대상으로 검색을 수행할 때 특정 디렉터리는 검색에서 제외하고 싶다. 방법을 적어둔다. grep --exclude-dir grep 명령은 패턴과 일치하는 디렉터리를 제외하고 검색할 수 있도록 --exclude-dir 옵션을 제공한다. 단, -r 옵션과 함께 사용해야 한다. grep # -r, --recursive like --directories=recurse # -R, --dereference-recurs..

Linux 2023.07.20

[Linux] htop - Filter 기능

개요 htop으로 모니터링을 할 때 특정 문자열을 포함하는 프로세스 정보만 보고 싶을 때는 Filter 기능을 사용할 수 있다. 이 글에서는 htop으로 특정 문자열을 포함하지 않는 프로세스 정보를 확인하는 방법을 적어둔다. 추가로 Filter 기능 사용 방법도 적어둔다. Filter htop에서 필터링 기능은 아래와 같이 사용할 수 있다. 1. htop 실행 2. F4 입력하여 Filter 모드 진입 3. 검색 문자열 입력 후 엔터 ssm이라는 문자열을 포함하는 프로세스만 출력되는 모습을 확인할 수 있다. 만약 필터링 조건을 초기화하고 싶다면 다시 필터 모드를 활성화한 뒤 Esc를 입력하면 된다. htop 부정 필터 유감스럽게도 htop 공식적으로는 positive 필터 기능만 지원하고 있는 것 같다...

Linux 2023.07.06

[Linux] pgrep - 프로세스 id 찾기

pgrep 정규식 패턴으로 프로세스의 이름을 검색하여 일치한 프로세스의 ID를 반환하는 도구이다. pidof, ps 등과 비슷한 역할을 한다. 기본 용법 pgrep [OPTIONS] 기본적으로 옵션 없이 사용하면 패턴에 일치한 프로세스의 ID를 확인할 수 있다. 사용 예시 1. PID를 공백으로 구분하여 출력 pgrep -d' ' # -d : --delimiter. 출력에서 process id의 구분자를 지정한 문자열로 사용. 기본값은 개행문자. 2. 프로세스 이름과 함께 출력 pgrep -l # -l : --list-name. 프로세스 이름과 프로세스 ID 출력 3. 명령어와 함께 출력 pgrep -a # -a : --list-full. 프로세스 명령어와 프로세스 ID 출력 4. 패턴과 일치하지 않는 ..

Linux 2023.07.05

[Linux] 명령어 실행 결과를 다른 명령 인자로 전달하기

개요 예로 들어 AWS 계정 내 모든 S3 버킷에 대한 버전 관리 기능 활성화 여부를 확인하고 싶다. 계정 내 S3 버킷 목록은 list-buckets 명령어로 확인할 수 있고, aws s3api list-buckets 버킷의 버전 관리 기능 활성화 여부는 get-bucket-versioning 명령어에 확인할 버킷을 지정하여 확인할 수 있다. aws s3api get-bucket-versioning --bucket BUCKET_NAME 이 두 개 명령을 묶어서 하나의 명령어로 처리하고 싶다. 방법을 적어둔다. xargs 빈칸이나 새 줄로 구분된 표준 입력을 읽어 명령어의 인자(argument)로 전달할 수 있는 명령어다. 앞 명령어의 출력을 다음 명령어의 입력으로 전달하는 PIPE(|)와 같이 사용한다..

Linux 2023.05.31

[Linux] history - 명령어 이력 확인

history history 명령은 실행한 명령어 이력을 확인할 수 있는 명령어다. 이 글에서는 history 명령어 동작 방식과 history에서 명령어를 검색하는 방법을 정리한다. 사용 방법 기본적으로 history 명령어를 이용해 실행한 명령어 이력을 확인한다. n번째 명령을 실행시키고 싶다면 !n으로 실행한다. history # -c : RAM에 저장된 history 목록 삭제 # -d offset : offset 위치에 있는 history 명령어 삭제 # -a : history list를 HISTFILE에 추가 # -n : HISTFILE에서 읽어들여지지 않은 행을 읽고 history 목록에 추가 # -r : HISTFILE을 읽고 history 목록에 추가 # -w : 형재 history를 지..

Linux 2023.05.13

[Linux] stat - 파일/디렉터리 상태 확인

stat 파일이나 디렉터리의 상태 정보를 확인할 수 있는 명령어다. 디렉터리 내 파일에 대한 요약 정보를 위주로 출력하는 ls 명령어보다 상세한 정보를 확인할 수 있다. 사용 방법 명령어 뒤에 정보를 확인할 파일을 지정한다. 확인할 파일은 여러 개를 공백으로 나열하거나 *으로 지정할 수도 있다. 옵션 없이 사용하면 파일명, 크기, 접근 권한 등의 정보를 확인할 수 있다. stat 출력 정보 Inode : inode 번호 Links : 링크된 파일 수 Uid, Gid : 소유자 및 그룹의 이름과 id Access : 출력이 8진수 숫자/또는 문자열 형식인 경우 권한 정보 Access : 출력이 시각 형식인 경우 접근 시각(atime) 정보 Modify : 수정 시각(mtime) 정보 Change : 변경 ..

Linux 2023.05.10

[Ubuntu 20.04] 절전 모드 비활성화

개요 최근 서버 재부팅 후 다시 서버 접속이 안 되는 현상이 발생해 syslog를 확인해 보니 다음과 같은 메시지를 확인할 수 있었다. Apr 17 01:53:31 master NetworkManager[1601]: [1681696411.3722] manager: sleep: sleep requested (sleeping: no enabled: yes) Apr 17 01:53:31 master NetworkManager[1601]: [1681696411.3724] manager: NetworkManager state is now ASLEEP Apr 17 01:53:31 master systemd[1]: Reached target Sleep. Apr 17 01:53:31 master systemd[1]: ..

Linux 2023.05.04

[Linux] unixODBC - MySQL 연결

개요 2023.05.02 - [Ubuntu] unixODBC 설치에서 unixODBC를 설치했는데, 이 글에서는 unixODBC를 이용해 MySQL에 연결하도록 구성한다. 연결할 MySQL은 8.0.32이다. 구성 환경 - AWS EC2 - Ubuntu 20.04 LTS arm64 - MySQL 8.0.32 지난 글과 마찬가지로 최대한 root 권한을 덜 사용하는 방식으로 진행한다. 드라이버 설치 unixODBC로 데이터베이스를 연결하기 위해서는 데이터베이스 드라이버가 필요하다. unixODBC로 연결할 수 있는 데이터베이스는 https://www.unixodbc.org/drivers.html에서 확인할 수 있다. 이 글에서는 MySQL과 연결할 수 있도록 MySQL ODBC Connector를 설치해야..

Linux 2023.05.03

[Ubuntu] unixODBC 설치

unixODBC ODBC(Open DataBase Connectivity)란 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격으로 마이크로소프트가 만들었다. ODBC에 정해진 순서에 따라 프로그램을 사용하면 어떤 DBMS를 사용하는지 고려하지 않고 접근할 수 있다. unixODBC는 ODBC API를 구현하는 오픈 소스로 유닉스, 리눅스, macOS 등에서 빌드하여 사용할 수 있다. 이 글에서는 root 권한을 최대한 덜 사용하는 방식으로 Ubuntu 20.04 LTS에 unixODBC를 설치하는 방법을 적어둔다. 데이터베이스 연결 구성은 다른 글에 진행한다. 설치 1. 필요 패키지 설치 unixODBC 설치에 필요한 패키지를 설치한다. apt update apt install build-essenti..

Linux 2023.05.02

[Ubuntu] Systemd service 등록

systemd service systemd에 대해서 몇 번 곁다리로 다루었는데, systemd(System daemon)은 시스템 부팅 시 가장 먼저 생성된 후 다른 프로세스를 실행하는 init 역할을 대체한다. 대부분의 리눅스 시스템에 공식적으로 채택되었다. service는 특정 상항에 따라 시작하거나 중지되는 background process를 말한다. systemd service file은 systemd가 구문 분석하고 이해할 수 있는 형식으로 작성된 파일로, 사용자가 지시한 작업을 수행한다. 대부분의 리눅스 배포판에서 systemd를 사용하고 있어, 이 글에서는 systemd가 관리할 서비스를 생성하고 등록하는 방법을 정리한다. .service 파일 구조 systemd가 관리하는 서비스 파일의 확..

Linux 2023.04.25