반응형

NTP(Network Time Protocol) 는 PC와 PC간의 (혹은 server-client) 시간을 동기화 하기위해 사용되는 Protocol 입니다.
시간 동기화를 하는 방법에는 클라이언트 PC가 직접 외부 시간에 클라이언트가 동기화 할 수도 있고,
직접 NTP 서버를 구축해 클라이언트가 서버의 시간에 동기화 하도록 구성할 수도 있습니다.
이번 포스팅 에서는 인터넷이 가능한 1개의 서버에서 NTP 서버를 구축하고,
인터넷이 불가능한 클라이언트가 이 NTP서버에 시간을 동기화 할 수 있도록 구성해 보겠습니다.

 

1. NTP 서버 구성

NTP 서버에서 시간 동기화를 위한 패키지 (chrony)를 설치합니다.

최소사양 설치가 아니라면 기본적으로 설치가 되어 있습니다.

인터넷이 되는 환경이라면 yum install 을 통해 설치해야 하며,

인터넷이 불가능한 환경이라면 local yum 환경을 만들어 설치해야 합니다.

local yum 환경은 지난번 포스팅한 내용을 참고하시면 됩니다.

 

NTP 서버가 될 서버에서 작업 합니다.
아래와 같이 기존 NTP 풀은 비활성화 하고 , 외부로 부터 대한민국 표준시를 받아와야 하므로 kr 서버로 표준시를 동기화 하도록 설정합니다.


NTP 서비스 관련 방화벽을 허용합니다.

 

chronyd 데몬을 재시작 후 sources 명령을 통해 동기화되고 있음을 확인할 수 있습니다.



NTP 클라이언트 설정
클라이언트 역시 chrony 데몬이 설치되어 있어야 합니다.
마찬가지로 인터넷이 되지 않기 때문에 local yum을 통해 설치하거나 패키지를 가져와 설치 합니다.


클라이언트는 앞서 구축한 ntp 서버와 시간을 동기화 할 예정이므로, 우선 서버 호스트명을 지정합니다.
vi /etc/hosts
192.168.0.6 ntp-server



클라이언트에서도 마찬가지로 기존 chrony 시간 동기화 풀은 주석 처리하며,
앞서 설정한 ntp-server로 시간 동기화 서버를 지정 합니다.



데몬 재시작 후, 소스를 확인해 보면 ntp-server로 잡힌 것을 확인할 수 있습니다.

반응형
반응형

linux Contos7.x 에서 티밍(teaming) 구성 하는 방법

teaming 은 windows server 에서 네트워크 이중화를 위해 사용하는 프로그램 이지만 linux7 버전부터 teaming 을 구성할 수 있다.

bonding 을 기능적으로 개선하기 위해 teaming 이 새로 생겼다고 한다.

teaming 이 bonding 보다 여러가지 기능이 추가되었다고 한다.

 

#테스트 환경#

VMware 에 설치된 Centos7.9 64Bit 에 네트워크를 추가 하였다.

Network Adapter 2 를 생성해 동일하게 Bridged 로 연결 하였다.

 

Network Adapter 2 생성 전

 

Network Adapter 2 생성 후 ens36 이 생성 되었다.

 

GUI 화면으로 확인

 

추가 후 설정에서 이름을 변경 해주어야 한다.

 

 

이름을 변경하자 해당 경로에 ifcfg-ens36 이 생성 되었다.

 

 

#nmcli device status

디바이스들의 이름 , type , state , connection 의 정보를 확인.

 

 

#nmcli connection show

네트워크 connection 상태를 확인한다.

 

 

#nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'

activebackup mode 로 티밍 인터페이스를 생성 , 그리고 이름은 team0 으로 설정한다.

 

 

#설정가능 mode#
activebackup : failover runner 로 데이터 전송을 위한 링크 변경을 감시하고 active port를 선택한다.
loadbalance : 트래픽을 모니터링 하고 패킷 전송에 대한 포트를 선택할 때 완벽한 균형에 도달하기 위해 hash function 을 사용한다.
lacp : 802.3ad 링크 aggregation control protocol을 구현한다. loadbalance runnerdhk 동일한 전송 포트를 선택할 수 있다.
broadcast : simple 한 runner 로 모든 포트로 부터 각각 패킷을 전송한다.
roundrobin : simple 한 runner 로 각 포트에서 라운드 로빈 방식으로 각각의 패킷을 전송한다.

 

