Programming/Linux 10

CentOS MariaDB 오프라인 수동 설치 방법 (tar.gz 파일)

CentOS MariaDB 오프라인 수동 설치 방법 매번 인터넷이 되는 환경에서 apt(Advanced Package Tool)를 통해 mariadb, mysql 등의 DBMS를 설치하다가 이번에 CentOS 7 폐쇄망 환경에서 mariadb를 수동으로 설치해 보게 되었는데요. 생각보다 시간이 좀 걸리기도 했고 앞으로 종종 설치할 일이 있을 것 같아 내용을 정리하게 되었습니다. *** 우선 폐쇄망이라고 할지라도 서버 내에 설치에 필요한 파일을 옮길 수는 있어야 한다는 전제조건이 있습니다. (해당 예시에서도 서버에 'mariadb-10.10.7-linux-systemd-x86_64.tar.gz' 파일을 가지고 시작합니다.) https://mariadb.org/download 먼저 mariadb 다운로드 페..

Programming/Linux 2024.02.01

(Linux) Too many open files 에러가 발생하는 경우

Too many open files 에러가 발생하는 경우 해당 포스팅은 Linux 서버에서 발생하는 'Too many open files' 에러에 대한 해결 방법과 해당 에러가 발생할 수 있는 상황에 대해서 살펴본 내용입니다. File Descriptor / open files Too many open files 에러에 대해 살펴보기 위해서는 먼저 '파일 디스크립터(File Descriptor / open files)'에 대해서 알아야 하는데요. Linux에서는 파일을 열면(open) 파일 디스크립터를 반환하며, 반환된 파일 디스크립터는 파일을 읽고 쓰는 데 사용됩니다. 문제는 리눅스 환경에서 Java의 소켓 통신(HTTP, API, JDBC 커넥션 등) 또한 파일로 취급된다는 것인데요. 때문에 소켓을 ..

Programming/Linux 2023.10.18

Ubuntu (20.04.5 LTS) Apache2 웹 서버 설치하는 방법

(Ubuntu) Apache2 웹 서버 설치 방법 해당 포스팅은 'Ubuntu 20.04.5 LTS 환경에서 Apache2 Web Server를 설치하는 방법'에 대한 내용입니다. 웹 서버 설치 및 방화벽 포트 허용 과정이 포함되어 있으며, 해당 과정에서 발생할 수 있는 상황에 대한 주의사항이 포함되어 있습니다. 1. 패키지 목록 업데이트 및 Apache2 설치 //패키지 목록 업데이트 $ sudo apt-get update //Apache2 Web Server 설치 $ sudo apt-get install apache2 apache2 설치로 인해 일정 용량의 디스크 공간이 사용된다는 'After this operation, ~kB of additional disk space will be used.' ..

Programming/Linux 2023.05.15

리눅스 서버 시간 확인 및 설정 방법 (linux timedatectl 명령어)

linux timedatectl 명령어를 통한 리눅스 서버 시간 확인 및 설정 리눅스 서버에서 시스템 시간 및 해당 설정을 확인하고 변경해야 할 일이 있어 찾아보며 정리한 내용입니다. linux에서는 timedatectl 명령을 사용하여 현재 시간, 날짜 및 시간대(timezone) 설정을 확인 및 변경할 수 있는데요. 아래 내용을 통해 사용되는 명령어들에 대해서 살펴보겠습니다. (timedatectl 명령어는 CentOS 7부터 사용할 수 있습니다.) 1. 서버 시간 및 설정 확인 # timedatectl # timedatectl status timedatectl 또는 timedatectl status 명령어를 통해 시스템에 설정된 시간 및 시간 설정을 확인할 수 있습니다. 여기서 Local time의..

Programming/Linux 2023.03.30

linux sftp log 설정 방법 (접속 및 작업 로그)

Linux 운영체제 SFTP 로그 설정 방법 sftp 작업은 기본적으로 로그를 남기지 않습니다. 때문에 로그를 남기기 위해서는 아래 내용과 같은 추가 설정 작업이 필요한데요. 전체적인 작업은 편집기를 통한 3개의 파일(sshd_config, rsyslog.conf, rsyslog) 내용 수정 및 프로그램(rsyslog, sshd) 재실행으로 실행되며, 짧은 시간에 적용할 수 있는 부분입니다. (해당 포스팅의 내용은 Ubuntu 18.04.6 LTS 환경에서 작업된 내용입니다.) 1. /etc/ssh/sshd_config 파일 수정 편집기를 통해 /etc/ssh 디렉터리 내에 있는 sshd 설정 파일인 'shd_config' 파일을 수정합니다. #수정 전 Subsystem sftp /usr/lib/open..

Programming/Linux 2023.02.16

리눅스 파일 편집기 vi 자주 사용되는 명령어 정리

