반응형

 

edquota 란 ?

계정 별 공간, 파일 개수 등을 할당하는 것

 

edquota 사용법

# edquota [option] [계정]

 

-u (--user) : 사용자에 대한 쿼터 설정 옵션

-g (--group) : 그룹에 대한 쿼터 설정 옵션

-t (--edit-period) : soft limit 를 초과한 후부터 적용되는 시간제한 설정 옵션

-p (--project) : 프로젝트에 대한 쿼터 설정 옵션

-f (--filesystem) : 정해진 파일시스템에서만 기능 수행 옵션(기본은 전체 파일 시스템)

 

 

Filesystem

파일 시스템은 quota가 설정되더 있는 장치 파티션을 나타낸다.

 

blocks

블럭은 해당 유저가 사용중인 용량을 나타낸다.(기본 단위 KB)

 

hard (blocks 기준)

앞의 블럭을 기준으로 해당 유저가 사용할 수 있는 최대 용량을 나타낸다. (기본 단위 KB)

 

inodes

현재 사용중인 I-node 수 제한을 나타낸다.(파일, 디렉토리 갯수의미)

 

hard ( inodes 기준)

앞의 inodes 를 기준으로 파일이나 디렉토리 생성할 수 있는 갯수를 의미

 

 

repquota 란 ?

: 사용중인 쿼터 확인

home 디렉토리에서 사용중인 용량 및 inode 수 확인

 

 

edquota 로 설정한 hard 용량 확인

 

 

 

반응형
반응형

 

pam_tall2 란 ?

로그인 횟수 및 계정 잠금 설정 방법으로 외부로부터 무한정 로그인 시도를 방지 할 수 있다.

 

pam_tall2 설정 방법

# vi /etc/pam.d/password-auth

deny = 5 -> 실패횟수

unlock_time :120(초) -> 120초간 로그인 시도 불가

 

 

▶ 전체 계정 패스워드 실패 확인

 

▶ 특정 계정 패스워드 실패 획수 확인

 

 

▶ 특정 계정 패스워드 실패 횟수 초기화

 

 

 

 

반응형
반응형

 

chage 란 ?

- 사용자의 패스워드 만기 정보를 변경 및 설정하는 명령어(root 권한을 가진 사용자만 사용 가능)

 

● 옵션

-l : 특정 계정의 정보 확인

-d : 최근 패스워드 변경 날짜 확인

-E : 계정 만료일을 설정

-m : 패스워드 최소 의무 사용일 수를 지정

-M : 패스워드 최종 변경일로부터 패스워드 변경 없이 사용할 수 있는 최대 일수 설정

-I : 패스워드 만료일까지 패스워드를 바꾸지 않으면 계정이 만료되어 비활성화 설정되는 옵션

-W : 패스워드 만료 몇일 전부터 사용자에게 경고 메시지 발송 설정

 

chage -l [계정]

 

 

 

반응형
반응형

 

chattr이란 ?

사용자가 파일의 특정 속성을 설정할 수 있도록 하는 명령어

 

 

● 옵션

 

 

● 예시

 

 

ifcfg-eth1 파일의 부여된 속성 확인

 

ifcfg-eth1 파일에 변경, 삭제 불가 속성 부여

 

변경된 파일 속성 확인

 

파일 이동 및 파일 삭제 불가

 

 

 

 

반응형
반응형

 

screen 이란 ?

- Linux에서 독립적으로 동작하는 가상 터미널을 띄워주는 것을 의미(백그라운드로 동작하는 가상 터미널)

- 오래걸리는 작업이나 세션을 종료 후에도 작업이 진행되어야 할때 사용 용이

 

 

● screen 설치

# yum install screen

 

 

 

● screen 생성

# screen -S [name]

 

 

 

● 세션 종료 방법

ctrl + a + d

screen 종료 시 나오는 화면

 

 

 

 

● screen 목록 확인

# screen -ls

Attached 는 현재 사용중인 screen을 나타냄

 

 

● screen 재연결

screen -r [name]

 

 

 

● 사용중인 screen 삭제

# screen -X -S [SCREENID] quit

 

a 라는 이름을 가진 screen 삭제

 

 

 

 