생성 후 확인.

 

 

하기 명령어로 ens33 과 ens36 을 slave interface 로 추가해주고 team0 interface 를 master로 가르킨다.

#nmcli connection add con-name team0-port1 type team-slave ifname ens33 master team0

#nmcli connection add con-name team0-port2 type team-slave ifname ens36 master team0

 

 

device 및 connection 확인.

 

#아이피할당#

#nmcli connection modify team0 ipv4.addresses 192.168.0.210/24 ipv4.method manual

 

#team0-slave 연결#

#nmcli con up team0-port1
#nmcli con up team0-port2
#nmcli con up team0
#nmcli con reload

 

#teaming상태 확인#

active port 가 ens33 인걸 확인할 수 있다.

 

하기 명령어로도 확인 가능 하다.

 

 

#ip 확인#

#ifconfig

 

#연결확인#

현재 active 상태인 ens33번을 끊어봤다.

#nmcli dev dis ens33

 

runner 가 ens36 으로 변경된걸 확인할 수 있다.

반응형
반응형

mysqldump 로 백업을 진행하면 해당 경로에 sql 파일이 생성 됩니다.

이 sql 파일을 이용해 데이터베이스 , 테이블을 복원 할 수 있습니다.

 

1. 특정 DB 백업 및 복원

(--database를 이용하여 여러 DB 를 한번에 백업 가능 , --all-database 전체 데이터 베이스 백업)

- 백업 하기 : mysqldump -u root -p password --database database_name > bakup_NAME.sql
- 복원 하기 : mysql -u root -p PASSWORD < BACKUP_NAME.sql
(Database 명인 DATABASE_NAME으로 복원된다)

 

1-2. 새로운 DB명으로 복원

다름 이름의 데이터베이스명을 사용하고자 할 땐 백업 시 "--database"를 제외하고, 데이터베이스를 복원하기 전 먼저 생성 후 붙여넣는다.
- 백업 하기 : mysqldump -u root -p PASSWORD DATABASE_NAME > BACKUP_NAME.sql
- DB 접속하여 새로운 데이터 베이스 생성 NEW_DATABASE
- 복원 하기 : mysql -u root -p NEW_DATABASE < BACKUP_NAME.sql

*복원 전 tail 명령어로 백업 sql 파일의 상태 확인.

 

* 백업 전 테이블의 상태확인 후 복원된 값이 정상적으로 복원되었는지 테스트 해보겠습니다.

user_info 테이블의 4번 사용자 password 를 변경 후 복원해 보도록 하겠습니다.

 

*패스워드 변경

 

*패스워드 변경 전 1번에서 백업 받아놓은 user_info.sql 테이블을 밀어넣어 복원해 보겠습니다.

 

*복원 완료.

 

반응형
반응형

오늘은 linux 에서의 네트워크 연결상태 , 라우팅테이블 , 인터페이스 상태등을 보여주는 명령어인

netstat 명령어에 대해 알아보겠습니다.

 

[사용법]

# netstat[옵션]

[옵션]

옵션 설명
-a 모든 네트워크 상태출력 [-all]
-c 현재 실행 명령을 매 초바다 실행 [-continuous]
-e 확장된 정보 출력 [-extend]
-g 멀티캐스트에 대한 그룹별 정보 출력 [-groups]
-i 인터페이스별 통계값 출력 [-interface]
-l 대기중인 네트워크 [-listening]
-n 도메인 주소를 숫자로 출력 [-numeric]
-o 연결 대기 시간 출력 [-timers]
-p PID(프로세서 ID)와 사용중인 프로그램명 출력 [-program]
-r 라우팅 테이블 출력 [-route]
-s 프로트콜 요약 정보 출력 [-statistics]
-t TCP 프로토콜만 출력 [-tcp]
-u UDP 프로토콜만 출력 [-udp]
-v 버전출력
-w RAW 프로토콜만 출력 [-raw]
-A 프로토콜별로 출력 [-protocol]
-M 마스커레이딩 정보 출력 [-maquerade]

[사용 예]

1) 모든 네트워크 연결 확인하기

모든 네트워크 연결 상태를 보여줍니다. all 옵션과 동일하며 -a 옵션을 지정하지 않으면 Established 상태인 것만 나온다.

# netstat -a

2) 프로토콜 별로 출력하기

*TCP 만 확인하기

# netstat -at

# netstat -au

3) LISTEN 상태인 포트만 출력하기

