해당 메시지는 root 권한이 없는 경우에 발생하는 메시지이며

sudo 명령어 발생 시 해결 방안

1. 루트 접근 및 아래 파일 실행

$vim /etc/sudoers



2. sudoers 파일은 계정에 root 권한을 설정 할 수 있는 파일

아래와 같은 내용이 있음 밑에다 권한을 부여할 계정 추가


root ALL=(ALL:ALL) ALL

--추가--

"부여할계정" ALL=(ALL:ALL) ALL


끝 부여된 계정은 sudo 권한 사용 가능



블로그 이미지

_B_G_

,
1. 리눅스 Meteor 설치

$ curl https://install.meteor.com | sh


2. 프로젝트 생성

$ meteor create "name"


3. 기존 프로젝트에서 사용

//기존 파일을 옮길때 아래와 같은 폴더를 꼭 같이 옮겨두는게 편함

//기존에 사용던 라이브러리 등 재설치 할 필요없이 패키지 에러 해결

.meteor

node_modules

//아래 파일도 같이 옮기면서 (위와 같은 이유) 내용안에 젤 위에

  명시 되어있는 name을 생성한 프로젝트 이름으로 바꿔준다

package.json

package-lock.json


4. 기존 소스 사용

$ meteor run


//에러 시

$ meteor run --allow-superuser



5. 포트 변경하여 시작

$ meteor --port xxxx run


블로그 이미지

_B_G_

,

설정 파일

우분투 18.04 데스크톱 버전에서의 /etc/netplan 파일을 가시면 아래와 같이 네트워크 기본 내용이

작성되어 있습니다.

 

IP 고정을 하기 위해선 아래와 같이 수정을 하여야 합니다.

1. vim /etc/netplan

2. netplan 고정 IP 적용

network:
  version: 2
  renderer: networkd
  ethernets:
    enp6s0: // 네트워크 인터페이스 이름 입니다.
      addresses:
        - 192.168.1.100/24 // 고정 IP 시킬 아이피 및 서브넷마스크 
      gateway4: 192.168.1.1
      nameservers:
          addresses: [168.126.63.1,8.8.8.8]

3. 적용

network:
$ sudo netplan apply // 적용
블로그 이미지

_B_G_

,

Send Mail 구축 후 Auth Login 사용 

(SMTP 서버내에서 SendMail 의 Auth Login 기능이 활성화 되어있어야 한다.)



1.  로그인할 계정을 생성한다. (물론 SMTP 서버 내에서 진행)

   #adduser -M -s /bin/false 아이디

   #passwd 패스워드


2. SMTP 서버 내에서 생성한 계정을 base64 인코딩 문자열을 알아야한다

   왜냐하면 인코딩 문자열로 SMTP 사용자 인증을 하기 때문

   인코딩 명령어는 php를 사용하여 인코딩 진행

   #php -r 'echo base64_encode("아이디")."\n";'

   #php -r 'echo base64_encode("패스워드").'\n";'

  아이디,패스워드 인코딩 두번 진행 인코딩 된 문자열은 따로 저장해둔다.


 3. 계정 생성 후 SendMail,saslauthd 서비스 리스타트

   #service sendmail restart

   #service saslauthd restart

블로그 이미지

_B_G_

,

1. openssl 설치

2. openssl req -new -x509 -days 1000 -out mongodb-server.crt -keyout mongodb-server.key


[설정 내용 출력 crt,key 생성] - Key 생성

=================server===================

Country Name (2 letter code) [AU]:??

State or Province Name (full name) [Some-State]:????

Locality Name (eg, city) []:????

Organization Name (eg, company) [Internet Widgits Pty Ltd]:????

Organizational Unit Name (eg, section) []:IT

Common Name (e.g. server FQDN or YOUR name) []: 192.168.??.??

Email Address []:


3. openssl req -new -x509 -days 1000 -out mongodb-client.crt -keyout mongodb-client.key


[설정 내용 출력 crt,key 생성] - 사설 CA(Certificate Authority) 인증서 생성

=================client===================

Country Name (2 letter code) [AU]:??

State or Province Name (full name) [Some-State]:????

Locality Name (eg, city) []:????

Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT

Organizational Unit Name (eg, section) []:192.168.????

Common Name (e.g. server FQDN or YOUR name) []:192.168.?????

Email Address []:



[CA.pem]

4. bash -c 'cat mongodb-client.crt mongodb-client.key' > mongodb-client.pem

[Key.pem]

4-1. bash -c 'cat mongodb-server.crt mongodb-server.key' > mongodb-server.pem

[CA인증서]