vi란? vi는 문서 편집기입니다. windows 운영체제에서는 기본적인 문서 편집기로 '메모장'을 지원하는데요. linux 운영체제에서 기본적으로 지원하는 문서 편집기가 바로 'vi'입니다. vi와 vim은 무엇이 다를까요? vim(vi improved)는 단어 뜻 그대로 기존의 vi(visual editor)에서 기능을 향살 시킨 에디터이며, vi가 텍스트 편집에 필요한 최소한의 기능만을 가지고 있어 사용에 불편한 점이 있기 때문에 그 부분을 보완하기 위해 나온 것이 바로 vim입니다. 그러면 vi가 아니라 vim을 사용해야 하는 것 아닌가요? 리눅스에는 vim editor가 설치되어 있습니다. 때문에 vi를 사용해도 vim이 실행되고, vim을 사용해도 vim이 실행되는 것입니다. (vim 안에는 ..

Programming/Linux 2022.11.24

좀비 프로세스 원인과 죽이는 방법(Zombie Process)

개발서버를 운영하는 중에 "There are 2 zombie processes."라는 메시지를 발견했는데요. 리눅스 운영체제에서 발생할 수 있는 좀비 프로세스의 원인은 무엇인지, 죽이는 방법은 무엇인지 해결하며 정리한 내용입니다. 1. Zombie Process란? 프로세스가 종료되고 리소스는 모두 회수되었지만, 시스템 프로세스 테이블에 남아있는 defunct 상태의 프로세스를 '좀비 프로세스'라고 하는데요. 실행이 종료되었지만 아직 삭제되지 않은 프로세스라고 볼 수 있습니다. 2. 발생 원인 보통 프로세스는 exit() 시스템 함수를 호출함으로써 운영체제에게 자신의 삭제를 요청하며 종료되는데요. Process가 종료되면 사용하던 리소스는 운영체제에게 다시 회수됩니다. 그러나 이때 프로세스의 종료 상태가..

Programming/Linux 2022.09.14

데몬(daemon) 프로세스의 정의와 실행 방법

프로젝트의 개발서버 배포 과정에서 데몬을 사용하여 서비스의 배포와 관리를 자동화할 수 있다는 것을 알게 되었고, 실제 적용해보면서 정리한 내용입니다. 내용 참고하시고 잘못된 부분은 지적해주시면 확인하고 공부하여 다시 수정하겠습니다. 미리 감사드립니다. 프로세스란? (background, foreground) 데몬(daemon)에 대해서 이해하기 위해서 먼저 프로세스에 대해서 간단하게 살펴보겠습니다. 프로세스(process)는 연속으로 실행되고 있는 컴퓨터 프로그램(program)을 의미하는데요. 프로세스는 포그라운드(foreground) 프로세스와 백그라운드(background) 프로세스로 나눌 수 있습니다. 각각에 대해서 살펴보면 포그라운드 프로세스는 인터넷 브라우저, 인텔리제이, 카카오톡 등, 눈에 ..

Programming/Linux 2022.07.27

Linux 리눅스 파일 권한에 대한 이해와 권한 변경(chmod)

'다중 사용자 운영체제에서 권한이 필요한 이유' 주로 개인이 일반적으로 사용하는 '단일 사용자 운영체제'(Single-User Operation System, 대표적으로 Windows)와는 다르게 여러 사용자들에게 서비스를 제공해주는 서버에는 '다중 사용자 운영체제'(Multi-User Operation System)가 사용됩니다. 다중 사용자 운영체제의 대표적인 것이 유닉스(Unix) 운영체제와 유닉스에서 파생된 리눅스(Linux) 운영체제이며, 다중 사용자 운영제체는 여러 클라이언트 컴퓨터에서 하나의 서버 컴퓨터에 접속을 하는데 사용되기 때문에 파일 및 디렉터리의 접근 권한을 클라이언트 계정별로 엄격하게 관리되어야 한다는 특징이 있습니다. * 리눅스에서 디렉토리는 그 디렉터리가 포함하는 파일과 하위 ..

Programming/Linux 2021.12.09

nohup 명령어를 사용해도 프로세스가 종료되는 경우 해결 방법

서버에 서비스를 배포 중 터미널이 종료되어도 프로세스가 지속되도록 하기 위해 찾은 방법이 nohup 명령어입니다. 처음 nohup 명령어를 사용하여 프로젝트를 실행했을 때는 터미널 종료 후에도 서비스가 계속 동작하는 것을 확인하였으나, 마무리 작업에서 갑자기 nohup 명령어를 사용해도 프로젝트가 종료되는 경우가 발생하여 찾은 해결 방법입니다. 우선 nohup 명령어는 리눅스(Linux)에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 계속 동작할 수 있게 해주는 명령어입니다. 원리는 터미널에서 로그아웃이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 hup signal을 전달하여 종료시키는데, nohup 명령어가 이 hup signal을 무시하는 명령어기 때문에 터미널 연결이 끊어지거나..

Programming/Linux 2021.08.01