HowTo

Bash 파일 존재 유무 체크하기

Bash 쉘 스크립트를 작성할때 자주 사용하는 로직인 바로 파일 존재 유무를 체크하는 것이다. 파일 하나만 체크할 수도 있고 여러파일을 체크할 수도 있다. 여러 파일을 체크할때는 다음과 같이 할 것이다.

이것을 Bash 쉘 스크립트에서는 어떻게 리턴을 받아야 하나하는 고민이 생긴다. 가장 쉬운 방법은 stdout, stderror 를 체크하는 방법이다. Bash 에서 이를 exit code 라고 하고 $? 에 세팅이되어 다음과 같은 로직이 가능해진다.

명령어가 성공(stdout)하면 $?에 0, stderr 면 1 이다. 위를 실행하면 다음과 같다.

위 방법외에도 한줄로 다음과 […]

Installation

Trac 설치 및 실행

현재(2018년)에 Trac 을 설치해서 사용하는 사람이 있을지 모르겠지만, 개인적으로 뭔가를 할때 제일 좋은 툴은 것 같다. 그런데, Trac 설치는 가끔 하는거라 할때마다 헤메곤 하는데 기록해두기 위해서 이 글을 작성한다. Python 2.7 Trac 은 현재 Python 2.7 에서 잘 작동한다. Python 2.7 이 설치되어 있어야 한다. 현 시점에서 CentOS 7, Ubuntu 16.04 LTS 에서 기본으로 Python 2.7 이 설치되어 있어 별도로 Python 2.7 을 설치할 필요는 없다. pip, setuptools 설치 Trac 뿐만 아니라 Python 의 라이브러리를 설치하기 위해서 pip 를 이용한다. […]

Installation

PHP7 설치하기

이 문서는 php7.2 설치 문서 입니다. 1. 준비 CentOS 가 최소설치되었다고 가정하고 시작했기 때문에 컴파일 환경을 구축해야 합니다.

Ubuntu16.04 의 경우에는 다음과 같은 프로그램이 설치되어 있어야 합니다.

  2.Download and Unpack 최신버전을 다운로드 받아야 합니다.

3. Configure and Compile 이제 PHP에서 사용할 기능들을 결정해야 합니다. PHP에서 제공하는 기능은 아주 많지만 여기서는 다음과 같은 기능들을 사용할 것입니다.

아무런 에러없이 끝났다면 다음과 같이 컴파일을 해주고 설치해준다.

4. Configure to the installed php7 config-file-scan 디렉토리를 생성해 준다.

[…]

Installation, Linux

Python, SaltStack 편집을 위한 vim 세팅

서버를 다루다보면 Python, SaltStack 을 작성해야 하는데 이를 위해서 윈도우즈로 다운로드 받아서 편집기를 열어서 하기가 영 귀찮습니다. 터미널을 이용해기 때문에 vim 를 이용하면 아주 편한데, 이 문서는 Python, SaltStack 편집을 위한 vim 세팅 위한 것입니다. 환경 환경이 중요합니다. 이 문서의 환경은 다음과 같습니다. OS Distro: Ubuntu 16.04 vim version: 7.4 Python Virtualenv: /home/systemv 계정에 Python 가상환경을 만들었으며 여기에 각종 Python 라이브러리가 설치되어 있다. Vundle 플러그인 설치 Vundle 은 vim 플러그인 입니다. 이 플러그인은 vim 의 각종 플러그인을 아주 편하게 설치 […]

Installation, Linux

Python pip 를 일반계정에 설치하는 방법

시스템을 운영하다 보면 Python 을 많이 사용하게 되는데, 리눅스 시스템의 경우에 기본적으로 Python 이 설치되어 있다. 하지만 pip 는 기본적으로 설치되지 않는데 이것을 설처하기 위해서 리눅스 시스템의 슈퍼유저인 root 사용자 계정을 빌리거나 설치 요청을 하는 경우가 많다. 하지만 일반계정으로 pip 를 사용할 수 있는데 이에 대해 간단히 소개한다. 디렉토리 생성하기 일반계정일 경우에 홈디렉토리에 bin 디렉토리를 생성하고 PATH 쉘 변수를 설정하면 되는데 이럴경우 홈디렉토리에 노출되는데 이를 숨기기 위해서 숨김 디렉토리로 설정한다.

