그 동안 서버를 사용하면서 우분투(ubuntu) 클라이언트 버전 및 서버버전의 큰 차이점을 몰라서 쫌 더 친숙한 클라이언트 버전을 사용해왔었다.


하지만 동일한 환경일 떄, 데이터의 처리 속도의 대한 감도는 확실히 서버버전이 빠르고 가벼웠기 때문에, 서버버전 설치 방법을 소개할려고 합니다.


1. ISO 파일 다운받기




2.ubuntu 16.04 가장 최신버전을 다운 받습니다. 서버버전으로 iso파일을 다운받도록합니다.

 저는 가상머신인 VM virtual box를 사용할 예정이기 때문에 ISO를 다운받았습니다.



3. 버추어박스에서 가상머신을 새로 만듭니다. 물론 편리하신대로 이름 설정 해주셔도 무관합니다.

   저는 요즘 가장 이슈가 많이 되고 있는 tensorflow로 이름을 하기로 했습니다. 



4. 추가적인 가상머신 생성 진행 방법 입니다. 

메모리 크기는 적당하게 주시면 됩니다. 저는 가상머신을 적극 활용하기 때문에 절반을 줬습니다.

동적 할당 및 고정 크기 // 개인적인 경험으로 동적 할당을 했을 때, 하드 일정 부분을 넘지 않았음... 많은 데이터와 저 처럼 윈도우 보다는 우분투의 용량을 더 많이 사용한다면 고정크기를 개인적으로 추천 합니다.


데이터를 대용량 넣었을 때, 동적 할당인 경우 디스크 풀의 경험이 있었습니다. (물론, 원인이 저게 아닐 수도 있지만.. 저도 시작한지 얼마 안되었기 때문에 많은 조언 부탁드립니다.)


가상머신을 설치하는 과정에서 ISO파일을 넣을 수 있지만, 혹시나 지나치시는 분들이 있을까봐.... 실은 제가 놓쳐서...ㅋㅋㅋㅋ

가상머신을 클릭후 위에 설정버튼을 클릭하고 

'저장소' 클릭하면 광학드라이브 넣기가 있습니다!

그러고 ISO를 클릭하시면 됩니다 혹시 없으시면 파일 선택을 눌러 추가해주시기 바랍니다.



5. 리눅스 16.04 서버버전 설치 (linux ubuntu 16.04.2 server)


   실행을 하면 첫 화면이 언어 선택하는 화면이 나옵니다.


  서버버전은 개인적으로 영어를 추천드립니다. 한글번역이 완벽하지 않아서. 알아먹을 수가 없는 문자로나옵니다. ㅠㅠ



우분투 서버 설치(i) Enter를 꾹 눌러서 진행합니다.




아직 늦지 않았으니 영어로 설치하기를 추천드립니다.... 저는 다시 영어버전으로 바꾸었습니다.

물론 한글로 하고 나서 불편하시면 추후에 올린 글을 보시고 영어버전으로 바꾸셔도 무관합니다.



우리는 대한민국.



쭉쭉쭉 읽어보시면서 그냥 통과 통과 합니다. 



일반 로그인 사용자 이름 설정하는 부분입니다. 일종의 아이디로 생각하시면 됩니다.



비밀번호 까먹으시면... 설치하자마자 로그인 당시 문제가 생깁니다.



특별한것 없이 다 패스패스 해서 설치를 진행합니다.



저는 개인적으로 원격으로 실행을 자주하기 떄문에


SSH까지 기본설치 하라고 체크해 주었습니다. 



재부팅을 하면! 짜잔 서버버전 설치가 완료되었습니다.


매우 어색하겠지만 글씨가 나오는게 전부입니다. ㅎㅎ 


저도 클라이언트 버전만 사용해서 서버버전이 아직도 어색하네요. ㅎㅎ



파일 혹은 폴더를 내부 네트워크에 있는 특정한 인원에게 공유하고 싶을 때!

비밀번호를 알려준 사람들만 들어와서 파일 및 폴더를 공유하는 방법!


1. 내 컴퓨터 에서 마우스 우클릭 관리(G)를 클릭한다.