반응형
반응형

 

● goaccess 란?

웹 서버 로그 분석기로 터미널 화면과 html 파일 등을 통한 웹 화면으로 분석결과를 실시간으로 볼 수 있다.

 

goaccess 설치(소스 설치)

# yum install -y ncurses-devel glib2-devel GeoIP-devel

# cd /usr/local/src

# wget https://tar.goaccess.io/goaccess-1.3.tar.gz

# tar -xzvf goaccess-1.3.tar.gz

# cd goaccess-1.3/

# ./configure --enable-utf8 --enable-geoip=legacy

# make; make install

 

 

 goaccess.conf 파일 수정

- 각 웹서버에 맞는 로그 포멧 설정(apache 사용)

13, 36, 65 주석 해제

★ 65번줄 로그 포멧은 서버에 맞게 수정하였으므로 기존과 다름

log-format "%v %P %h %l %u [%d:%t %^] \"%r\" %>s %b \"%{User-Agent}i\""

 

▶ 오류 발생(1)

html 형식으로 추출하려고 했으나 오류 발생

해결방법

cp -pv /usr/local/etc/goaccess/goaccess.conf /usr/local/etc/

 

 

▶ 오류 발생(2)

※위 로그 발생 시 로그 포멧형시기 맞지 않아 발생하는 문제로 로그 포맷 확인 및 수정 필요(goaccess.conf 의 65번째 줄)

 

 

 

 shell 에서 확인

# /usr/local/bin/goaccess -f /usr/local/apache/logs/access_log

 

 

 

▶ html 파일로 확인

# /usr/local/bin/goaccess -f /usr/local/apache/logs/access_log -a > /usr/local/src/a.html

하루 고유 방문자 수

 

요청된 파일(URL)

 

 

정적 요청

 

 

URL을 찾을 수 없음(404S)

 

 

방문자 호스트 이름 및 IPS

 

 

운영체제

 

 

브라우저

 

 

시간 분포

 

 

가상 호스트

 

 

참조 사이트

 

 

HTTP 상태 코드

 

 

접속 국가

 

 

 

반응형
반응형

 

1. softraid 구성 확인

 

cat /proc/mdstat

 

Personalities : [raid1]

md3 : active raid1 sdb4[1] sda5[0]

4190208 blocks super 1.1 [2/2] [UU]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md0 : active raid1 sdb1[1] sda1[0]

511936 blocks super 1.0 [2/2] [UU]

 

md4 : active raid1 sdb5[1] sda6[0]

946754560 blocks super 1.1 [2/2] [UU]

bitmap: 5/8 pages [20KB], 65536KB chunk

 

md1 : active raid1 sdb2[1] sda2[0]

20955136 blocks super 1.1 [2/2] [UU]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md2 : active raid1 sdb3[1] sda3[0]

 

4190208 blocks super 1.1 [2/2] [UU]

 

 

2. 레이드 해지

 

mdadm /dev/md3 -f /dev/sdb5

mdadm /dev/md0 -f /dev/sdb1

mdadm /dev/md4 -f /dev/sdb6

mdadm /dev/md2 -f /dev/sdb3

mdadm /dev/md1 -f /dev/sdb2

 

md3 : active raid1 sda5[0] sdb5[1](F)

4190208 blocks super 1.1 [2/1] [U_]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md0 : active raid1 sda1[0] sdb1[1](F)

511936 blocks super 1.0 [2/1] [U_]

 

md4 : active raid1 sda6[0] sdb6[1](F)

946754560 blocks super 1.1 [2/1] [U_]

bitmap: 5/8 pages [20KB], 65536KB chunk

 

md2 : active raid1 sdb3[1](F) sda3[0]

4190208 blocks super 1.1 [2/1] [U_]

 

md1 : active raid1 sdb2[1](F) sda2[0]

20955136 blocks super 1.1 [2/1] [U_]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

 

 

3. 레이드 삭제

 

mdadm /dev/md3 -r /dev/sdb5

mdadm /dev/md0 -r /dev/sdb1

mdadm /dev/md4 -r /dev/sdb6

mdadm /dev/md2 -r /dev/sdb3

