일단 리눅스 (우분투) 의 공식 다운로드 홈페이지에 들어갑니다.

https://www.ubuntu.com/download

위를 접속하시면

위 화면이 보이실 겁니다.

일반적으로 서버를 주로 이용하기 때문에, 빨간색으로 주어진 Server를 클릭합니다.

16.04를 지난번에 업로드하였습니다.

(http://itrainbowm.tistory.com/6?category=714575)

그 사이에 최신버전이 업그레이드 됬네요~


그러면 위 사진에서 초록색 다운로드 버튼을 클릭해봅시다.

그러면 위 화면이 뜨면서 자동으로 다운로드가 진행됩니다.


.ISO가 다운로드되면 가상머신에서 불러서 설치하면 완료됩니다.


설치 화면은 추후에 업로드 하도록 하곘습니다.... 설치를 하였는데 비밀번호가 기억이 안납니다..



리눅스 CMOS -- 시간 확인


 CMOS 시간 확인 

# clock -r    


시스템 시간 확인 

# date        


# date +%Y-%m-%d

2011-11-23


CMOS -- 시간 설정

 시스템시간을 CMOS시간으로 설정 

# clock -w   

 CMOS시간을 시스템시간으로 설정 

# clock -s    


리눅스 -- 시간 동기화


리눅스 시스템 시간 동기화 

# rdate -s time.bora.net  


시간 확인 

# date                          


 CMOS 시간에 적용 

# clock -w                   


리눅스에서 Zip 압축 해제

 


데비안 / 우분투에서는 다음 명령을 사용하여 zip / unzip 설치할 있습니다 :

sudo apt-get install zip unzip

 

파일이나 디렉토리 (photos.zip) 압축을 풀려면 다음을 사용하십시오 :

unzip photos.zip

 

 

 

 

압축해제 시 옵션들

unzip 명령을 사용할  주의해야   가지 옵션이 있습니다.
우리가 photos.zip에서 하나의 image1.png 원한다고 가정  봅시다.

unzip photos.zip image1.png

 

파일을 다른 디렉토리 (./directory/) 압축을 풀려면 어떻게?

unzip photos.zip -d ./directory/

 

zip 파일의 무결성을 확신하지 못하고 테스트하려는 경우 -t 플래그를 사용할  있습니다

unzip -t photos.zip

 


zip 파일에 파일을 나열하려면 간단한 명령을 사용하면됩니다.

unzip -l photos.zip

 


문제가 생기면, 압축 해제 man 페이지는 참고 자료가 됩니다.

man unzip

일단 mariaDB로 작업을 하던 중...


워드프레스 등 기타 mysql로 방향을 바로 가맄는 것에 대해서.. 정확한 분석을 못한 결과


차라리 기존 의 mysql 로 재설치 하는 방법이 빠르다는 판단이 들었다..


그래서


혹시나 설치 잘 못 하시거나 삭제 후 재 설치하시는 분들을 위해


재설치하는 명령어를 올리겠습니다.


root권한이 아닌신분들은


명령어 앞에


sudo


를 붙여주세요.


apt-get autoremove

apt-get remove --purge mysql*

apt-get autoclean

deluser mysql

rm -rf /var/log/mysql

rm -rf /var/lib/mysql

rm -rf /etc/mysql






 마이에스큐엘 설치 방법입니다.


갑자기 영어가 깨지는 바람에... 한글로 ㅠㅠ mysql..마이에스큐엘 왜 이러지...ㅋㅋㅋ



·         sudo apt-get update

·          

·         sudo apt-get install mysql-server

리눅스 환경 설정

 

원격 접속을 하기 위해선 SSH가 필요합니다. 설치 방법은 아래를 따라하면 손 쉽게 설치 및 활용이 가능합니다.

우분투 설치가 끝난 후에 terminal를 이용하여 아래의 방식대로 따라오시면 됩니다.

 

저는 우분투 설치 한 PC의 마우스가 없기 때문에... 혹시나 저 같은 사람이 있을 수도 있어서

터미널 여는 단축키는 컨트롤 + 알트 + T

입니다.

 

개인 사용자 아이디 및 패스워드 입력 후 최초 로그인을 합니다.


이후 , 


sudo apt-get install ssh 명령을 입력해 우분투에 ssh 설치해야합니다.



자동 설치 중 물음이 나오면 Y 나 y 를 입력합니다.



SSH 설치하면서 아마 openssh-server가 설치가 됩니다.

하지만 혹시 안되었을 수도 있으니 확인겸 명령어를 날리도록 하겠습니다.

 

 sudo apt-get install openssh-server 명령어를 입력해 openssh-server 설치해줍니다.


already the newest version 같은 메시지가 출력되는  보면 이미 설치가 되었습니다.


윈도우와 명령어가 비슷하면서도 다릅니다. 오타 주의하세요~


ifconfig 명령어를 통해 자신의 ip주소를 확인을 할 수 있습니다.


일반적인 버츄어박스에서는 내부 IP를 10.0.2.15로 제공을 해 줍니다.


아래에서 보시면 ip주소 형식을 따르는 inet addr가 10.0.2.15,

      127.0.0.1 개가 존재합니다. 하지만 여기서 저희에게 필요한 주소는 Link encap:Local Loopback 바로 밑에 있는 127.0.0.1 입니다.

      (127.0.0.1 루프백 주소라고 하는데요. 자기 자신에게 패킷을 보낼 사용하는 주소라고 생각하시면 됩니다.)


혹시 자신의 PC가 내부 네트워크 망이고, 고정 IP를 사용하신다면 밑의 포트포워딩 부분에서 IP주소를 자신의 PC로 바꾸어 주셔도 됩니다.

오히려 그게 더 내부 망에서 상호 통신하기에는 편리 합니다.



 포트 포워딩은 설정은 virtualbox에서 해야합니다.

 virtualbox에서 설치한 우분투를 오른쪽 클릭하면 설정으로 들어가실 있는데요.

 거시서 네트워크 탭을 선택하시면 아래와 같은 화면의 중앙 아래쪽에서 포트 포워딩이라는 버튼을 보실 있습니다.(클릭해주세요.)

 



 



 그러면 + 버튼을 눌러 포트 포워딩 규칙을 추가해주시고 호스트 ip는 127.0.0.1, 호스트 포트는 22, 게스트 포트는 22를 입력해줍니다.


저는 내부 네트워크 및 고정 IP인 제 PC를 입력한 예제를 보여 드렸습니다. 호스트 포트는 10022를 사용한 이유는 다른 포트들과 충돌을 최대한 피하기 위해서 임의로 지정한 포트입니다. 

개인적으로? 통상 가상으로 들어갈때 포트 번호의 100을 더 붙여서 10080, 10088 이런방식의 접근을 선호합니다. ㅎㅎ 


물론 22포트로 지정하셔도 무방합니다.

 


푸티(Putty)를 이용한 접속

 

putty 다운로드는 구글에 검색하시면 많이 나오기 때문에 지나가겠습니다.


putty검색해 보세요~ 별도의 다운만 받으시면 install과정 없이 실행됩니다.

 

 푸티를 실행하면 아래와 같은 화면이 나오게 되는데 host name(ip address)과 port, connection type을 아래와 같이 설정해주시고 Open 버튼을 클릭해 우분투에 접속해주시면 됩니다.(물론 우분투는 virtualbox를 통해 실행되어있는 상태여야 합니다.)

 


 Port는 버추어 박스에서 지정한 호스트 포트를 입력해주셔야 합니다.


맨처음 연결 시도에는 인증 키를 주고 받은 메세지 창을 확인할 수 있습니다.



읽어보시면 아시겠지만... 저는 그냥 무조건 Y를 클릭합니다... ㅎㅎ


이렇게 하시면 자율적으로 원격으로 우분투에 접근할 수가 있습니다!.


저는 마우스가 없기 때문에 마우스가 붙어있는 윈도우  PC에서 원격으로 관리를 주로 하고 있습니다.


많은 도움이 되셨으면 합니다. 그럼 이만.

그 동안 서버를 사용하면서 우분투(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까지 기본설치 하라고 체크해 주었습니다. 



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


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


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



    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