● 접속중인 상태 : ESTABLISHED

● 대기중인 상태 : LISTEN

# netstat -nap|grep LISTEN

end..

반응형
반응형

# mysql-bin(binary log)파일 정리 및 삭제 주기 설정 #

linux 에서 mysql 및 mariadb 설치 후 무한정 늘어나느 log-bin 파일에 대해

파일 정리 및 삭제 주기 설정하는 방법에 대하 설명하겠습니다.

mysql-bin 파일은 db 에서 사용된 쿼리들이 로깅되는 파일이며 Innodb 혹은 Replication등에서 사용되곤 합니다.

linux 에서 db 설치 후 db 경로를 따로 지정하지 않는경우 default 경로는

/var/lib/mysql 입니다.

/ 경로 하위이다 보니 갑자기 어느날 / 경로가 말도 안되게 늘어나 있는 경우가 있습니다.

따로 /db 로 파티셔닝을 한 경우도 마찬가지로 log-bin 파일의 저장 기한을 설정하지 않는 이상

log-bin 파일로 인해 용량이 무한정 늘어날 수 있습니다.

[root@localhost mysql]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G  4.0K  1.9G   1% /dev/shm
tmpfs           1.9G   13M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda2        42G   11G   32G  26% /
/dev/sda1       497M  173M  324M  35% /boot
tmpfs           378M   40K  378M   1% /run/user/0
[root@localhost mysql]# ll mysql-bin.*
-rw-rw---- 1 mysql mysql     723  3월 16 14:07 mysql-bin.000001
-rw-rw---- 1 mysql mysql 1013906  3월 16 14:07 mysql-bin.000002
-rw-rw---- 1 mysql mysql  179012  3월 16 14:25 mysql-bin.000003
-rw-rw---- 1 mysql mysql  181801  3월 17 10:43 mysql-bin.000004
-rw-rw---- 1 mysql mysql   59803  3월 17 13:44 mysql-bin.000005
-rw-rw---- 1 mysql mysql     365  3월 17 16:31 mysql-bin.000006
-rw-rw---- 1 mysql mysql   59803  3월 23 18:42 mysql-bin.000007
-rw-rw---- 1 mysql mysql   59803  7월 15 16:15 mysql-bin.000008
-rw-rw---- 1 mysql mysql  316828  9월  1 09:51 mysql-bin.000009
-rw-rw---- 1 mysql mysql   12269  9월  1 10:12 mysql-bin.000010
-rw-rw---- 1 mysql mysql   65375  9월  1 10:16 mysql-bin.000011
-rw-rw---- 1 mysql mysql   63141  9월  1 10:27 mysql-bin.000012
-rw-rw---- 1 mysql mysql   59803  9월  3 15:02 mysql-bin.000013
-rw-rw---- 1 mysql mysql   59803  9월  7 13:42 mysql-bin.000014
-rw-rw---- 1 mysql mysql   59803  9월  7 13:53 mysql-bin.000015
-rw-rw---- 1 mysql mysql   63374  9월  7 13:58 mysql-bin.000016
-rw-rw---- 1 mysql mysql   59803  9월  7 14:26 mysql-bin.000017
-rw-rw---- 1 mysql mysql  119241  9월  7 14:37 mysql-bin.000018
-rw-rw---- 1 mysql mysql   80258  9월 14 13:52 mysql-bin.000019
-rw-rw---- 1 mysql mysql     361  9월 14 13:44 mysql-bin.index

mysql-bin 파일은 OS 에서 삭제하는것 보다 mysql 콘솔에서 삭제 하는것이 바람직 합니다.

mysql 에서 제공되는 파일이므로 mysql 콘솔에서 삭제하는것이 깔끔합니다.

db 로 접속 합니다.

