Linux

DevOps/Linux_리눅스

[Linux] dhcpd not authoritative 문제 해결

DHCP 미 할당 이슈 발생본인은 현재 2개의 망으로 네트워크를 분리해서 운영중에 있다.각 내부 서버, NAS, PC 등의 연결과 유선 인터넷 전화기에 연결하는 용도로 사용중인데 근래 사내 PC 들이 DHCP 할당을 못 받아오는 이슈가 종종 발생하였다. DHCP.conf 구성과 연결된 Client 구성에는 문제가 없어, 중간에 네트워크 통신 과정에서 route/swicth 문제가 아닐까 하였는데, DHCP 할당이 안 되는 PC들에겐 모두 공통점이 있었다.모두 원래 사용중이던 대역이 아닌 다른 망의 대역으로 잡히는 것이다. 원인두 개의 망이 각자 DHCP 서버가 존재한다.그리고 내부 구성에서 두 망이 연결되어 있다.(애초에 이 구성부터 잘못되긴 함…)그리고 PC에서 사용중인 망에서 DHCP 할당을 받지 못..

DevOps/open source_오픈소스

[Redmine] 프로젝트 관리 오픈소스, 레드마인

!! Redmine레드마인(Redamine)은 오픈소스 프로그램으로 웹 기반의 프로젝트 관리와 버그 추적 기능을 제공하는 도구이다. 주요 기능으로는 달력과 칸트 차트, 일정관리 기능이 있다.이를 화면기반의 기능을 제공하여 프로젝트 관리에 도움을 줄 수 있다.redmine의 디자인은 Trac에 영향을 많이 받았으며 ruby에 기반하여 작성되었고 멀티 플랫폼을 지원하며 여러가지 종류의 데이터베이스 및 34개의 언어를 지원한다.   Ubuntu 20.04 LTS , installdatabase(mariaDB) 설치# database를 설치한다.apt-get updateapt-get install mariadb-server -ymysql -u root -p# db 버전에 따라서 utf8로 진행하여도 된다.Mar..

DevOps/Linux_리눅스

[Linux] 백그라운드, 포그라운드(프로세스 실행)

오픈소스 애플리케이션을 linux에서 돌려보고 있는데 해당 명령어가 눈에 띄었다. jobs node ./Server/lib/Game/cluster.js 0 1 bg disown -h node Server/lib/Web/cluster.js 1 bg disown -h netstat -anlp | grep netstat -anlp | grep web과 game 서버로 나뉘어져 있는데 이를 linux 단일 서버에서 실행시키려 진행한 것이다. 위 명령은 해당 프로세스를 백그라운드로 진행시키는 명령어이다. “&”를 이용한 백그라운드 실행은 익숙하지만 bg, fg, jobs 등 명령어는 익숙치 않은것 같아, 프로세스를 백그라운드로 관리하는 명령어들에 대해 상세히 알아보고 실습해보는 시간을 가져보도록 하겠다. Back..

DevOps/Linux_리눅스

[Linux] root 권한 관리 (UID 탐색)

#! /bin/bash TMP1=`cat /etc/passwd | grep -v 'root' | awk -F: '{if ($3=="0") print $0}'` echo $TMP1 echo -e [ UID 탐색 중 ... ] sleep 1s if [ -z "$TMP1" ] ; then sleep 1s echo -e "\033[32m" [ 양호 ] "\033[0m" echo -e "\033[32m" root 제외 "0" 값의 UID가존재하지 않습니다."\033[0m" else echo -e "\033[31m" [ 취약 ] "\033[0m" echo -e "\033[31m" root 제외 "0" 값의 UID가존재합니다."\033[0m" sleep 1s echo -e "\033[31m "UID = 0 값인계정 ..

DevOps/Linux_리눅스

[Linux] default 계정 삭제 (default 계정 탐색)

서버 취약점 분석/평가 항목 중 불필요 계정 제거 작업을 진행하는 스크립트를 작성해 보았다. #! /bin/bash LIST_USER_NAME=" lp mail games ftp pipewire pulse gluster setroubleshoot saslauth qemu usbmuxd gogotest ec2-user " echo -e [ default 계정 탐색 중 ... ] sleep 1s for duser in $LIST_USER_NAME do REPEAT_ACCOUNT=`cat /etc/passwd | grep $duser` echo "[ "$duser" 검색]" sleep 1s if [ ! -z "$REPEAT_ACCOUNT" ] ; then echo -e "\033[32m" [ 양호 ] "\03..

DevOps/Linux_리눅스

[Linux] 시스템 재부팅시 자동실행되는 shell script

리눅스를 사용하다 보면 서버가 부팅할때 자동으로 실행되어야 할 명령이나 스크립트가 생기기 마련이다. (서버 운영중 정전 등의 이유로 재부팅된다거나 할때 서비스들을 자동으로 살려야하기 때문에..) 그리하여 이번에는 시스템이 재부팅될때 자동적으로 sh을 실행시켜주는 기능 2가지를 실습해보겠다. 각 ec2 2대를 준비하여 진행하였다. local.service 생성 방법 vi /etc/systemd/system/rc-local.service # 생성 [Unit] # 내용 추가 Description=Run rc.local #After=suspend.target #After=hibernate.target #After=hybrid-sleep.target [Service] ExecStart=/etc/rc.local s..

DevOps/Linux_리눅스

[Linux] Shell Prompt 정보 변경

