오늘의 포스팅은 증분백업이다.

서버관리를 하다보면 백업이 중요하니까, 하지만 풀백업을 하면, 전날의 자료가 없고,

그렇다고 매일매일 풀백업을 하면 디스크가 견디질 못한다.

이럴때 사용하는게 증분백업, 전날 소스와 비교해서 변한 자료만 동기화 한다. 

당연히 용량의 증가도 많지 않다. 


돈주고 솔루션 사 쓸거면 포스팅도 안하겠지. 무료다.

rsync 를 사용한 솔루션 rsnapshot 이다.


1. 리눅스에 rsnapshot 을 yum으로 설치해보자

   아주 간단하게 설치가 된다.


1
$ yum install rsnapshot
cs


2. rnsapshot 설정파일을 간단하게 보도록 한다.


1
$ vim /etc/rsnapshot.conf
cs


   - 23번째 줄, rsnapshot_root : 백업 파일이 저장될 경로

   - 93 ~ 95줄 백업 주기를 설정

      alpha -> beta -> gamma 순으로 동작하며 각각 daliy, weekly, monthly 정도로 생각하면 된다. 

      맨 뒤의 숫자는 보관할 파일의 갯수, 숫자만큼 저장하며 오래된 것부터 삭제한다.

   - 보통 위의 두개 정도만 신경쓰면 된다. 추가적으로 할건 logfile 이나 loglevel 정도..?

   - 설정 파일에 있지만 가장 중요한 backup 경로 설정 방법은 새로 번호를 찍겠다.


3. 백업 스크립트 작성

    conf 파일 내의 225줄 #LOCALHOST 아래 부분부터 보면 된다.


    1) 서버내에서 파일을 백업할때 사용한다. conf 파일 내의 소스가 매우 잘 되어있다.


1
backup    /home/    localhost/
cs


        /home/ 하위에 있는 모든 파일을 /{rsnapshot_root}/localhost 폴더에 저장하겠다는 뜻이다.

        여기서 중요한 점은 저 공백은 꼭 탭으로 해야 한다. 스페이스로 하면 에러가 발생한다.

   

   2) rsync로 외부 서버의 파일 가져오기


1
backup    root@example.com:/home    example.com/    {rsync_option}
cs


rsync 로 example.com 서버의 /home 폴더를  {rsnaphost_root}/example.com/ 하위에 저장한다.

3번째 인자로 rsync 옵션을 지정할 수 있다.

example.com 서버의 rsync 접속 보안에 약간 신경을 써줘야 할 것으로 보인다.


   3) backup 스크립트 실행하기

 

1
backup_script    /usr/local/bin/backup_pgsql.sh    localhost/postgres/
cs


sqldump 를 위해 미리 생성해 둔 스크립트를 실행한다. 



대충 이정도만 알아도 증분백업을 돌리는데는 문제가 없다.

설정을 완료 했으면 테스트를 해본다


1
2
$ rsnaphost configtest
Syntax OK
cs


위와 같이 뜨면 매우 아름답게 설정은 완료 되었다.


실제로 실행을 하기 위해선 다음과 같이 한다.


1
$ rsnapshot alpha

cs


위 명령어를 실행하고 기다리면 백업 폴더에 백업 파일이 똭 있다.

그럼 이걸 주기적으로 백업하는 방법은 ???


정답은 크론이다


1
2
3
4
5
$ crontab -e
 
00    01    *    *    *    /usr/bin/rsnapshot alpha
00    01    *    *    1    /usr/bin/rsnapshot beta
00    01    1    *    *    /usr/bin/rsnapshot gamma
cs


크론에 대한 사용법은 대충 알거라 생각하지만... 가볍게 설명하면

인자별로 분, 시, 일, 월, 요일 이다


3번줄은 매일 AM 1:00 에 실행하라

4번줄은 월요일마다 실행하라 (0:일요일 ~ 6:토요일)

5번줄은 1일마다 실행하라 


라는 뜻이다


끝.!


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


참고사이트는 아래와 같다.


https://github.com/php79/backup
https://github.com/php79/backup/blob/master/docs/local-incremental-backup.md
https://github.com/php79/backup/blob/master/docs/remote-incremental-backup.md
https://github.com/php79/backup/blob/master/docs/rsnapshot-result.md

'기억할것들 > CentOS' 카테고리의 다른 글