mdadm /dev/md1 -r /dev/sdb2

 

Personalities : [raid1]

md3 : active raid1 sda5[0]

4190208 blocks super 1.1 [2/1] [U_]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md0 : active raid1 sda1[0]

511936 blocks super 1.0 [2/1] [U_]

 

md4 : active raid1 sda6[0]

946754560 blocks super 1.1 [2/1] [U_]

bitmap: 5/8 pages [20KB], 65536KB chunk

 

md2 : active raid1 sda3[0]

4190208 blocks super 1.1 [2/1] [U_]

 

md1 : active raid1 sda2[0]

20955136 blocks super 1.1 [2/1] [U_]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

 

4. 서버 셧다운 및 디스크 교체

 

5. 서버 부팅

 

6. 파티션 정보 복사

sfdisk -d /dev/sda > sfdisk.sdb

sfdisk -f /dev/sdb < fdisk.sdb

 

sfdisk -d /dev/sda | sfdisk -f /dev/sdb

(sda -> sdb 쪽으로 복사)

 

2T 이상 (sgdisk)

2T 이하 (sfdisk)

 

 

7. 레이드 추가

 

mdadm /dev/md3 -a /dev/sdb5

mdadm /dev/md0 -a /dev/sdb1

mdadm /dev/md4 -a /dev/sdb6

mdadm /dev/md2 -a /dev/sdb3

mdadm /dev/md1 -a /dev/sdb2

 

8. 확인

 

cat /proc/mdstat

 

Personalities : [raid1]

md3 : active raid1 sdb5[2] sda5[0]

4190208 blocks super 1.1 [2/2] [UU]

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md0 : active raid1 sdb1[2] sda1[0]

511936 blocks super 1.0 [2/2] [UU]

 

md4 : active raid1 sdb6[2] sda6[0]

946754560 blocks super 1.1 [2/1] [U_]

[====>................] recovery = 23.2% (220274048/946754560) finish=154.8min speed=78203K/sec

bitmap: 4/8 pages [16KB], 65536KB chunk

 

md1 : active raid1 sdb2[2] sda2[0]

20955136 blocks super 1.1 [2/1] [U_]

resync=DELAYED

bitmap: 1/1 pages [4KB], 65536KB chunk

 

md2 : active raid1 sdb3[2] sda3[0]

 

4190208 blocks super 1.1 [2/2] [UU]

 

반응형
반응형

 

테이블만 복사(데이터 포함 X)

create table if not exists '복사 테이블' like '원본 테이블';

 

ex)

create table if not exists vd_stock_history_20220208 like vd_stock_history;

 

 

 

데이터 포함 복사(데이터 포함 O)

create table if not exists '복사 테이블' select * from '원본 테이블';

 

ex)

create table if not exists g5_write_M5_3_2 select * from g5_write_M5_3;

 

반응형
반응형

 

1.기본 Query 사용방법 터득

 

root 계정으로 로그인

 

TESTDB 라는 데이터베이스 생성됨

 

위에서 만든 TESTDB라는 데이터베이스 삭제됨

 

information_schema 데이터베이스 사용

 

데이터베이스 안에 테이블 목록을 보여줌

 

files 테이블의 구조 확인

 

 

테이블 생성
 

 

테이블안 칼럼의 데이터 추가

 

 

테이블 데이터 검색 (이름으로 검색)

 

 

테이블 데이터 변경하기 /  테이블 안에 모든 내용보기

 

테이블에 있는 레코드 삭제(name = PSY )

 

 

 

 

2. mysql processlist(실시간 세션)확인

mysql 내에서 확인

 

콘솔에서 확인

 

 

3. mysql root 패스워드 분실시 해결방법

 

mysql 설정 파일에 입력(mysql 로그인시 패스워드 묻지 않음)

 

 

설정 변경 하였으므로 재시작

 

mysql root 계정으로 로그인

 

 

mysql 테이블로 접근해서 패스워드 교체

 

변경 후 변경사항 즉시 적용

 

 

위의 skip-grant-tables 지움

 

 

설정 변경했으니 재시작

 

 

바꾼 비밀번호로 로그인

 

 

 

