반응형

작성일자 : 2020.09.12

환경 : CentOS, BASH Shell, Crontab

 

목표 :

  특정 경로의 생성된지 일정기간 이상 지난 파일(로그)들을 자동으로 삭제 

 

시나리오 :

  위의 목표를 수행하는 쉘 스크립트 생성해 데일리로 수행하도록 크론탭에 등록

 

  

1. 스크립트 작성

 

- deleteExpireFile.sh

 

#!/bin/bash

# ---------- Custom Config Option ----------

path="/myPath/myLogDirectory"
expire_days=30

# -----------------------------------------------


echo "Start deleteExpireFile.sh"
find ${path}/* -type f -mtime +${expire_days} -exec rm -f {} \;

echo "End deleteExpireFile.sh"

 

* find /path/* : /path 아래 모든 파일 검색

* -type f : 디렉토리는 제외하고 파일 타입만 검색하는 옵션

* -mtime +30 : 서버 시간 기준으로부터 생성된지 30*24 시간 이상된 파일/디렉토리 검색하는 옵션

* find ... -exec ... {} : find 의 결과에 특정 명령을 수행 ( {} 에 결과값이 들어감 )

  

 

2. crontab 설정

 

 

- 크론탭 추가 명령어 입력 ( 확인 명령어 : crontab -l )

 

> crontab -e

 

 

 

 

- 매일 0 시 0 분 deleteExpireFile.sh 실행하도록 설정

 

0 0 * * * /scriptPath/deleteExpireFile.sh

 

* crontab 로그는 /var/log/cron 에서 확인 가능

 

 

 

 

------

 

+ 스크립트 작성 없이, crontab에 직접 스크립트 내용을 넣어도 된다.

ex) 0 0 * * * find /myPath/* -type -f -mtime +30 -exec rm -f {} \;

반응형

'Linux' 카테고리의 다른 글

[Linux] Apache, Tomcat 연동 (mod_proxy 사용)  (0) 2018.09.16
[Linux] 계정 별 JDK 설정  (4) 2018.09.16
[Linux] telnet 사용  (0) 2018.09.16
[Linux] Node.js 설치  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
반응형

[Linux] Apache, Tomcat 연동 (mod_proxy 사용)

 

작성일자 : 2018 09 13

환경 : AWS Linux AMI 2018, Apache 2.2, Tomcat 7

 

1. Apache proxy 모듈 사용 설정


1.1 컴파일 시 필요 모듈(proxy) 포함


 > ./configure --enable-proxy

 > make

 > make install


1.2 확인


> $APACHE_HOME/bin/ > ./apachectl -l



# 컴파일 시 포함하는 방법 외에 동적으로 적재도 가능( 해당 경로에 mod_proxy.so 파일 필요 )


> vi $APACHE_HOME/conf/httpd.conf



 

2. 연동 설정


> vi $APACHE_HOME/conf/httpd.conf

 

 

<VirtualHost *:80>

    ProxyRequests Off

    ProxyPreserveHost On

    <Proxy *>

        Order deny,allow

        Allow from all

    </Proxy>

    ProxyPass /proxy ‘URL’:’PORT’/

    ProxyPassReverse /proxy ‘URL’:’PORT’/

</VirtualHost>

 


3. 확인

 

# Apache IP로 접근했을 때 IP/proxy/ 이하 URL은 2. 설정에 의해 Tomcat 서버로 전달

 

Apache_IP/ 접근 시 Apache index 페이지 확인




Apache_IP/proxy/ 접근 시 Tomcat index 페이지 확인






접근 로그 확인


Apache 로그


 Tomcat 로그


일반 접근 시 Apache 서버로만 접근하며, /proxy 접근 시 Apache 서버로 접근 후 Apache 서버에서 Tomcat으로 전달


반응형

'Linux' 카테고리의 다른 글

[Linux] 자동 로그 삭제  (3) 2020.09.11
[Linux] 계정 별 JDK 설정  (4) 2018.09.16
[Linux] telnet 사용  (0) 2018.09.16
[Linux] Node.js 설치  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
반응형

[Linux] 계정 별 JDK 설정

 

작성일자 : 2018 08 23

환경 : CentOS 6.6 / JDK 1.8.0_181 / JDK 1.7.0_80

시나리오 : Root 계정을 제외한 사용자 계정 별 다른 버전의 JDK 설정

           jdk17 : jdk1.7 사용 계정

           jdk18 : jdk1.8 사용 계정

 

# JDK 1.7 버전은 EOS 이후 다운로드 시 로그인이 필요

# JDK 1.8 : wget을 이용하여 다운

# JDK 1.7 : 설치파일 직접 다운로드

 

1. 설치 파일 준비


$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz


# jdk 1.7 설치파일은 직접 다운로드

 


2. 압축 해제


$ tar zxvf jdk-7u80-linux-x64.tar.gz

$ tar zxvf jdk-8u181-linux-x64.tar.gz

 

 

* 경로 확인 주의

 

3. jdk17 계정 설정


[jdk17] $ vi ~/.bash_profile

 

..

..

export JAVA_HOME=/usr/java/jdk1.7.0_80

export PATH=$JAVA_HOME/bin:$PATH

..

..

 

[jdk17] $ source ~/.bash_profile

 


4. jdk18 계정 설정


[jdk18] $ vi ~/.bash_profile

 

..

..

export JAVA_HOME=/usr/java/jdk1.8.0_181

export PATH=$JAVA_HOME/bin:$PATH

..

..

 

[jdk18] $ source ~/.bash_profile

 


5. 확인


$ java -version

 



반응형

'Linux' 카테고리의 다른 글

[Linux] 자동 로그 삭제  (3) 2020.09.11
[Linux] Apache, Tomcat 연동 (mod_proxy 사용)  (0) 2018.09.16
[Linux] telnet 사용  (0) 2018.09.16
[Linux] Node.js 설치  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
반응형

[Linux] telnet 사용

작성일자 : 2018 09 14

환경 : CentOS 6.6 Minimum

 


1. 관련 패키지 설치


# Minimum시 기본 설치 X


> yum install xinetd

> yum install telnet

> yum install telnet-server

 


2. 설정


> vi /etc/xinetd.d

 

# disable = no 확인

 


3. 서비스 시작


service xinetd restart

 

# telnet은 xinetd에 의해서 서비스가 관리

 

 


반응형

'Linux' 카테고리의 다른 글

[Linux] Apache, Tomcat 연동 (mod_proxy 사용)  (0) 2018.09.16
[Linux] 계정 별 JDK 설정  (4) 2018.09.16
[Linux] Node.js 설치  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
[Linux] GIT Client 설정  (0) 2018.09.16
반응형

[Linux] Node.js 설치


작성날짜 : 2018 08 07

환경 : Node.js 8.11.3, CentOS 6.6

 

# Source Code로 설치 시 g++ 버전 4.9.4 이상 권고

# NVM : Node의 버전을 관리

# NPM : 패키지 관리

 

1. NVM 설치


$ wget https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh

 


2. 권한 설정


$ chmod 755 install.sh

 


3. 스크립트 실행


$ ./install.sh

 


4. 환경변수 반영


$ source ~/.bash_profile

 


5. Node 설치


$ nvm install v8.11.3

 

 

6. 확인


$ node –v

$ npm –v

 

 

참조

https://d2fault.github.io/2018/04/30/20180430-install-and-upgrade-nodejs-or-npm/


반응형

'Linux' 카테고리의 다른 글

[Linux] 계정 별 JDK 설정  (4) 2018.09.16
[Linux] telnet 사용  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
[Linux] GIT Client 설정  (0) 2018.09.16
[Linux] PostgreSQL 설정  (0) 2018.08.12
반응형

[Linux] MongoDB 설치

작성일자 : 2018 08 23

환경 : CentOS 6.6 / MongoDB 4..0.1

 

1. Repo 생성


$ vi /etc/yum.repos.d/mongodb.repo

 ..

[MongoDB]

name=MongoDB Repository

baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/

gpgcheck=0

enabled=1

 ..

 


2. 설치


$ yum install mongodb-org

 


3. 실행


$ /etc/init.d/mongod start

 


++


Collection == Table

Document == 행


비교


Insert

SQL : INSERT INTO table ("idx","item") VALUES("1","test")

Mongo DB : db.table.insert({_id:"1",item:"test"})


Select

SQL : SELECT * FROM table WHERE idx="1"

Mongo DB : db.table.find({_id:"1"})


Update

SQL : UPDATE table SET item="test2" where idx="1"

Mongo DB : db.table.update( {_id:"1"}, {$set :{ city:"test2" } } )


Delete

SQL : DELETE FROM table WHERE idx="1"

Mongo DB : db.table.remove({_id:"1"})



부팅 시 자동시작 설정 : chkconfig mongod on

실행 : /etc/init.d/mongod start

Ex )      

$ mongo

> use mydb;

> db.test.save( { a: 1 } )

> db.test.find()

  { "_id" : ObjectId("54fc2a4c71b56443ced99ba2"), "a" : 1 }


반응형

'Linux' 카테고리의 다른 글

[Linux] telnet 사용  (0) 2018.09.16
[Linux] Node.js 설치  (0) 2018.09.16
[Linux] GIT Client 설정  (0) 2018.09.16
[Linux] PostgreSQL 설정  (0) 2018.08.12
[Linux] GUI 환경 설정  (0) 2018.07.21
반응형

[Linux] GIT Client 설정

 

작성일자 : 20180822

환경 : CentOS 6.6, GIT 1.8.3

 

# CentOS 6.6에서 yum install git 명령어로 설치 시 1.7.1 버전이 설치 되며

# 해당 버전으로 git 사용 시 HTTP request Failed 에러 발생


 

1. 설치파일 다운로드

 

$ wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/git-1.8.3.1-1.sdl6.x86_64.rpm

$ wget http://springdale.math.ias.edu/data/puias/computational/6/x86_64/perl-Git-1.8.3.1-1.sdl6.noarch.rpm 

 


2. 기존 Git 삭제(존재 시)


$ yum remove git -y

 


3. 설치


$ yum localinstall git-*.rpm perl-Git-*.noarch.rpm -y

 

# OS Minimal로 설치 후 git 1.8 버전으로 git 사용 시 SSL connection 에러 발생

 

아래 명령어 입력


$ yum update -y nss curl

 


4. 확인


$ git clone "GIT_Repository_URL"

 




+++

Commit 기본 명령어
git add -A
git commit -m "Comment"
git push origin master


반응형

'Linux' 카테고리의 다른 글

[Linux] Node.js 설치  (0) 2018.09.16
[Linux] MongoDB 설치  (0) 2018.09.16
[Linux] PostgreSQL 설정  (0) 2018.08.12
[Linux] GUI 환경 설정  (0) 2018.07.21
[Linux] Maven 설치  (0) 2018.07.15
반응형

계정 관련 설정 파일


작성일자 : 2018년 08월 18일

환경 : Amazon Linux AMI 2018.03


1. /etc/passwd

사용자에 대한 기본적인 설정 내지는 정보들이 들어 있다. 원래 이 파일에는 사용자의 패스워드에 대한 사항도 함께 저장되는데, shadow 프로그램에 의해서 암호화되어 기록된다. 다음은 Amazon Linuxpasswd 파일의 예제이다.



이 예에서 한 행이 콜론(:) 으로 구분된 7개의 필드로 구성되는 것을 알 수 있다. 각 필드의 의미는 다음과 같다.

 

ec2-user:x:500:500:EC2 Edfault User:/home/ec2-user:/bin/bash

 

ec2-user사용자의 사용자명(username)

x사용자의 패스워드로 암호화되어 있으며 shadow 패스워드를 사용하는 경우에는 x로 표시

500 사용자의 UID

500사용자의 GID로 이 필드는 /etc/group 파일에 등록 되 있는 값으로 설정

EC2 Default User사용자에 대해 설명하는 주석

/home/ec2-user사용자의 홈 디렉토리

/bin/bash사용자의 기본사용 쉘

 


 

2. /etc/shadow

passwd의 보안 문제를 해결하기 위해 나온 것이 shadow이다. /etc/passwd 파일은 기본적으로 사용자의 패스워드가 드러나게 되어 있다. 이것이 해커들에게 힌트를 줄 수도 있으므로 좀 더 보안성을 높이기 위해 shadow 패스워드를 사용한다. , /etc/shadow 파일은 루트 사용자만이 읽기 권한을 가지고 있으므로 좀 더 안전하다. Shadow 패스워드는 /etc/passwd 파일이 모든 사용자가 읽기 권한을 가지는 점을 보완하기 위해 만들어진 것으로, 사용자의 패스워드는 shadow 파일에 넣어두고 /etc/passwd 에서는 패스워드를 x로만 표현



ec2-user:!!:17748:0:99999:7:::

 

ec2-user사용자의 사용자명(username) : passwd 파일의 사용자명과 같음

!!사용자의 암호화 된 패스워드로 이중느낌표(!!)의 경우에는 비밀번호의 미설정을 의미하고 에스터리스크(*)의 경우에는 로그인 불가 계정임을 의미

17748최종 패스워드 변경 일로 1970년 1월 1일 이후 부터의 일자수로 계산

0패스워드 변경 최소 일수로 패스워드를 한 번 변경하고 나면 최소 며칠 이후에 다시 설정할 수 있는가를 설정하는 것으로 0이면 아무 때나 다시 재설      정할 수 있다는 것을 의미

99999패스워드 변경 유예기간을 의미하며 설정한 패스워드가 며칠까지 유효한지를 결정하는 것

7패스워드 변경 경고일 수를 의미하며 설정된 숫자의 날 만큼 패스워드가 만료되기 전부터 로그인 시에 안내 메시지를 출력

 : 패스워드 변경 비활성화 기간 – 패스워드가 유효기간 종료 이후에 계정 비활성화될 일 수를 의미 (미설정)

 : 계정 사용 종료일 – 계정 자체의 종료일자를 설정하는 필드로 패스워드의 종료일과는 별개(미설정)

 : 예약 필드

 

 


3. /etc/group

group의 설정 파일은 /etc/group이다. 관리자가 특정 그룹을 지정하지 않고 사용자를 생성하면 사용자명과 동일한 그룹이 생성되어 이 파일에 기록된다. 만약 관리자가 사용자를 기존에 생성된 그룹에 포함시키면 이 파일에 해당 내용만 업데이트되어 기록된다. 그리고 관리자는 groupadd <group-name>을 실행하여 새로운 그룹을 생서알 수 있는데, 생성된 그룹은 /etc/group 파일에 저장된다.

 


ec2-user:x:500:


ec2-user그룹의 그룹명

x그룹을 위한 패스워드 필드로서 보통은 사용 ㅇ나함

500그룹 생성시에 500부터 차례로 부여되는 그룹의 GID. 만약 -r옵션을 붙이면 499번 이하의 역순으          로 할당되지 않은 번호를 부여

 : 그룹에 속한 사용자를 기술하며 쉼표(,)로 구분해당 예시에서는 본인 제외 사용자 없음


반응형
반응형

[Linux] PostgreSQL 설정

 

작성일자 : 2018 07 31

환경 : PostgreSQL 9.2.14, CentOS 6.6

시나리오

DB용 서버(CentOS) DB(PostgreSQL) 설치 후 외부(Window)에서 pgAdmin 툴을 사용해 접근

구성 :

DB 서비스 계정 : dbadmin

DB 설치 위치 : /db/pgsql

DB 데이터 위치 : /db/data

 



1. 계정 설정


1-1. 서비스용 계정 생성


$ adduser dbadmin

$ passwd dbadmin

 


1-.2 서비스용 계정 환경변수 설정


$ su - dbadmin

$ vi ~/.bash_profile

 

..

POSTGRES_HOME=/db/pgsql

export POSTGRES_HOME

# PostgreSQL Home Path

 

 

PGDATA=/db/data

export PGDATA

# PostgreSQL Data Path

 

LD_LIBRARY_PATH=/home/dbadmin/pgsql/lib 

export LD_LIBRARY_PATH

# PostgreSQL Library Path

 

 

PATH=$POSTGRES_HOME/bin:$PATH

export PATH

 

..

 

 


1-3. 환경변수 적용


$ source ~/.bash_profile

 



2. 설치 전 설정


2.1 관련 패키지 설치


$ su - root

$ yum -y install gcc gcc-c++ make autoconf wget readline readline-devel zlib zlib-devel openssl openssl-devel gettext gettext-devel python python-devel

 


2.2 설치 파일 다운로드


$ wget http://ftp.postgresql.org/pub/source/v9.2.14/postgresql-9.2.14.tar.gz

 



2.3 소유자 변경


$ chown dbadmin.dbadmin postgresql-9.2.14.tar.gz

$ chown dbadmin.dbadmin /db


 

2.4 압축 해제


$ tar –zxvf postgresql-9.2.14.tar.gz

$ cd postgresql-9.2.14

 


 

2.5 설정


$ ./configure --prefix=/db/pgsql

# --prefix : 설치 경로 설정

 

 


3. 설치

 

# DB 설치는 Root가 아닌 환경변수 설정완료 및 파일 소유 계정으로 설치 권고


$ make

 


 

$ make check

 



$ make install

 




 

4. 설치 후 설정


4.1 initdb 실행



$ POSTGRES_HOME/bin > ./initdb

# 시스템 카달로그를 포함하고 있는 Postgres 기본 DB를 생성하는 명령어

# $PGDATA = /db/data

 


 


4.2 외부 접근 허용

 

$ vi $PGDATA/pg_hba.conf

..

host     all        all        0.0.0.0/0           md5

..

 

# 기존 host 라인 삭제 및 새로운 라인 추가

 


 

$ vi $PGDATA/postgresql.conf

..

listen_addresses = ‘*’

..

 

# 기존 listen_addresses 옵션 수정

 




5. 실행 및 확인


$POSTGRES_HOME/bin > ./pg_ctl start

 

 


 


 

계정 비밀번호 설정


POSTGRES_HOME/bin > ./psql postgres

postgres=# alter user dbadmin with password ‘dbadmin’;

 

 


6. 외부 접근 확인


pgAdmin4에서 연결 확인

 


Host name/address : DB서버 IP

Default Port : 5432

Default Database : postgres

Username, Password 서비스 계정 및 설정한 패스워드

 


 

 

+++

psql 명령어만 사용 시 자동으로 계정명의 데이터베이스에 접근하기 때문에

postgres 계정을 서비스계정으로 사용하면 psql만으로 초기 접근 가능

 

psql 종료

ctrl+D

 

데이터베이스 생성

$ psql postgres

Postgres=# create database ‘database_name’;

 

데이터베이스 확인

$ psql postgres

\l

 

데이터베이스 사용자 확인

$ psql postgres

\du

 

데이터베이스 사용자 생성, 수정, 삭제

create user ‘ID’ with password ‘PASSWORD’;

alter user ‘ID’ with password ‘PASSWORD’;

drop user ‘ID’;


반응형

'Linux' 카테고리의 다른 글

[Linux] MongoDB 설치  (0) 2018.09.16
[Linux] GIT Client 설정  (0) 2018.09.16
[Linux] GUI 환경 설정  (0) 2018.07.21
[Linux] Maven 설치  (0) 2018.07.15
[Linux] Tomcat 설치  (0) 2018.07.03
반응형

[Linux] GUI 환경 설정

 



환경 :

Server : CentOS 6.3 (Minimal), X Window, GNOME

Client : Window, X manager 6

 


Server 설정



1. 관련 패키지 설치


$ yum install gdm

$ yum groupinstall “Desktop”

 



2. 설정


gdm 설정


$ vi /etc/gdm/custom.conf

 

[security]

DisallowTCP=false

AllowRemoteRoot=true

[xdmcp]

Enable=true

 


Run Level 설정


$ init 3

$ init 5

 


Run Level 설정 재시작 시 자동 적용


vi /etc/inittab

 

# id:3:initdefault

id:5:initdefault:

 



3. gdm 동작 확인

 

$ ps -ef | grep gdm



 

$ netstat –ano | grep 177




 

Client 설정


X manager 설치

https://www.netsarang.co.kr/download/main.html



 

설치파일 실행 후 다음만으로 설치 가능

 

X manager > 파일 > 새로 만들기 > XDMCP 세션(X) 클릭





생성한 세션 더블클릭



 

로그인




반응형

'Linux' 카테고리의 다른 글

[Linux] GIT Client 설정  (0) 2018.09.16
[Linux] PostgreSQL 설정  (0) 2018.08.12
[Linux] Maven 설치  (0) 2018.07.15
[Linux] Tomcat 설치  (0) 2018.07.03
[Linux] Apache 설치  (0) 2018.07.03

+ Recent posts