Linux 163

[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

[Linux] ps -ef VS ps aux

개요 보통 프로세스 정보를 확인할 때 ps -ef를 주로 사용한다. 최근 Python으로 프로세스 모니터링 방법을 확인하는데 ps aux 명령어를 추천하는 글을 봤는데 두 명령어 옵션에 차이가 있는지 정리한다. ps -ef linux 매뉴얼에 따르면 표준 구문, UNIX을 이용해 시스템 상의 모든 프로세스를 확인할 때는 아래의 명령어를 제시하고 있다. ps -e ps -ef ps -eF ps -ely 각 옵션은 다음과 같다. -e : 모든 프로세스를 선택한다. -A와 동일하다. -f : 목록을 full format으로 출력한다. -F : 목록을 full format으로 출력한다. -f와 동일하다. -l : 목록을 long format으로 출력한다. -y : 플래그를 표시하지 않고, ADDR 대신 RSS(..

Linux 2023.04.21

[Linux] Crontab - 사용자 전체 설정 확인

개요 일반적으로 Crontab 설정 정보를 확인할 때는 현재 사용자 또는 특정 사용자 계정에서 crontab -l을 사용하여 확인한다. crontab -l 다만 서버 내 계정이 많고, 관리자 root 권한을 갖고 있다면 보다 편하게 확인할 수 있을 것 같아 방법을 정리해 둔다. /var/spool/cron/crontabs 각 사용자가 작성한 crontab 설정은 아래 경로의 파일로 저장되는데, 파일의 소유자는 생성한 사용자로, 그룹 소유자는 crontab으로 지정된다. /var/spool/cron/crontabs/ /var/spool/cron/crontabs 경로는 root 사용자만이 읽기 권한을 가지고 있다. 실제 crontab 설정은 단순히 cat 명령어 등으로 확인하면 된다. crontab -u c..

Linux 2023.03.14

[Linux] OpenSSL - 사용법

개요 네트워크 데이터 통신에 사용되는 프로토콜인 TLS/SSL 오픈 소스 구현판으로, 기본적인 암호화 기능 및 여러 유틸리티 함수가 구현되어 있다. 거의 모든 버전의 유닉스 계열 운영 체제 및 윈도우에서 OpenSSL을 이용할 수 있다. 이 글에서는 간단히 개인 키 생성, 인증서 서명 요청 생성과 정보 확인을 위한 명령어를 정리한다. 개인 키(Private Key) 생성 genrsa 명령은 RSA 개인 키를 생성한다. 키를 생성할 때는 생성할 개인 키의 크기를 마지막으로 지정해야 한다. 기본값은 2048이다. openssl genrsa -out 2048 # -out : 키를 저장할 파일 경로 # -passout : 암호화 시 사용할 비밀번호 # 예시 openssl genrsa -out test_user...

Linux 2023.02.01

[SQLite] 설치 및 사용

SQLite 서버가 아니라 응용 프로그램에 넣어 사용하는 가벼운 DBMS 시스템이다. 오픈소스 프로그램으로 안드로이드, iOS, macOS에 포함되어 있다. 경량 구현인 탓에 SQL에서 제공하는 기능을 제한적으로 제공하고, 복잡하고 큰 데이터를 저장하는 데에는 적합하지 않다. 외부 라이브러리 의존도가 낮으며 하나의 파일에 데이터베이스 전체를 저장한다는 특징이 있다. 또한 표준 SQL 문법을 지원해 별도로 학습할 부분이 크지 않다. 설치 Ubuntu에서는 아래 명령으로 설치하여 사용한다. apt install sqlite3 # 버전 확인 sqlite3 --version DB 생성 또는 접근 데이터베이스를 생성하거나 데이터베이스를 다루기 위해 파일에 접근한다. sqlite3 # 예시 sqlite3 airfl..

Linux 2023.01.19

[Linux] 여러 프로세스 한 번에 종료하기

개요 그간 여러 프로세스를 종료할 때 ps -ef | grep 명령으로 찾은 후 한 땀 한 땀 pid를 입력해 종료를 했었다. ps -ef | grep kill -9 하지만 정리해야 할 프로세스가 몇십 개, 몇백 개가 넘어가니 그렇게 처리할 수가 없어졌다. 한 번에 여러 프로세스를 정리할 수는 없을까? 명령어 몇 가지 명령어를 조합하여 사용하면 검색한 문자열을 포함하는 프로세스를 한 번에 정리할 수 있다. ps -ef | grep | awk '{print $2}' | xargs kill -15 예시 예로 들어 아래와 같은 Airflow 관련 서비스를 한 번에 정리해보도록 하자. ps -ef | grep airflow ps -ef 명령 결과에서 프로세스의 pid는 두 번째 열에 해당한다. 각 행에서 두 번..

Linux 2022.12.29

[Linux] apt/dpkg - 패키지 설치 이력 확인

개요 apt install 명령어를 이용해 기존에 설치되어 있던 패키지를 업그레이드 버전으로 설치했다. 그리고 그대로 패키지가 동작하지 않았다……. 업그레이드했던 패키지를 기존에 설치되어 있던 버전으로 돌리고 싶은데, 생각해보니 기존 버전을 확인하지 않았다……. 이런 경우에는 어떻게 해야할까? apt history.log apt, apt-get을 이용한 모든 작업은 /var/log/apt/ 아래의 로그 파일에 기록된다. 그 중 설치 이력에 대한 로그는 history.log에 저장된다. 로그 파일을 열어보면, 명령어를 실행한 시점과 실행한 명령어, 그리고 명령어로 인해 삭제되거나 업그레이드/다운그레이드된 패키지와 그 버전을 확인할 수 있다. dpkg.log apt history.log는 gdebi와 같은 ..

Linux 2022.12.04
1 2 3 4 5 6 7 ··· 17