2. 로컬 사용자 및 그룹 > 사용자클릭.

 새 사용자 추가를 하여 . 사용자 이름 및 비밀번호를 입력하고 추가한다.



3. 추가 확인 후 공유할 파일 및 폴더로 돌아간다.


여기까지 완료 하였다면 test 사용자가 입력한 패스워드로 생긴것을 확인할 수 있습니다.

이제 공유를 설정한 폴더에는 아이디, 패스워드를 정확히 입력한 사람만 접근 할 수 있습니다.


그러면 이제부터 폴더 공유하는 방법을 알아보겠습니다.



4. 공유할 폴더 및 파일의 마우스 우클릭을 합니다. 속성을 클릭하시면 밑에 그림을 보실수 있습니다.


공유탭으로 이동하시고 고급공유설정을 클릭하시면 밑에 그림에 접근할 수 있습니다.


선택한 폴더 공유를 체크 하신 후 권한 설정에 들어가보도록 하겠습니다.




5. Everone(기본적으로 모든 사람들의 읽기 권한을 부여주게 되어있습니다.) 이것을 제거 합니다.




  아까 추가하였던 사용자의 아이디를 입력합니다.

  공유 완료~  

상대방의 PC에 가서 자신의 컴퓨터 이름을 더블 클릭하면!! 방금 공유하였던 폴더가 보이게 됩니다.

위치(L)를 클릭하시면 자동 검색을 활용하여 찾을 수 있습니다. 
하지만 방금 만들었고, 본인이 만들었다면 아이디만 입력후 이름확인 누르면 경로는 자동적으로 입력됩니다.