쉘 프롬프트 정보 변경 현재 사용자가 개별적으로 사용할 수 있도록 지원하는 사용자별 시스템 환경변수를 쉘 변수라고 한다. 쉘 변수들 가운데 PS1이라는 변수가 프롬프트의 정보를 포함하고 있다. Prompt 기본 설정 확인 bash shell에서 PS1의 값을 확인하면 다음과 같이 나타난다. \h 현재 호스트의 이름을 나타낸다. \W 현재 위치의 디렉터리를 나타낸다. \u 현재 로그인된 사용자를 나타낸다. 본인 PS1의 경우 예전에 커스텀을 하여 보통과 다르게 나타났다. 기본 설정은 \h:\W \u\$ 로, 기본 설정으로 분석한다면 현재 호스트는 172-31-7-241, 디렉터리 위치는 ~(home)이며, 로그인된 사용자는 root 이다. Prompt에 나타낼 수 있는 정보 쉘 변수 기호 의미 \t 24시..

DevOps/Linux_리눅스

[Linux] OS config 정보 백업 (+ 네트워크 인터페이스 정보)

Linux 네트워크 인터페이스 정보 백업 지난 OS config의 정보를 백업하는 스크립트에 네트워크 인터페이스 정보를 백업하는 기능을 추가하였다. Shell Scirpt (backup 파일 생성) #! /bin/bash # date로 오늘 날짜를 불러온다. today=`date +%m-%d-%y` echo $today Perform a backup of server configuration information sleep 1.0 mkdir /home/test/$today-monitoringTEST # 저장될 백업데이터 df=`df -k > /home/test/$today-monitoringTEST/$today/df-$today.bak` mount=`mount > /home/test/$today-moni..

DevOps/Linux_리눅스

[Linux] OS config 정보 백업 (shell 백업 및 ansible 배포)

기능 구현 목적 다수의 서버들의 재기동(재부팅) 등 작업 전 OS 정보들을 미리 백업하려 한다. config 정보 백업 파일을 생성하는 스크립트를 구성하고, 이를 서버들에 배포하여야 한다. (각 서버에 스크립트가 배치되어야 한다.) 백업 파일은 실행 날짜를 기재하여 구별이 어렵지 않게 구성하였다. Shell Scirpt (backup 파일 생성) #! /bin/bash ###################### # 0926 os config data backup ###################### # date로 날짜 얻기, "MM-DD-YY" 형식으로 날짜 출력 today=`date +%m-%d-%y` echo $today Perform a backup of server configuration in..

DevOps/Linux_리눅스

[Linux] top 명령어 (서버 상태 파악)

TOP 명령어 top 명령어는 현재 OS의 상태를 나타내는 CLI 어플리케이션이다. 메모리 사용량, CPU 사용량 등을 나타내주며 top을 실행하는 동안에는 실시간에 근접한 내용을 보여준다. 요약 영역 System time(시스템 현재 시간) = GMT 기준 현재 시간을 나타낸다. (한국시간으로 +9) uptime(OS가 살아있는 시간) = days와 시간으로 나타낸다. user sessions(유저 세션수) = 접속중인 유저 세션 수이다. 좀 더 자세한 내용은 who 명령어를 통해 확인 가능하다 Load Average = CPU Load의 이동 평균을 표시한다. (100%를 넘긴다면, 처리못하고 대기중인 ps가 있다는것) Tasks = 현재 프로세스들의 상태를 나태나는 영역이다. CPU 사용량 = Ta..

DevOps/Linux_리눅스

[Linux] df 명령어 미동작 해결(df hang)

disk 용량 확인 하려고 df -h 명령어를 실행했는데 실행이 안되는 이슈가 있었다. 서버에 hang이 걸린줄 알고 시간을 두고 기다려도 계속 반응이 없다.. 해결 방안 1. log 분석 이럴 경우 server(nas) 네트워크 문제가 있다고 판단된다. client에서는 nfs로 mount 된 것을 물고 있지만 접근이 어려울 것이다. 2. client 조치 위 사진과 같이 공유 directory를 umount를 진행하였는데 강제로 -f 옵션까지 줘 봤는데도 device is busy 라는 문구가 나타난다. -f 옵션까지 되지 않을 경우 -l 옵션을 줘서 umount를 진행하여야 한다. (본인은 -l 옵션으로 해결했다.) ※ -l : 지연된 언마운트(lazy umount) lazy umount는 디바이스..

DevOps/Linux_리눅스

[Linux] Logrotate (로그 분산 관리)

Logrotate Logrotate는 Linux에서 로그를 저장하며 관리할 때, 로그 파일이 하나의 파일로 크기가 커지며 저장되는것을 분산시켜줄 때 사용한다. 한 파일에 로그가 지속적으로 쌓이게 도면 로그 확인이 필요한 경우 파일이 너무 방대해 확인이 어려워지고 디스크 용량 또한 낭비된다. Logrotate 실행 순서 & 구조 Logrotate은 위와 같은 순서로 실행하며, 구성하는 파일들은 아래와 같은 구조를 가진다. /usr/sbin/logrotate : Logrotate 데몬 프로그램 /etc/logrotate.conf : Logrotate 데몬 설정 파일 /etc/logrotate.d/ : Logrotate 프로세스 설정 파일 /etc/cron.daily/logrotate : Logrotate 작..

cwpack0730
'Linux' 태그의 글 목록