서비스 자동실행 등록하기  (0) 2019.08.22
SSH root 원격 접속 제한 하기  (0) 2019.07.01
증분백업. rsnapshot 사용하기.  (0) 2019.01.11
PEM Key 로 public Key 생성하기  (0) 2018.08.13
Apache HTTPD/2 설정  (0) 2018.05.24
Apache Log 가상호스트 별로 쌓기  (0) 2017.11.28

가끔 개발을 하다보면 기본 타임존이 설정되어야 하는 경우들이 있다.

(왠만해서 시스템 시간을 가져다 쓰지만)


어쨌든 우리들은 귀찮으니까 보통 my.cnf 파일을 열고 [mysqld] 의 하단부에


1
default-time-zone=Asia/Seoul
cs


을 입력하고 서비스를 재시작! 하는데,

이게 왠걸 에러가 뜬다.  (안뜨면 땡큐)


에러가 뜰 경우에는 mysql 쿼리창을 열고


1
2
3
4
SELECT b.name, a.time_zone_id
FROM mysql.time_zone AS a
     LEFT OUTER JOIN mysql.time_zone_name AS b
        ON a.time_zone_id = b.time_zone_id;
cs

라고 지긋이 쿼리를 날려보면 역시! 아무것도 뜨지 않는다.

설정할 타임존 테이블이 없어서 에러를 뿜었나보다.


그럼 mysql에 타임존 정보를 넣어주겠다.

mysql 서비스가 올라와 있는 서버에


1
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
cs



라고 입력해 주면 뭔가 프로세스가 진행이 된다 된다...!

그리고 다시 mysql 에 접속하여 위 쿼리를 입력하면 timezone 리스트가 마구마구 올라온다.


그럼 다시 맨 처음에 설정하려고 했던 my.cnf 파일을 설정한다. 

그리고 서비스 재시작.


음 매우 잘되는군.

'기억할것들 > SQL' 카테고리의 다른 글

MySQL TimeZone 설정하기.  (0) 2018.12.18
mysql 설치순서  (0) 2018.08.13
MSSQL 메모리 누수 관리  (0) 2018.01.03

Tomcat 언제 쓰는 것일까.


보통 Linux 서버에는 웹서버로 Apache를 사용한다. 그런데..? Apache 는 JSP 를 해석할줄 모른다.!

그리하여 JSP 서비스를 하려면 Apache + tomcat을 써야 한다고 하더라.

(나같은 PHP 개발자는 영 적응하기 어렵다)


해서 보통 JSP 서비스 구성의 경우 html 은 앞단의 Apache 가 JSP 는 Tomcat 이 해석해서 Html 로 전달하는 구성이다

그럼 이제 개발환경 구성을 위해 Tomcat을 설치해 보겠다.


1. Tomcat 다운로드 바로가기

   -> 위 사이트에 접속 후 Tomcat 을 다운로드 받는다.

   -> 현재 날짜 기준 최신 버전 9.0.13 버전으로 다운로드 받은 후 압축을 풀도록 한다.


2. 압축을 푼 후 가볍게 파일이동을 한번 해 보겠다.

    커맨드 창을 켜서 압축을 해제 한 폴더로 

$ sudo mv apache-tomcat-9.0.13 /usr/local/
$ sudo ln -s /usr/local/apache-tomcat-9.0.13 /Library/Tomcat
$ sudo chown -R '{username}' /Library/Tomcat
$ sudo chmod +x /Library/Tomcat/bin/*.sh

{username} 에는 사용자 계정을 입력한다. 단, 계정에 띄어쓰기가 있는경우 싱글쿼터로 감싼다.


3. 아래 명령어를 통해 시작 및 종료를 할 수 있다.

$ /Library/Tomcat/bin/startup.sh
$ /Library/Tomcat/bin/shutdown.sh


4. 가볍게 브라우저에 localhost:8080 입력하면 딱 Tomcat이 구동됐다 싶은 창이뜬다.


그럼 끝.!

'기억할것들 > MAC' 카테고리의 다른 글

Tomcat 설치  (0) 2018.12.13
MAC 에서 Host 설정 하기  (0) 2018.05.23
High Sierra Telnet 설정하기  (0) 2017.12.26
MAC 에 Redis Desktop Manager 설치  (1) 2017.12.26

+ Recent posts