5. sudo mongod -sslMode requireSSL --sslPEMKeyFile /home/xxx/mongdo_ssl/mongodb-server.pem --dbpath /var/lib/mongodb/

[Key]

5-1. sudo mongo --ssl --sslCAFile /home/xxx/mongdo_ssl/mongodb-server.pem --sslPEMKeyFile /home/xxx/mongdo_ssl/mongodb-client.pem --sslPEMKeyPassword 123456


블로그 이미지

_B_G_

,

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab


위 링크로 크론탭 등록시 시간 설정

 

에디터가 vim으로 바꾸고 싶을 경우

rm -f ~/.selected_editor // 홈 디렉터리에서 삭제후

 

crontab -e 하면 에디터 고르는거 나옴 /???/vim_basic 고르면 됨

 

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


 

* * * * * sh /home/www/aa.sh


crontab -e // 크론탭 등록


crontab -l //크론탭 등록된 리스트 출력


crontab -r //등록된 리스트 지우기



블로그 이미지

_B_G_

,


RePlica 란

- 하나의 DB 정보를 다른 서버와 공유 및 복제 기능

복제를 하기 위해선 세가지로 분류 된다.

PRIMARY , SECONDARY , Arbiter

PRIMARY : DB를 공유시킬 서버 (메인 역할) 

SECONDARY : 공유되는 DB를 받을 서버 (복제/백업 공간 (여러대 가능))

Arbiter : PRIMARY / SECONDARY 서버를 모니터링 해주는 역할

(끊어지는지 확인 가능)

 

RePlica 적용 방법

1. mongod.config 파일을 설정 해주어야 한다. config 파일은  Primary/Secondary

서버 두대다 설정 (replication: ReplSetName:"ABCD") 동일한 네임

설정

- 자기가 설정한 config로 실행 할때 mongod -f mongod.config 실행 해주어야함

2. Config 설정이 끝나고 난 뒤 우선 Primary 서버랑 Secondary 서버랑 서로 통신이 되는지 확인하여야 한다. 방화벽 걸리는지 등 확인,  접속 명령은 아래와 같다.

mongod localhost:27017

3. DB가 담겨져있는, 공유를 하여야 할 Primary 서버로 접근 (쉘/직접 접근 가능)

아래와 같이 예를 든다.

  • Primary : 192.168.100.100       (DB가 담겨져 있는곳)
  • Secondary : 192.168.100.101   (공유/복제 할 곳)
  • Arbiter : 192.168.100.102        (모니터링)
  • PRIMARY 서버 rs (Replication Set) 설정

    PRIMARY는 id 0 에 설정,

    SECONDARY는 id 1에 설정 SECONDARY 한대만 설정할거라 id 1번만 주었지만

    여러대 할경우 id 2,3,4 만들고 호스트네임 추가 가능

    그리고 젤 처음 id는 ReplSetName으로 설정

    $rs.initiate(
       {
          _id: "ABCD",
          version: 1,
          members: [
             { _id: 0, host : "192.168.100.100:27017" },
             { _id: 1, host : "192.168.100.101:27017" }
          ]
       }
    )

    그럼 PRIMARY 서버에서

    "> " 였던 prompt가

    "ABCD:PRIMARY > " 로 바뀌어져 있음

    4. 구성이 잘되었는지 확인 rs.status() 그럼 해당 서버 (PRIMARY/SECONDARY)

    상태가 보임 등록한 호스트 리스트들을 볼려면 rs.config() 입력

    PRIMARY 접속 후

    Robo 몽고 툴로 둘다 접속하여 PRMARY에 데이터를 만들고 SECONDARY에도 쌓이는지 확인

    SECONDARY 접속하여

    show dbs 등 명령어는 안됨 기존 mongo 자체에서 SECONDARY 서버는 변조를 막기 위해 제한 해둠 그걸 해제 하기 위해선

    rs.slaveOk() 명령어를 하여 해제하고

    show dbs

    db.collection()

    db.getcollection('테이블').find()

    시도 가능

     

     


    블로그 이미지

    _B_G_

    ,

     

    외부접속 

    $ mongo --host 127.0.0.1 --port 27017

    mongo DB 복구

    $ mongorestore --host 127.0.0.1 --port 27017 20190101/


    * 복구 전에 존재하는 컬렉션을 없애고 싶다면 --drop 옵션

    * 20190101 : 백업시 폴더 이름을 이렇게 저장 ( 복구시에도 폴더이름을 이걸로 사용하여야함)

     

    만들어져 있는 계정이 있을경우 아래와 같이 접속

    $ mongo <host:port> -u "아이디" -p "패스워드" --authenticationDatabase "admin"

    블로그 이미지

    _B_G_

    ,