4. slow Query logging 설정 방법 및 로그 보는 법

slow Query loging : sql 질의 요청을 했는데 응답이 오래걸릴 경우 이 부분에 대해 log를 남기는것

 

슬로우 쿼리 로그가 OFF 인것을 확인

 

slow_query_log 의 값을 1로 하면 ON, 0이면 OFF

slow_query_log_file  log 파일이 생성 될 경로

long_query_time=3 은 query실행시간이 3초 이상인 query 에 대해 log 를 남기겠다는 설정

 

 

설정 변경했으니 재시작

 

 

mysql log용 디렉토리 생성 후 디렉토리 접근 권한 설정

 

mysql 접속 후 slow_query ON 확인

 

 

mysql 접속 후 고의로 query 지연 시킴

 

 

로그파일이 생성될 경로에 가서 확인 (로그파일 생성됨)

 

 

로그파일 자세히 보기

 

 

5. mysql dump 사용법

 

mysql dump  ?

데이터베이스를 백업하는 데 가장 자주 사용되므로 데이터 손실시 내용을 복원 할 수 있음

hwlee 계정의 test 테이블 모든 내용 백업

 

 

test.sql 백업 파일 생김

그 외 사용방법

mysqldump -u root -p –all-databases > alldatabases.sql

: 모든 데이터를 백업 함

 

mysqldump -u root -p –all-databases –-no-data> allDDL.sql

: DDL 정보만 백업 함

 

mysqldump -u root -p –all-databases [DB] > DB.sql

: 특정 databases 를 백업 함

 

 

 

 

6. my.cnf 설정 파일 파악

server-id : MySQL 고유식별값

datadir : 데이터파일이 저장되는 디렉토리

 

innodb_buffer_pool_size : nnoDB 스토리지 엔진의 버퍼풀은 디스크의 데이터를 메모리에 캐싱함과 동시에 데이터의 변경을 버퍼링하는 역할

 

innodb_data_home_dir = /var/lib/mysql/idb

: innodb 홈디렉터리 경로를 설정 합니다

 

innodb_data_file_path = ibdata1:256M:autoextend:max:2000M

: 데이터 파일 옵션을 설정 합니다. 파일명 : 초기용량 : 자동증가 : 최대사이즈

 

innodb_log_arch_dir = /var/lib/mysql/idb

: 로그 디렉터리 정보

 

innodb_buffer_pool_size = 2G

: innodb에서 사용할 메모리 양으로 전체 메모리의 50~80% 정도로 설정

 

innodb_log_file_size = 512M

: 로그 파일 사이즈로 버퍼풀 사이즈의 25% 정도로 설정

 

innodb_log_buffer_size = 2M

: 로그 버퍼 사이즈로 성능에 맞춰 로그를 기록하는 경우 크게 설정

 

innodb_flush_log_at_trx_commit = 2

: 커밋 로그 옵션으로 성능 최적화로 1분마다 저장되도록 2로 설정

 

innodb_flush_method = O_DSYNC

: 성능을 위해 메모리에서 직접 액세스 하도록 설정

 

log-bin : 로그파일명을 정함

sort_buffer_size : 인덱스를 사용할 수 없는 정렬이나 그룹핑에 메모리 공간을 얼마나 할당할지를 정함

 

port = 3306

: DB

 

socket : 소켓파일 경로(로컬서버 접속에 사용)

 

log-warnings = 3

: 비활성화

 

log_output = FILE,TABLE

: 로그 기록 유형

 

log-error

: 에러 로그파일 경로

 

general_log = OFF

: 제너럴 로그 비활성화 ( DB에서 일어나는 모든 작업에 대한 로그를 남기게 됨)

 

general_log_file

:제너럴 로그 파일 경로

 

slow_query_log =on

: 슬로 쿼리 활성화

 

long_query_time

: 슬로 쿼리 기준 시간

 

log_queries_not_using_indexes = OFF

: 인덱스를 사용하지 않은 쿼리 기록부여

 

slow_query_log_file

: 슬로 쿼리 로그 파일 경로

 

 

 

 

7. mysql global 설정 확인

 

global 설정 확인

 

세션 환경변수 확인

 

 