짜잔 공유 완료 ~


    Ubuntu 백업 스크립트 작성하기


    아래 설명글은 Ubuntu 뿐만 아니라 모든 Linux 배포판에 대해서 공통적으로 실행가능합니다.

    서버를 운영하면서, 백업과 보안항상 염두해 두어야 하는 사항이다.

     

    리눅스 시스템에서 주기적으로 파일과 데이터베이스 백업을 하는 방법에 대하여 설명하겠다.

     

    1. 정책 세우기

    언제마다 백업을 할 것인가? 백업 방식은 어떤것인가? 백업 유지 기간은? 백업 저장소는 어떤 것인가?

     

    1) 백업 주기 정책

    대부분의 서버에서 접속자가 가장 낮을때는 4:00 AM ~ 4:30 AM 입니다.

    그래서 많은 사람들이 새벽 4:00 에 백업이 이루어지게 설정합니다.

     

    하루에 2번 백업하고 싶으면 오전/오후 4:00 에 백업을 하도록 합시다.

     

    2) 백업 방식 정책

    백업이라는 것이 데이터를 복사해 두는 것이기 때문에 하드디스크의 여유공간이 많아야 합니다.

    # df -h

    명령어를 통해서 저장할 디스크의 여유공간이 충분한지 파악해 봅시다.

     

    또 백업에는 CPU의 연산이 이루어집니다. (파일을 읽어서 새로운 곳에 기록)

    - 압축 백업 : (tar -czpf 백업) 일반적으로 많이 쓰이는 백업입니다. 이 작업에는 CPU 가 많이 사용됩니다.

    10GB 미만 압축이면 상관없는데 그 이상의 대용량의 압축 백업은 주의가 필요합니다. 백업 시켜놓고 CPU 사용량을 확인하세요.

    - 복사 백업 : (cp -R 백업) 압축하지 않고 복사만 합니다. 사용 용량을 많이 차지하지만 (압축하지 않는다는 뜻) 백업할 때 CPU 사용량이 크게 증가하지는 않습니다.

    - 증분 백업 : (rsync 백업) 변동사항만 비교하여 백업합니다. 비교를 위해서 파일은 항상 압축되지 않은 상태로 보관됩니다.

     

    3) 백업 유지기간 정책

    - 몇일치를 보관할 것인가? 또는 몇개의 백업 파일을 보관할 것인가?

     

    4) 백업 저장소 정책

    - 백업 파티션을 나누어서 저장?

    - 디스크를 새로 장착하여 저장?

    - FTP 등을 사용해서 원격 저장?

    원한다면 https://blog.lael.be/post/1387 글을 참조하여 별도의 백업서버의 폴더를 연결(mount)하여 백업을 해보도록 하자.

     

     

     

    2. 설정된 정책을 바탕으로 백업 세팅하기

    백업 정책 예시 :

    - 하루 2회 오전/오후 4시에 백업.

    - 파일과 디비(MYSQL or MariaDB) 백업.

    - 백업 저장소는 동일 디스크의 /backup 폴더.

    - 백업 파일은 10일치를 보관한다.

     

    작업은 root 권한에서 실행한다.

    # su -l root    나   # sudo su    등의 명령어로 root 권한으로 상승하여라.

     

    1) 백업이 저장될 폴더 만들기.

    # mkdir /backup

     

    2) 퍼미션 조정

    # chmod 700 /backup

     

    3) 백업 스크립트 작성

    # cd /root

    # vi backup.sh

     

    tar 명령어는 파일 압축 백업을 실시합니다.

    mysqldump 명령어는 데이터베이스 백업을 실시합니다.

    find 관련 명령어는 10일이 지난 파일을 삭제합니다.

     

    -- tar 와 mysqldump 는 여러 줄 쓰셔도 됩니다.

    -- 설정을 바꿀 수 있는 부분은 파란색빨간색으로 표시하였습니다.

     

    #!/bin/bash
    tar -czpf /backup/
    myuser.`date +%Y%m%d%H%M%S`.tgz /home/myuser/www 1>/dev/null 2>/dev/null
    mysqldump --extended-insert=FALSE -u
    root -pmypassword mydbname > /backup/mydbname.`date +%Y%m%d%H%M%S`.sql
    find /backup/ -type f -mtime +
    10 | sort | xargs rm -f

     

    아래 내용을 더블클릭해서 복사한 후 사용하여라.

    1

    2

    3

    4

    #!/bin/bash

    tar -czpf /backup/jingjing.`date +%Y%m%d%H%M%S`.tgz /home/jingjing 1>/dev/null 2>/dev/null

    mysqldump --extended-insert=FALSE -uroot -ptest1234 mydbname > /backup/mydbname.`date +%Y%m%d%H%M%S`.sql

    find /backup/ -type f -mtime +10 | sort | xargs rm -f

    4) 백업 스크립트 실행권한 설정

    # chmod 700 backup.sh

     

    5) 연습삼아 실행

    # ./backup.sh

     

    6) 확인

    # cd /backup

    ll -h

    이 때 total 에 나온 용량과 df -h 명령어에 나온 여유공간을 비교하여 백업 정책이 적합한지 판단한다. (디스크 여유공간 비교)

    backup.sh 의 find 관련 명령어에서 10 이라는 숫자를 변경하면 된다. (디스크 용량이 부족할 경우 5일치만 저장되도록 바꾸셔야겠죠?)

     

    7) 주기적인 실행

    cron (예약관리자 실행 프로그램)에 매일 오전/오후 4시 0분에 실행되도록 설정한다.

    # crontab -e

    0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null

    0 16 * * * /root/backup.sh 1>/dev/null 2>/dev/null

     

     

     

     

    8) 확인

    잠자고 일어난 후 /backup 폴더에 백업이 잘 되어있나 확인해 본다.

     

     

    ---------------------윗 글을 참고해서 백업 쉘을 한번 만들어보았다.------------------------

    백업폴더 뒤에 날짜마다 자동적으로 생성되는 기능을 추가!

    --------------------------------0000.sh------------------------------------------------------

    #!/usr/bin/expect

     set DATE [exec date +%F]

    spawn rsync -avzu --progress -e "ssh -p 22"   admin@192.168.0.255:/Main/ /data/customer_backup/customer_$DATE

    expect "password:"

    send "비밀번호\n"

    set timeout 360000

    expect eof

    if [catch wait] {

       puts "rsync2 failed"

       exit 1

    }

     

     

    exit 0

     

     

     

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

    Crontab -l   목록보기

               -e  수정


    Mm hh dom mon dow command

    00 01 01 12 * /root.backup.sh > /root/log.log 2>&1

    요일 명령문 > 로그위치 > 2>&1

     

     

    * 2개월에 한번씩 전체 백업한 결과!

+ Recent posts