[root@localhost ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 184
Server version: 10.2.37-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql
Database changed
MariaDB [mysql]>

mysql 로  접속 후 하기 명령어로 확인 가능 합니다.

MariaDB [mysql]> show binary logs;

MariaDB [mysql]> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       723 |
| mysql-bin.000002 |   1013906 |
| mysql-bin.000003 |    179012 |
| mysql-bin.000004 |    181801 |
| mysql-bin.000005 |     59803 |
| mysql-bin.000006 |       365 |
| mysql-bin.000007 |     59803 |
| mysql-bin.000008 |     59803 |
| mysql-bin.000009 |    316828 |
| mysql-bin.000010 |     12269 |
| mysql-bin.000011 |     65375 |
| mysql-bin.000012 |     63141 |
| mysql-bin.000013 |     59803 |
| mysql-bin.000014 |     59803 |
| mysql-bin.000015 |     59803 |
| mysql-bin.000016 |     63374 |
| mysql-bin.000017 |     59803 |
| mysql-bin.000018 |    119241 |
| mysql-bin.000019 |     80258 |
+------------------+-----------+
19 rows in set (0.00 sec)

전부 다 삭제하려면 제일 마지막 번호까지 입력해 주시면 됩니다.

*ex)purge master logs to 'mysql-bin.000019';

000014 번 이전의 로그만 삭제해 보겠습니다.

MariaDB [mysql]> purge master logs to 'mysql-bin.000014';

MariaDB [mysql]> purge master logs to 'mysql-bin.000014';
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000014 |     59803 |
| mysql-bin.000015 |     59803 |
| mysql-bin.000016 |     63374 |
| mysql-bin.000017 |     59803 |
| mysql-bin.000018 |    119241 |
| mysql-bin.000019 |     80258 |
+------------------+-----------+
6 rows in set (0.00 sec)

삭제 후 매번 삭제를 하기는 귀찮으니 자동 삭제 주기를 설정하겠습니다.

삭제 주기는 시스템 사고가 발생해도 몇일 내에 확인할 수 있거나 특별히 백업해 분석할 것이 아니라면 2주 정도면 충분 합니다.

 

# 보관주기 확인 #

기존 expire_logs_days 가 '0' 이라면 삭제되지 않고 계속 저장이 됩니다.

MariaDB [mysql]> SHOW VARIABLES LIKE '%expire_logs%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.00 sec)

# 보관주기 14일로 변경 후 다시 확인 #

MariaDB [mysql]> set global expire_logs_days=14;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> SHOW VARIABLES LIKE '%expire_logs%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 14    |
+------------------+-------+
1 row in set (0.00 sec)

14일이 지난 파일들은 삭제가 됩니다.

아예 생성하고 싶지 않다면 하기 경로로 들어가 log-bin 경로를 주석처리 해주시면 됩니다.

[root@localhost /]# vi /etc/my.cnf
# log-bin=mysql-bin

 

end.

반응형
반응형

WSL(Linux 용 Windows 하위 시스템) 을 설치하여 Linux 배포판 및 Centos 7.9 설치하기.

 

1. 설치환경

x64 시스템의 경우 버전 1903 이상 , 빌드 18362 이상을 요구 합니다.

 

2. Linux 용 Windows 하위 시스템 사용 설정하기

PowerShell , cmd 중 하나를 관리자 권한으로 실행 후 아래 명령어를 실행 합니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 

3. Virtual Machine 기능 사용 설정

동일하게 PowerShell , cmd 중 하나를 관리자 권한으로 실행 후 아래 명령어를 실행 합니다.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

4. PC 재부팅

기능 추가 후 해당 PC 의 재부팅이 필요 합니다.

 

5. Linux 커널 업데이트 패키지 설치

MS 에서 제공되는 Linux 커널 업데이트 패키지를 다운로드 하여 설치 합니다.

다운로드

 

6. WSL2 를 기본값으로 설정

동일하게 PowerShell , cmd 중 하나를 관리자 권한으로 실행 후 아래 명령어를 실행 합니다.

wsl --set-default-version 2

 

7. Linux 배포판 설치

윈도우 옆 돋보기 버튼 클릭 후 Microsoft Store 클릭.

검색에서 wsl 검색하면 여러가지 배포판이 나옵니다.

ex*) Ubuntu 20.04 LTS 버전을 설치해 보겠습니다.

 

설치 완료된 후 실행하면 몇분 후 패스워드 입력하라고 나옵니다.

두번 입력 후 완료 됩니다.

 

8. 추가 배포판에 없는 Centos 7.9 설치

1) WSL 용 Centos 다운로드 - 다운로드

2) 다운받은 CentOS7.zip 압축해제

3) CentOS7.exe 마우스 우클릭 관리자 권한으로 실행

 

4) 설치가 완료되면 아무키나 눌러 종료

5) 다시한번 CentOS7.exe 마우스 우클릭 관리자 권한으로 실행

실행 후 잘 설치된것 확인 되었습니다.

 

6) yum update 진행

end.

반응형

+ Recent posts