LIKE 조건으로 환경변수 찾기

 

8. mysql 보안설정

skip-networking : 외부 네트워킹 기능 제한

port=3306 : 기본 포트 3306를 변경하여 무분별한 공격시도 차단

set-vgariable = local-infile =0 : 사용자들이 내부 설정 파일 및 기타 파일에 대한 정보를 얻지 못하도록 차단

--skip-show-database : 사용자에게만 show databases 권한 부여

log = /var/log/mysql.log : 로그 활성화

 

mysql_secure_installaion 설정에서 변경

root 계정 이름 변경 후 비밀번호 변경

test 데이터 베이스 삭제 (test DB는 누구나 접근 가능한 데이터 베이스)

익명 계정이나 사용하지 않는 계정 삭제(보안을 위해 삭제)

 

 

% 는 localhost가 아닌 원격에서 접속이 가능함

 

 

SELECT/UPDATE/INSERT/DELETE 등의 데이터 베이스 권한 조정

 

 

 

반응형
반응형

 

MYSQL - 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템

- 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템

 

 

1. mysql 컴파일 설치

 mysql 5.5 버전 부터는 ./configure 가 아닌 cmake를 통해 컴파일 진행

 

mysql 설치에 앞서 cmake 설치

 

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

bootstrap script 파일 실행

 

 

cmake 설치

 

웹에서 mysql 다운로드

 

현재 작업 중인 위치에서 새로운 디렉터리를 생성하고 그안에 압축을 해제

 

mysql-5.6.30 디렉토리에 들어와서 cmake 실행하여 Makefile 을 만듦

컴파일 설명

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

mysql 설치할 디렉토리

 

-DMYSQL_DATADIR=/usr/local/mysql/data \

db설치(data폴더)할 디렉토리

 

-DDEFAULT_CHARSET=utf8 \

mysql 서버의 문자셋

 

-DDEFAULT_COLLATION=utf8_general_ci \

db의 문자셋

 

-DWITH_EXTRA_CHARSETS=all \

추가로 지원할 문자셋

 

-DENABLED_LOCAL_INFILE=1 \

local_infile변수 사용가능여부, 텍스트 파일의 데이터를 특정 테이블에 저장하는 변수

 

-DMYSQL_USER=mysql \

mysql유저를

 

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

스토리지 엔진, default innodb

 

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

스토리지 엔진

 

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

스토리지 엔진

 

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

스토리지 엔진

 

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

mysql 소켓 디렉토리

 

-DMYSQL_TCP_PORT=3306

mysql 포트번호, default 3306

 

Makefile을 읽어들여 object, library, binary 파일을 만듦

 

만들어진 binary, library파일을 시스템(/usr/lib, /usr/bin, /usr/local/lib, /usr/local/bin) 에 설치

 

 

mysql 그룹 및 계정 만들기

groupadd mysql

useradd -g mysql mysql

 

mysql 그룹/계정 권한주기
DB 생성
mysql 설정파일 복사 (기존 파일 덮어 씌움)

 

mysql 데몬 복사 , 권한 설정

 

mysql 디렉토리 설정

--basedir : MySQL이 설치되어 있는 디렉토리 하부에 있는 베이스 디렉토리를 mysqld에게 알려주고 그곳에서 데이터 디렉토리를 찾도록 하는 옵션

--datadir : 데이터 디렉토리의 위치를 확정적으로 지정하기 위한 옵션

 

 

어느 디렉토리에서나 mysql을 실행 할 수 있도록 환경변수 등록

 

설정 적용 및 mysql 데몬 실행(성공)

 

mysql root 계정 비밀번호 변경, 접속 테스트

 

리눅스 시작시 mysql 구동 되도록 설정

 

S로 시작시 활성화 /&nbsp; K로 시작시 비활성화

 

2. mysql_secure_installation 설정 (보안)

현재 root 비밀번호 입력

root 패스워드 변경 YES/NO

익명 사용자 삭제 YES/NO

원격 접속 허용 YES/NO

test DB 삭제 YES/NO

수정한 내용 적용

테이블 (수정한 내용) reload YES/NO

 

 

 

 

 

반응형

+ Recent posts