히스토리에 시간 남기기

리눅스/OS 일반|2018. 12. 21. 11:01
반응형

1. /etc/profile 파일에 옵션 추가


HISTTIMEFORMAT="[%F %T] "



2. 적용


# source /etc/profile



반응형

댓글()

Ubuntu 에서 LSI Mega-Cli 설치, 기본 명령어, Telegram 알람 설정

리눅스/OS 일반|2018. 12. 18. 17:07
반응형

Ubuntu 서버를 기준으로 설명하였습니다.

 

 

1. 설치

 

# cd /usr/local/src

# apt -y install unzip alien libncurses5

# wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/8-07-14_MegaCLI.zip

# unzip 8-07-14_MegaCLI.zip

# cd Linux

# alien MegaCli-8.07.14-1.noarch.rpm

# dpkg -i megacli_8.07.14-2_all.deb

 

 

2. 명령어

 

디스크 상세 정보

# /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL

 

디스크 요약 정보

# /opt/MegaRAID/MegaCli/MegaCli64 -ShowSummary -aALL

 

 

3. 알람 스크립트

 

Telegram Bot 이 있다면 알람을 주는데 활용하도록 합니다.

# vi /root/check_raid.sh

#!/bin/bash

# Telegram 설정 (텔레그램 봇 API KEY, 수신자 CHAT_ID)
API_KEY="12345678:ABFNrljuQ4nrwbChhMlx1z-tA36Ww"
CHAT_ID="00112233"