숨김 디렉토리를 생성한 후에 PATH 쉘 변수를 만들고 Bash […]

HowTo, Linux

Database 를 위한 공유 메모리, HugePages 계산하기

Database 시스템은 공유메모리 혹은 HugePages 에 매우 의존적입니다. 서버에서 데이터베이스가 가동되면 Database 가 사용하는 메모리는 Database만을 위해서 사용되어 집니다. 대부분의 큰 Database 시스템은 다른 서버 프로그램 없이 단독으로 설치되어 운영되어지기 때문에 얼마만큼 물리적 메모리를 Database 에 할당할지가 Database 시스템 전체에 큰 영향을 미칩니다. 이 글에서 Database 시스템을 위한 공유메모리, HugePages 등을 할당할때에 고려사항은 무엇이며 얼마나 할당하는 것이 좋은지를 살펴보겠습니다. Oracle 11g or 12c 먼저 Oracle 은 물리적 메모리에 약 80% 를 Oracle 이 사용하도록 할당하도록 합니다. 여기서 대략 80% 라고 […]

HowTo

Telegraf 설치 및 설정

Telegraf 는 서버내의 각종 지표들을 수집하는 에이전트(Agent) 프로그램 입니다. 서버 자체뿐만 아니라 각종 서버소프트웨어들에 지표도 함께 수집할 수 있으며 InfluxDB, OpenTSDB, Kafka 등과 같은 데이터소스(Datasource)에 저장하도록 할 수 있습니다. 환경 설치 및 설정 환경은 다음과 같습니다. CentOS x86_64 설치 설치는 Telegraf 홈페이지에서 관련 파일을 다운로드 받으면 됩니다. Telegraf 는 배포판별로 패키지를 제공하기 때문에 편하게 설치를 할 수 있습니다.

  설정 설정은 /etc/telegraf/telegraf.conf 파일에서 해주시면 되며, 주요 설정은 다음과 같습니다.

위 설정만으로도 주요한 Linux 시스템의 지표들을 수집할 수 있습니다. […]

HowTo

InfluxDB 설치 및 설정

InfluxDB 는 Time Series Database 로 각광을 받는 데이터베이스 시스템입니다. SQL 로 데이터 조회가 가능하며 Retention 설정(보유기간을 설정) 할 수 있는 특징이 있습니다. 환경 설치 환경은 다음과 같습니다. CentOS x86_64 설치 다음의 페이지에서 다운로드를 받을 수 있습니다. https://portal.influxdata.com/downloads InfluxDB 는 각 배포판별로 패키지를 제공 합니다. 패키지를 이용하면 손쉽게 설치할 수 있고 init script 등록도 자동으로 되기 때문에 패키지 설치를 권장 합니다.

설치가 끝나면 다음과 같은 파일들을 확인할 수 있습니다.

설정 대부분의 설정은 /etc/influxdb/influxdb.conf 파일에서 이루어 집니다.  주요한 설정은 […]

HowTo, Linux

x86_64 시스템에서 4MB 크기 HugePageSize 변경 불가.

HugePage 는 Linux 의 기본 메모리 페이지 크기인 4K(4096) 가 아닌 더 큰 페이지를 사용하도록함으로서 잦은 메모리 액세스를 줄여 자원 소모를 줄이게 해준다. 최신의 Linux 는 전부 이것을 지원하며 다음과 같이 확인 할 수 있다.

기본 메모리 페이지는 Hugepagesize 인 2MB(2048kb) 임을 확인할 수 있다. 그런데, 이 메모리 페이지 크기를 바꿀 수 있지 않을까? 결론부터 말하면 불가능하다. 이 Hugepagesize 는 CPU 지원에 의존한다. 2MB – cpu에 ‘pse’ 가 지원되면 된다. 1G – cpu 가 ‘pdpe1gb’ 가 지원되면 된다. 최신의 […]