Git Product home page Git Product logo

backup's People

Contributors

ibin79 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backup's Issues

로컬 풀백업 - 디렉토리 지정 외

로컬 풀 백업 기능에서 개선 요청 드립니다.

  1. 디렉토리 지정
    서버에 따라서 백업 받고 싶은 데이터가 /home 이외의 위치에 있는 경우가 있습니다.
    로컬 풀 백업 디렉토리를 지정할 수 있게 설정영역으로 올려 주셨으면 합니다.
  2. home 디렉토리에서 제외할 디렉토리 지정
    어떤 디렉토리는 테스트 목적이고 용량만 커서 제외하고 싶은 경우가 있습니다.
    exclude='test12,test4' 이런 식으로 해서 제외할 것을 지정할 수 있으면 합니다.

좋은 솔루션에 감사드립니다^^

증분백업시 특정 날자로의 복구

안녕하세요. 좋은자료 공유해주셔서 요긴하게 사용하고있습니다.

다름이아니라 증분백업시에 원하는 날짜로의 복구는 어떻게해야할까요?

현재 파일 전체복구는

rsync -avr /backup/.snapshots/daily.0/localhost/data/* /data/

위 커맨드를 사용해서 이용하고있는데, 증분백업시 원하는날짜로의 복구는 어떻게 해야할지 이슈남깁니다.
문의할곳이 없어.. 이슈로 남깁니다.

증분백업시 오류 문의 드립니다.

[04/Oct/2016:04:05:01] /usr/bin/rsnapshot daily: ERROR: Lockfile /var/run/rsnapshot.pid exists and so does its process, can not continue

mysql 의 위치를 변경하게 되어서 위치 수정후 증분백업 실행하니 위와 같은 에러구문이 출력되네요.
무엇이 문제인지를 잘 모르겠습니다..

/etc/logrotate.d/rsnapshot 추가

개요

백업 에러 유무에 대한 정기 점검 시행시, 이미 해결된 과거 로그가 계속 노출됨

# grep ERROR /var/log/rsnapshot|tail
[2017-11-28T04:05:01] /usr/bin/rsnapshot daily: ERROR: rsnapshot can not continue. If you think an entry looks right, make
[2017-11-28T04:05:01] /usr/bin/rsnapshot daily: ERROR: sure you don't have spaces where only tabs should be.
[2017-11-29T04:05:01] /usr/bin/rsnapshot daily: ERROR: /etc/rsnapshot.conf on line 207:

조치

rsnapshot 은 1회성이 아닌 대부분 영구적인 설정, 디렉토리 미존재, 원격 서버 미접속 오류이므로 최근 로그만 확인하면 됨.

따라서 logrotate 를 통해, 주단위로 로그 파일을 백업하도록 안내

echo '/var/log/rsnapshot {
        rotate 52
        weekly
        compress
        missingok
}' > /etc/logrotate.d/rsnapshot

lograte 적용 결과

# ls -lt /var/log/rsnapshot*
-rw-r--r--. 1 root root 29621  5월  2 07:24 /var/log/rsnapshot
-rw-r--r--. 1 root root  2703  4월 28 10:28 /var/log/rsnapshot-20180429.gz
-rw-r--r--. 1 root root  2197  4월 21 10:26 /var/log/rsnapshot-20180422.gz
-rw-r--r--. 1 root root  2696  4월 15 09:15 /var/log/rsnapshot-20180416.gz
-rw-r--r--. 1 root root  6604  4월  7 18:58 /var/log/rsnapshot-20180408.gz

증분 백업시 exclude_file 처리가 되지 않습니다.

php79: /home 디렉토리에서 제외할 디렉토리/파일 목록을 만들 경우, 아래처럼 4번째 인자값을 추가해주시면 됩니다.
backup /home/ localhost/ exclude_file=/backup/home.exclude
(탭으로 구분되어 있습니다.)

현재 위와 같이 vi /etc/rsnapshot.conf 설정값이 있는데요.

/backup/home.exclude 내에
/home/test/

지정해줘도 백업시 test 계정을 백업하고 있습니다.

테스트를 해봤는데 특별한 에러는 보이지 않습니다.

예전부터 잘 사용해왔는데. 백업하드 교체후에 백업은 잘 진행되는데 exclude_file 부분이 적용이 안되고 있네요.

[root@localhost backup]# rsnapshot -t daily
echo 649 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded
/home/ /backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc/
/backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded
/var/spool/cron/ /backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded
/root/ /backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded
/var/lib/mysql/ /backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/daily.0/localhost/
mkdir -m 0755 -p /backup/.snapshots/tmp/
cd /backup/.snapshots/tmp/
/backup/.snapshots/php79-mysql-backup.sh
cd /backup/.snapshots/
sync_if_different("/backup/.snapshots/tmp/",
"/backup/.snapshots/daily.0/localhost/mysqldump/")
mkdir -m 0755 -p /backup/.snapshots/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded
--exclude-from=/backup/home.exclude /home/
/backup/.snapshots/daily.0/localhost/
touch /backup/.snapshots/daily.0/

증분 백업, 백업 대상 예제 추가

crontab 설정

  • /var/spool/cron/

로컬 증분 백업을 원격 백업할 경우, mysqldump 를 중복 실행하지 않고 이미 생성된 dump 를 가져옴

  • /backup/.snapshots/daily.0/localhost/mysqldump/

redis

  • /var/lib/redis/

mysqldump 시 replication 정보 추가

mariadb replication 상태에서 master 백업시, slave 에서 복원을 위한 replication 정보 추가

--single-transaction 설정은 이미 포함되어 있음

--master-data=2

백업된 sql 상단에 추가되는 내용

--
-- Position to start replication or point-in-time recovery from
--

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000113', MASTER_LOG_POS=72282874;

--
-- GTID to start replication from
--

-- SET GLOBAL gtid_slave_pos='0-1-193208812';

ex) --single-transaction --master-data=2

월단위 백업인 rsnapshot monthly 가 실행되지 않는 문제

문제

  • /backup/.snapshots/monthly.0/ 백업이 존재하지 않음.

  • 1개월이 지난 백업을 최근 3개월간 보관하는 월단위 백업의 누락.

  • grep monthly /var/log/cron 크론 데몬에서 월단위 백업의 실행 기록 조차 없음.

원인

# tail -n2 /etc/cron.d/php79-rsnapshot 
5   3   *  *  1 root    /usr/bin/rsnapshot weekly
5   2   1  *  * root    /usr/bin/rsnapshot monthly[root@localhost ~]# 

monthly 뒤에 빈 라인없이 바로 붙어 나옴.

기존 사용자 해결 방법

  • 이미 php79 backup 을 사용중인 기존 사용자/etc/cron.d/php79-rsnapshot파일 마지막에 빈라인만 추가하면, 다음 매달 1일부턴 월단위 백업이 정상적으로 이루어지게 됨.
echo '' >> /etc/cron.d/php79-rsnapshot
  • 정상적인 설정 확인
# tail -n2 /etc/cron.d/php79-rsnapshot  
5   3   *  *  1 root    /usr/bin/rsnapshot weekly
5   2   1  *  * root    /usr/bin/rsnapshot monthly
[root@localhost ~]# 

제대로 실행이 된건지를 모르겠습니다.

[22/Jul/2016:04:05:01] /usr/bin/rsnapshot daily: started
[22/Jul/2016:04:05:01] echo 41664 > /var/run/rsnapshot.pid
[22/Jul/2016:04:05:01] mkdir -m 0755 -p /backup/.snapshots/daily.0/
[22/Jul/2016:04:05:01] /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home /backup/.snapshots/daily.0/localhost/
[22/Jul/2016:06:18:56] /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /usr/local/mysql/lib/mysql /backup/.snapshots/daily.0/localhost/
[22/Jul/2016:06:18:56] mkdir -m 0755 -p /backup/.snapshots/daily.0/localhost/backup/
[22/Jul/2016:06:18:58] mkdir -m 0755 -p /backup/.snapshots/tmp/
[22/Jul/2016:06:18:58] cd /backup/.snapshots/tmp/
[22/Jul/2016:06:18:58] /etc/cron.daily/php79-mysql-backup.sh
[22/Jul/2016:06:20:54] cd /backup/.snapshots/
[22/Jul/2016:06:20:54] sync_if_different("/backup/.snapshots/tmp/", "/backup/.snapshots/daily.0/localhost/backup/mysqldump")
[22/Jul/2016:06:20:54] /bin/rm -rf /backup/.snapshots/tmp/
[22/Jul/2016:06:20:54] touch /backup/.snapshots/daily.0/
[22/Jul/2016:06:20:54] rm -f /var/run/rsnapshot.pid
[22/Jul/2016:06:20:54] WARNING: /usr/bin/rsnapshot daily: completed, but with some warnings

예제처럼
/usr/bin/rsnapshot daily: completed successfully

해당 메세지와 다르게 warnings 메세지가 있어서요.

두번째로, home 디렉토리에서 제외할 디렉토리를 지정하려 하는데요.

만약 home 디렉토리 하위에 test1,test2,test3 디렉토리가 있는 상태에서 test2,test3 디렉토리를
제외하고 증분백업을 하려할려면 어떻게 해야 할까요?

conf 파일에서 아래와 같이 예제가 있는데 정확하게 이해를 못하겠네요.

php79: /home 디렉토리에서 제외할 디렉토리/파일 목록을 만들 경우, 아래처럼 4번째 인자값을 추가해주시면 됩니다.
backup /home/ localhost/ exclude_file=/backup/home.exclude

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.