# 현재 정상 디스크 개수
list=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL |grep status`
cnt=`echo "$list" |grep status |grep Active |wc -l`

# 디스크 네개 중 하나라도 정상이 아닌 경우
if [ $cnt != 4 ]; then
        # 메시지 전송
        MESSAGE="서버 디스크 에러가 감지 되었습니다.
- 서버 : 파일 서버
- 내용 : $list"
        URL="https://api.telegram.org/bot$API_KEY/sendMessage"

        curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE" > /dev/null 2>&1
fi

exit 0

 

# chmod 700 /root/check_raid.sh

# echo "0 9 * * * root sh /root/check_raid.sh" >> /etc/crontab

 

 

4. 쉘스크립트 암호화 (선택)

 

쉘스크립트에 Telegram Bot API KEY 와 사용자의 CHAT_ID 가 포함되어 있어 누군가 확인할 우려가 있을 경우 쉘스크립트를 바이너리 파일로 변경할 수 있습니다.

우선 필요한 패키지를 설치하고 위에서 작성했던 쉘스크립트를 암호화 합니다.

# apt -y install shc

# shc -f /root/check_raid.sh -o /root/check_raid

 

/etc/crontab 파일에서 쉘스크립트 실행 명령을 바이너리 파일 실행 명령으로 바꿉니다.

- 기존 : sh /root/check_raid.sh

- 변경 : /root/check_raid.sh
# sed -i 's/sh \/root\/check_raid.sh/\/root\/check_raid/' /etc/crontab

 

변경이 완료되었으면 테스트를 해봅니다. 이상이 없는 경우 기존 쉘스크립트는 삭제해 두는 것이 좋습니다.

# rm -f /root/check_raid.sh*

 

반응형

댓글()

MariaDB Galera Cluster 구성 (MySQL, MariaDB 지원)

리눅스/MySQL|2018. 12. 5. 11:27
반응형

Galera Cluster 는 두대 이상의 DB 서버를 '마스터 - 마스터' 형태로 운영토록 해주므로 아주 매력있는 기술이지만

실제 서비스를 가동하는데 있어 기능제한이나 오류 등이 많이 발견되고 있어 고객 서버에 적용하기에 적합하지 않습니다.

버전이 올라감에 따라 단점이 보완 될 것으로 보이므로 미리 설치, 테스트를 거쳐 고객 응대하는데 도움이 되시기 바랍니다.


본 매뉴얼은 Galera Cluster 를 CentOS 7.4 에서 MariaDB 10.2 환경에서 구성하였습니다.


[테스트 서버]

- 49.247.212.17    // 마스터 노드

- 49.247.212.46    // 슬레이브 노드

* 마스터 및 슬레이브 노드의 구분은 최초 구동 명령의 차이 밖에 없습니다. (반드시 기억해야 할 부분. 이유는 맨 하단 테스트에 나옴)



1. Galera Cluster 개요


1) 장점

- 모든 노드 읽기/쓰기가 가능하므로 Active - Active 방식의 멀티 마스터 구성 가능

- 노드간에 트랜젝션을 지원하므로 데이터의 일관성이 보장

- 노드 추가 및 제거가 간단


2) 단점

InnoDB 테이블만 지원

데이터베이스 단위가 아닌 서버 단위로 구성

한 노드에서 테이블 락이 걸리면 모든 노드에서 락이 걸림

- 한 노드에서 insert 시에 모든 노드에 데이터 insert 요청을 하게 되므로 쓰기 성능 저하

   => 이 문제로 순식간에 양 노드에 쓰기가 들어간다면 Auto Increment 충돌로 인한 장애 또는 데이터 유실이 발생할 수 있음


3) 지원 버전

MySQL 5.5, 5.6 이상 지원

MariaDB 5.5 이상 지원

* MariaDB 10.1 부터 기능이 기본 포함되어 설정이 더 간편해 졌습니다.



2. 설치


CentOS 7.4 가 설치된 상태에서 yum 명령을 통해 mariadb 를 설치하면 버전이 5.5.60 이 설치되므로

repositories 를 추가하여 더 높은 버전 (10.2.19) 의 mariadb 를 설치하도록 합니다.


1) 서버 공통 작업


[MariaDB 설치]


# vi /etc/yum.repos.d/MariaDB.repo


[MariaDB]

name = MariaDB

baseurl = http://yum.mariadb.org/10.2/centos7-amd64

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1 


# yum -y install mariadb-server galera rsync

// 복제 방식은 rsync 를 사용할 것이므로 rsync 패키지도 같이 설치


# vi /etc/my.cnf.d/server.cnf


[galera]

wsrep_on=ON                                                                                                                // galera cluster 사용 여부

wsrep_provider=/usr/lib64/galera/libgalera_smm.so                                 // libgalera_smm.so 모듈 위치

wsrep_cluster_address="gcomm://49.247.212.17,49.247.212.46"         // 본 서버를 포함한 동기화될 서버 IP LIST

wsrep_cluster_name=cluster                                                                                   // 그룹명 (동기화 될 서버가 모두 동일해야 함)

wsrep_node_address="49.247.212.17"                                                               // 현재 서버 IP

wsrep_node_name="sysdocu1"                                                                             // 현재 서버의 이름 (동기화될 서버간에 중복되면 안됨)

wsrep_sst_method=rsync                                                                                         // 동기화 될 데이터 전송 방식

wsrep_sst_auth="root:12345678"                                                                         // 데이터 전송 방식에 사용할 계정

binlog_format=row                                                                                                      // 바이너리 로그 파일 형식

default_storage_engine=InnoDB                                                                          // 스토리지 엔진 타입

innodb_autoinc_lock_mode=2                                                                              // 

bind-address=0.0.0.0                                                                                                  // 모든 IP 에서 접근 허용


마스터 서버는 위와 같이 구성하고, 나머지 서버는 위 내용에서 wsrep_node_addresswsrep_node_name각 서버의 고유한 값으로 바꾸어 줍니다.


[iptables 방화벽 설정]


아래 포트 리스트를 모든 서버에 동일하게 적용해줍니다. (선진행 필수)

3306/tcp

4444/tcp

4567/tcp

4567/udp

4568/tcp


2) 마스터 노드


데이터를 최초 배포 하는 마스터 노드에서 아래와 같이 실행합니다.


# galera_new_cluster


* 주의 : (모든 노드가 다운 상태인) 최초 구동일 경우에만 사용합니다.


3) 슬레이브 노드 (마스터 노드를 제외한 모든 서버)


# service mysql start



3. 동기화 확인 및 테스트


1) 확인


# mysql -p

(mysql root 비밀번호 입력)


MariaDB [(none)]> show status like 'wsrep_cluster_size';

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size |    |

+--------------------+-------+

1 row in set (0.01 sec)


MariaDB [(none)]> show status like 'wsrep_incoming_addresses';
+--------------------------+---------------------------------------+
| Variable_name            | Value                                 |
+--------------------------+---------------------------------------+
| wsrep_incoming_addresses | 49.247.212.46:3306,49.247.212.17:3306 |
+--------------------------+---------------------------------------+
1 row in set (0.00 sec)

2) 데이터베이스, 테이블 생성 및 데이터 입력


마스터 노드에서 아래와 같이 테이블을 생성하고 데이터를 입력합니다.


MariaDB [(none)]> use test

MariaDB [test]> create table memo (name varchar(20), email varchar(250));

MariaDB [test]> insert memo (name, email) values ('SYSDOCU', 'sysdocu@sysdocu.tistory.com');


그리고 슬레이브 노드에서 데이터 입력을 확인하면 됩니다.
이와 같이 여러대의 서버를 cluster 로 묶은 경우 반대쪽 노드에서 insert 를 해서 반영이 되었는지 양방향으로 꼭 확인을 해봅니다.


4. 장애 복구 테스트


운영중 발생한 장애에 대하여 데이터를 동기화할 필요성이 있습니다.

한 대의 노드가 중지 된 상태에서 입력된 데이터는 나중에 해당 노드가 복구되어서 DB가 가동 되었을때 자동으로 sync 가 맞추어 집니다.

(마스터, 슬레이브 구분 없음)


[테스트 - 슬레이브 노드 장애]

1) 49.247.212.46 노드 셧다운

2) 49.247.212.17 노드에 데이터 insert

3) 49.247.212.46 노드 부팅 및 mariadb 가동

     # service mysql start

4) 49.247.212.46 노드에서 17번 입력 데이터 확인

     -- DB 데이터 sync 확인 --


[테스트 - 마스터 노드 장애]

1) 49.247.212.17 노드 셧다운

2) 49.247.212.46 노드에 데이터 insert

3) 49.247.212.17 노드 부팅 및 mariadb 가동

4) 49.247.212.17 노드에서 46번 입력 데이터 확인

     -- DB 데이터 sync 확인 --


[테스트 - 마스터, 슬레이브 노드 동시 장애]

1) 49.247.212.17 노드 셧다운

2) 49.247.212.46 노드에 데이터 insert

3) 49.247.212.46 노드 셧다운

     -- DB 서비스 완전 종료 --

4) 49.247.212.46 노드 부팅 및 mariadb 가동    // Master - Master 기반의 환경이지만 두번째 서버이므로 구동이 되지 않음

     # service mysql start

5) 49.247.212.17 노드 부팅 및 mariadb 가동    // 성공. 모든 노드 다운시에는 마스터 서버 부터 가동해야 함

     # galera_new_cluster

6) 49.247.212.46 노드 부팅 및 mariadb 가동

     # service mysql start

7) 17번, 46번 노드에서 데이터 확인

     -- DB 데이터 sync 확인 --


[장애 복구 테스트 결론]

- 운영중 마스터, 슬레이브 상관없이 어느 노드 하나가 다운 되었다면, 장애 서버 부팅만으로 데이터 sync 를 맞출 수 있습니다.

- 모든 노드의 서버가 다운되었을 경우, 마스터 노드부터 부팅을 시키는게 일반적이지만

   마스터 노드 다운 후 슬레이브 노드로 insert 된 데이터가 있다면 마스터 노드부터 가동할 경우 슬레이브 노드에 추가된 데이터가 유실 됩니다.

   유실을 막는 대안으로는 (데이터가 추가로 존재하는) 슬레이브 노드에서 galera_new_cluster 명령 먼저 가동하고 나머지 노드를 service mysql start 로 가동하면 됩니다.

   (마스터, 슬레이브 노드 역할을 바꿈)



5. 노드 추가


새로운 노드 IP : 49.247.212.68


1) 새로운 노드에 MariaDB를 설치하고 환경을 위와 같이 설정합니다.

     다만 아래 항목에서는 추가된 노드 IP를 추가해 주어야 합니다.


     wsrep_cluster_address="gcomm://49.247.212.17,49.247.212.46,49.247.212.68"


2) 방화벽 설정

     위 'iptables 방화벽 설정' 내용을 참고하여 설정합니다.


3) MariaDB 가동

     # service mysql start    // 이때 데이터가 동기화 되므로 데이터 양이 많다면 그만큼 기다려야 합니다.


4) MariaDB 에 로그인 해서 데이터 sync 된 것을 확인합니다.


5) 관리 목적상 헷갈리지 않도록 17번과 46번 노드의 설정 파일도 일관성 있게 아래 옵션에 새로운 노드 IP를 추가해 줍니다. (mysql 재시작 불필요)

     추가 설정 여부와 관계없이 데이터는 이미 양방향으로 전송이 가능한 상태입니다.


     wsrep_cluster_address="gcomm://49.247.212.17,49.247.212.46,49.247.212.68"



반응형

댓글()

SSL 인증서 만료일 확인하기

리눅스/APACHE|2018. 11. 30. 15:06
반응형

# openssl x509 -in /ssl/file.crt -noout -text



반응형

댓글()

Docker Portainer 설치 테스트 on CentOS 7

리눅스/OS 일반|2018. 11. 19. 09:16
반응형

========== 모든 절차 (CentOS 7.x) 기본 ===========

# yum -y install docker

# cd /usr/libexec/docker/

# ln -s docker-runc-current docker-runc

# service docker start

# docker volume create portainer_data

# key=`docker run --rm httpd:2.4-alpine htpasswd -nbB admin 12345678 | cut -d ":" -f 2`

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer --admin-password "$key"

# DEL_ID=`docker image ls |grep alpine |awk {'print $3'}`

# docker image rm $DEL_ID

=================================================


Docker CE

# yum install -y yum-utils device-mapper-persistent-data lvm2

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# yum install -y docker-ce


======= 이미지에 미리 반영 =======

# yum -y install docker

# cd /usr/libexec/docker/

# ln -s docker-runc-current docker-runc

# service docker start

# docker volume create portainer_data

# docker pull httpd:2.4-alpine


# service docker stop

================================


======= 스크립트에서 처리 =======

# service docker start


key=`docker run --rm httpd:2.4-alpine htpasswd -nbB admin 12345678 | cut -d ":" -f 2`

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer --admin-password "$key"

# DEL_ID=`docker image ls |grep alpine |awk {'print $3'}`

# docker image rm $DEL_ID


# service docker stop


===============================



(항상 구동)

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer 

--restart=always 옵션을 주면 docker 재시작시 컨테이너가 자동 구동 함

--admin-password 옵션을 주면 초기 패스워드를 설정할 수 있음

docker 를 재구동 할 때마다 패스워드가 초기값으로 돌아가지는 않음


# docker update --admin-password-file /tmp/portainer_password


# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer --admin-password '$2y$05$fw/BGmOgoMJbTeh8JBZTieIAqptIu9ofNjIAiMWT7P6/jECJtmHOW'



(잘 됨 : 항상 구동 / hash 패스워드)

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer --admin-password '$2y$05$fw/BGmOgoMJbTeh8JBZTieIAqptIu9ofNjIAiMWT7P6/jECJtmHOW'



test

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/portainer_password:/tmp/portainer_password portainer/portainer --admin-password-file /tmp/portainer_password




* 참고

# CTN_ID=`docker container ls |grep portainer |awk {'print $1'}`

docker update --restart=no $CTN_ID


----------------------


[Apache 추가 설치]


# docker pull bitnami/apache:latest

# docker run -d -p 80:80 --name httpd-test httpd



[MySQL 추가 설치]


# docker pull mysql:latest


# MYSQL_USER="mysql_user"

# MYSQL_DATABASE="sample_db"

# MYSQL_CONTAINER_NAME="mysql"

# MYSQL_ROOT_PASSWORD="MY_PASSWORD"

# MYSQL_PASSWORD="MY_PASSWORD"


# docker \

  run \

  --detach \

  --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \

  --env MYSQL_USER=${MYSQL_USER} \

  --env MYSQL_PASSWORD=${MYSQL_PASSWORD} \

  --env MYSQL_DATABASE=${MYSQL_DATABASE} \

  --name ${MYSQL_CONTAINER_NAME} \

  --publish 3306:3306 \

  mysql;



[ubuntu os 설치]


# docker run ubuntu:16.04  // 

# docker run --rm -it ubuntu:16.04 /bin/bash



mongodb:27017



# docker hub image list


192.168.10.2:9000



반응형

댓글()

vsftpd 접속시 ls: 로그인 실패: 530 Login incorrect.

리눅스/FTP|2018. 11. 15. 15:43
반응형

서버의 vsftpd.conf 에서 아래 옵션을 사용한다면..


pam_service_name=vsftpd


# vi /etc/pam.d/vsftpd


#auth       required    pam_shells.so    // 주석 처리


# service vsftpd restart


반응형

댓글()

history 시간 출력하기

리눅스/OS 일반|2018. 11. 14. 17:06
반응형

# vi /etc/profile


HISTTIMEFORMAT="%F %T "
export HISTTIMEFORMAT


# source /etc/profile



반응형

댓글()

Apache 설치 후 WEB 403 Forbidden 에러

리눅스/APACHE|2018. 11. 14. 16:08
반응형

# Apache 를 Source 컴파일 한 이후에 브라우저에서

URL 혹은 IP 를 치고 들어가면 403 Forbidden 에러가 발생하는 경우가 있습니다.


# 조치 방법

컴파일을 한 위치의 httpd.conf 파일을 찾습니다. (ex : /usr/local/apache2/conf/httpd.conf)


파일내용 중


<Directory />

    AllowOverride None

    Require all granted (denied를 granted로 수정)

</Directory>


위와 같이 수정하고 graceful 또는 restart 합니다.

반응형

댓글()

CentOS7 에서 MySQL 8.0 소스 설치

리눅스/MySQL|2018. 11. 14. 14:46
반응형

필수 패키지 설치

# yum -y install cmake ncurses-devel gcc* openssl openssl-devel



계정 추가

# groupadd -g 400 mysql

# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql



설치

# cd /usr/local/src

# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12.tar.gz

# tar xvfz mysql-8.0.12.tar.gz 

# cd mysql-8.0.12

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DWITH_SSL=system -DMYSQL_TCP_PORT=3306 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/include/boost

# make

# make install



초기 데이터 베이스 구성 및 권한 설정

# cd

# /usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

# chown -R mysql.mysql /usr/local/mysql/

# chmod 711 /usr/local/mysql

# chmod 700 /usr/local/mysql/data

# chmod 751 /usr/local/mysql/bin/

# chmod 750 /usr/local/mysql/bin/*

# chmod 755 /usr/local/mysql/bin/mysql

# chmod 755 /usr/local/mysql/bin/mysqldump



boost 설치

# cd /usr/local/include/boost/boost_1_66_0    // boost 버전이 다를 수 있음

# ./bootstrap.sh 

# ./b2 install



자동 실행 설정 및 기타 파일 적용

# vi /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql/

port=3306

socket=/tmp/mysql.sock


[mysqld_safe]

log-error=/var/log/mysql_log.err

pid-file=/usr/local/mysql/mysql.pid 


# cp -arp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on



이후 작업

- iptables 방화벽 설정 (tcp 3306 추가)

- root 패스워드 업데이트


반응형

댓글()

Docker 기본 명령어 및 WEB UI 설치하기 (portainer) - CentOS 7.x

리눅스/OS 일반|2018. 10. 26. 12:43
반응형

아래는 서비스에 적용하기 위한 절차이므로 과정만 참고 할 것...


========== 모든 절차 (CentOS 7.x) ===========

// 1, 4번째 라인만 실행해도 무관하다. 설치만으로 '부팅시 자동 구동' 되지 않는다.

# yum -y install docker

# cd /usr/libexec/docker/

# ln -s docker-runc-current docker-runc

# service docker start


-- 위에것 대신 최신 Docker CE 설치 --

# yum install -y yum-utils device-mapper-persistent-data lvm2

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# yum install -y docker-ce

---------------------------------------------


// portainer 설치 과정이다. 설정값을 저장할 볼륨을 같이 만든다.

# docker volume create portainer_data

# key=`docker run --rm httpd:2.4-alpine htpasswd -nbB admin 12345678 | cut -d ":" -f 2`

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer --admin-password "$key"

# DEL_ID=`docker image ls |grep alpine |awk {'print $3'}`  // 아까 htpasswd 사용을 위해 설치했던 패키지 삭제

# docker image rm $DEL_ID


* Docker 실행시 컨테이너도 같이 구동하기 위하여 --restart=always 옵션을 주었음 (이것을 안주면 docker 재시작시 container 는 중지 상태이다)

* admin 페이지 초기 패스워드를 쉘에서 지정하기 위해서 --admin-password 옵션을 주었음 (이것을 안주면 9000 번 포트 초기 접속시 패스워드를 설정하게 되어있다.)

   > admin 페이지에서 패스워드를 변경해도 docker 를 재구동 할 때마다 패스워드가 초기화 되지 않음

================================================


======= 이미지에 미리 반영 =======

# yum -y install docker

# cd /usr/libexec/docker/

# ln -s docker-runc-current docker-runc

# service docker start

# docker volume create portainer_data

# service docker stop

================================


======= 스크립트에서 처리 =======

# service docker start

# key=`docker run --rm httpd:2.4-alpine htpasswd -nbB admin 12345678 | cut -d ":" -f 2`

# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer --admin-password "$key"

# DEL_ID=`docker image ls |grep alpine |awk {'print $3'}`

# docker image rm $DEL_ID

# service docker stop

===============================



* docker 실행시 portainer 가 자동으로 실행되지 않게 하려면

# CTN_ID=`docker container ls |grep portainer |awk {'print $1'}`

# docker update --restart=no $CTN_ID


----------------------


명령줄에서 설치하기


[Apache 설치]

# docker pull bitnami/apache:latest

# docker run -d -p 80:80 --name httpd-test httpd



[MySQL 설치]

# docker pull mysql:latest


# MYSQL_USER="mysql_user"

# MYSQL_DATABASE="sample_db"

# MYSQL_CONTAINER_NAME="mysql"

# MYSQL_ROOT_PASSWORD="MY_PASSWORD"

# MYSQL_PASSWORD="MY_PASSWORD"


# docker \

  run \

  --detach \

  --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \

  --env MYSQL_USER=${MYSQL_USER} \

  --env MYSQL_PASSWORD=${MYSQL_PASSWORD} \

  --env MYSQL_DATABASE=${MYSQL_DATABASE} \

  --name ${MYSQL_CONTAINER_NAME} \

  --publish 3306:3306 \

  mysql;


[ubuntu os 설치]

# docker run ubuntu:16.04  // 

# docker run --rm -it ubuntu:16.04 /bin/bash


----------------------


기본 명령어


# docker container ls -a

# docker container start {컨테이너 ID값}

# docker container stop {컨테이너 ID값}

# docker container rm {컨테이너 ID값}


# docker image ls

# docker image rm {이미지 ID값}



반응형

'리눅스 > OS 일반' 카테고리의 다른 글

Docker Portainer 설치 테스트 on CentOS 7  (0) 2018.11.19
history 시간 출력하기  (0) 2018.11.14
CentOS 7 에서 FFMpeg 설치하기  (0) 2018.05.30
원하는 커널 버전 yum 으로 설치하기  (0) 2018.05.29
파티션 UUID 확인  (0) 2018.05.17

댓글()

sendmail 릴레이 설정

리눅스/Mail|2018. 10. 24. 14:50
반응형

1. sendmail.mc파일에서 릴레이 허용가능하게 되있는지 체크


FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl



2. /etc/mail/access 파일 수정

본 SMTP 를 통해 메일 발송 허용할 IP 를 설정한다. 대역도 가능하다. (예: 192.168.2.0/24)


  localhost.localdoamin RELAY

  localhost             RELAY

  127.0.0.1             RELAY

  192.168.0             RELAY

  support@microsoft.com REJECT       <- 거부하고 싶으면 [REJECT]로 지정

  @commercecheck.com    REJECT       <- @로 시작하면 도메인을 거부하게됨


access파일을 데이터베이스로 변환후 sendmail을 재기동하면 허용 가능 상태로 된다.


  # makemap -v hash /etc/mail/access.db < /etc/mail/access

  key=`localhost.localdomain', val=`RELAY'

  key=`localhost', val=`RELAY'

  key=`127.0.0.1', val=`RELAY'

  key=`192.168.0', val=`RELAY'


 # service sendmail restart



[출처] http://egloos.zum.com/voyager/v/4302356

반응형

댓글()