본문 바로가기

OS

Linux - SSL 인증서 만료 체크 스크립트 서버 운영 시 SSL 인증서의 만료 여부를 주기적으로 체크하는 것은 중요합니다.SSL 인증서가 만료되면 웹사이트 접속 시 보안 경고가 발생하여 접속에 문제가 발생할 수 있습니다.도메인 리스트를 읽어 SSL 인증서의 만료 일자를 확인 후 만료가 임박한 인증서에 대해 이메일을 발송하는 스크립트를 소개합니다. 1. 기존 SSL 인증서 만료 체크 스크립트우선 기본적인 SSL 인증서 만료 체크 스크립트를 살펴보겠습니다. 이 스크립트는 URL과 포트를 인자로 받아 SSL 인증서를 가져와 만료 일자를 확인하고, 만료일이 15일 이하로 남은 경우 이메일을 발송합니다.checkSSL_Dday.sh 스크립트#!/bin/bashtoday="`date`"date2nanosec="`date +%Y%m%d_%H%M%S_%N`"U.. 더보기
Linux - 프로세스 자동 재시작 설정 스크립트 서버에서 프로세스가 비정상적으로 동작하거나 중단되는 상황에 자동으로 재시작하는 방법이 필요했습니다.systemd와 스크립트를 조합하여 서비스가 중단되었을 때 자동으로 재시작되도록 설정할 수 있습니다.스크립트 구조kill_my_service.sh: 특정 프로세스를 강제로 종료하는 역할을 합니다.check_my_service.sh: 주기적으로 프로세스 상태를 점검하고, 필요시 프로세스를 재시작합니다. 이 스크립트는 crontab을 이용해 매 분마다 실행됩니다.kill_my_service.sh#!/bin/bashfunction killProcess(){ while : do if [ `ps -ef | grep $1 | grep -v grep | wc -l` -eq 0 ] ; .. 더보기
Linux - 일반계정으로 1024이하 포트 사용방법 (setcap / getcap) 리눅스에서 1024 이하의 포트는 일반적으로 root 권한이 있어야만 사용할 수 있습니다.하지만 보안 이유로 인해 일반 사용자 계정으로 웹 서버(Apache 또는 Tomcat)를 실행해야 하는 경우가 많습니다.이때 capabilities 기능을 사용하여 일반 사용자도 root 권한 없이 1024 이하의 포트를 사용할 수 있습니다.Capabilities란?root 계정은 모든 권한을 갖고 있지만 일반 사용자 계정에게 root 권한을 부여하지 않으면서 특정 작업을 허용하려면 capabilities 기능을 사용할 수 있습니다. root 권한을 나누어 특정 작업(예: 포트 바인딩)을 수행할 수 있게 해 줍니다.특히 cap_net_bind_service라는 권한을 사용하면 일반 사용자도 1024 이하의 포트(“p.. 더보기
Linux - jq 명령어란? (JSON 데이터 처리기) 1. jq란 무엇인가?jq는 JSON 데이터를 처리하고 파싱 할 수 있도록 도와주는 유틸리티입니다. 마치 sed나 awk처럼 사용되며, JSON 포맷의 데이터를 필터링하고 변환하는 데 특화되어 있습니다. 복잡한 JSON 데이터 구조에서 특정 값만 추출하거나 데이터를 재구성하는 데 매우 유용합니다.2. jq 설치하기 # aptsudo apt-get updatesudo apt-get install jq# apt(select version)sudo apt-get install jq=1.5*# yumsudo yum install jq# yum(select version)sudo yum install jq-1.5# dnfsudo dnf install jq# source codegit clone cd jqautor.. 더보기
Linux - /proc/[PID]/status 파일 정보 리눅스에서는 각 프로세스에 대한 정보를 /proc 디렉토리를 통해 확인할 수 있습니다. 이 디렉토리는 시스템이 동작하는 동안 생성되며, 각 프로세스에 대한 상태 정보를 제공하는 가상 파일 시스템입니다. /proc 아래에는 각 프로세스 ID(PID)를 이름으로 하는 디렉토리가 있으며, 그 아래 status라는 파일을 통해 해당 프로세스의 상세 정보를 확인할 수 있습니다./proc/[PID]/status 파일 개요status 파일은 프로세스의 상태를 설명하는 정보가 있고 성능 모니터링, 문제 해결, 시스템 최적화를 위해 사용합니다.주요 정보 필드Name프로세스 이름 (예: sshd)Umask파일 생성 마스크 (권한 설정 시 기본 마스크 값)State프로세스의 현재 상태 (R: 실행 중, S: 대기 중, D:.. 더보기
Linux - Date 명령어로 타임스탬프 변환하기 리눅스(Linux)에서 date 명령어는 시스템의 날짜와 시간을 출력하거나 설정하는 데 사용됩니다. 날짜와 시간을 다루는 다양한 형식을 지원하며, 이를 통해 타임스탬프를 읽기 쉽거나 특정 형식으로 변환할 수 있습니다. 또한, 타임스탬프 값을 받아 사람이 이해할 수 있는 날짜로 변환하는 기능도 제공합니다.1. date 명령어 기본 사용법리눅스의 date 명령어는 기본적으로 현재 시스템의 날짜와 시간을 출력합니다.# date2024. 10. 02. (수) 09:17:42 KST기본 출력 형식은 시스템의 로케일 설정에 따라 다를 수 있지만, 일반적으로 "년-월-일 시:분:초" 형식으로 나타납니다.특정 형식으로 날짜와 시간을 출력하고 싶다면 + 옵션을 사용하여 원하는 포맷을 지정할 수 있습니다.# date +".. 더보기
Linux - 리눅스 주요 로그 파일 정리 리눅스 시스템에서 로그 파일은 시스템의 상태를 모니터링하고, 사용자 활동을 추적하며, 보안 사고를 분석하는 데 중요한 역할을 합니다. 로그 파일을 이해하고 적절하게 관리하는 것은 시스템 관리자에게 필수적인 기술입니다.주요 로그 파일 요약로그 파일위치내용명령어utmp/var/run/utmp현재 로그인한 사용자들의 상태 정보w, who, fingerwtmp/var/log/wtmp성공한 로그인/로그아웃 및 시스템 부팅/종료 이력last, lastbbtmp/var/log/btmp실패한 로그인 시도 기록lastblastlog/var/log/lastlog각 사용자별 가장 최근 로그인 기록lastlogsecure/var/log/secure사용자 인증 관련 정보 (로그인, 사용자 추가/삭제 등)cat, grepmess.. 더보기
Windows - DB / WAS / OS 튜닝 가이드 MariaDB와 Tomcat 서버가 한 대의 서버에서 함께 동작하는 환경에서, 성능 최적화하여 효율적인 자원 관리와 성능 향상을 위한 각종 설정을 소개합니다.작업 서버 정보OS : Windows 2022 서버 기준DB: MariaDB 10.6.16 기준WAS: Apache Tomcat 8.5 기준 (JAVA 17 사용)1. MariaDB 튜닝 (DB) 설정1.1 my.ini 설정MariaDB는 메모리 사용량과 쿼리 성능에 큰 영향을 미치는 DB 엔진입니다.특히, InnoDB의 버퍼 풀과 로그 파일 크기 설정은 성능에 큰 차이를 만들기 때문에 적당히 할당해주셔야 합니다. [mysqld]# 데이터베이스 경로 및 포트 설정datadir=D:/MariaDB/dataport=3306# 메모리 및 캐시 관련 설정 .. 더보기