Linux MySQL 예약 백업 및 git 저장소에 업로드

藏色散人
풀어 주다: 2019-12-24 14:29:29
앞으로
2405명이 탐색했습니다.

소개

저희는 중소 규모 프로젝트를 배포할 때 일반적으로 데이터 저장을 위한 스토리지 도구로 mysql을 선택합니다. 따라서 대규모 프로젝트의 경우 매일의 데이터 양이 매우 많습니다. 언젠가 우리 웹 사이트나 서버가 공격을 받으면 데이터 손실이 폭발할 것이므로 데이터베이스 백업을 설계하는 것은 당연합니다.

백업을 위해 데이터를 저장할 수 있습니까? 물론 백업 주기는 데이터 양에 따라 결정됩니다. 여기서는 보통 매일 아침에 한 번 백업합니다. 백업된 파일은 당사 서버의 디렉터리에 저장되지만, 어느 날 서버가 다운되는 경우가 있습니다. , 그리고 백업 파일이 사라졌기 때문에 우리는 매일 데이터베이스를 백업하고 각 백업을 자동으로 원격 창고에 제출하는 것이 좋은 해결책이라고 생각했습니다. 여기서는 Code Cloud를 예로 들어 보겠습니다. "

linux. tutorial

Code Cloud

먼저 원격 창고를 구축합니다. 여기서는 새로운 개인 창고를 생성하기 위해 Code Cloud

를 선택했습니다. 물론 매번 비밀번호 없이 파일을 제출하기 위해서입니다. 서버 SSH 키에서 생성할 수 있습니다

서버에 새 백업 생성

백업한 파일을 서버에 저장하기 위해 새 백업 디렉터리를 생성하세요

$ mkdir /bak
로그인 후 복사

디렉터리 입력 후 계속해서 두 개의 폴더를 생성하고, mysqlBak 및 shDir, 하나는 스크립트 파일용이고 다른 하나는 백업된 파일입니다.

이제 shDir 디렉토리에 들어간 후 실행하면 됩니다.

$ vim mysqlBak.sh
로그인 후 복사

특정 코드는 다음과 같습니다.

#!bin/sh
################### 数据库配置信息 #######################
createAt=`date +%Y-%m-%d-%H:%M:%S`
user=root
passwd=ghc1996
dbname=ispace
mysql_back_path=/bak/mysqlBak
################### 执行命令 #######################
mysqldump -u $user -p$passwd $dbname > $mysql_back_path/$createAt.sql
cd /bak/mysqlBak
/usr/local/git/bin/git add .
/usr/local/git/bin/git commit -m $createAt
/usr/local/git/bin/git push
로그인 후 복사

이건 그냥 간단한 스크립트인데 리눅스를 쉽게 이해하고 싶어서 실행한다. 데이터베이스를 백업해서 원격웨어하우스에 푸시하면 된다

그래서 스크립트이기 때문에 언제 실행해야 하는지 알려줘야 한다. 그리고 스크립트 실행을 지정합니다.

$ crontab -e
로그인 후 복사

매일 이른 아침에 백업을 하여 원격웨어하우스에 추가하길 바라겠습니다. 그다음에 추가

$ 0 0 * * * /bin/sh /bak/shDir/mysqlbak.sh
로그인 후 복사

리눅스 crontab의 경우 지정된 시간이 5부분밖에 없습니다

Linux MySQL 예약 백업 및 git 저장소에 업로드crontab -e 명령을 사용하여 타이밍 스크립트를 직접 편집하세요. 시간 + 특정 이름

예:

0 0,3,7,9,12,15,18,21,23 * * * /bin/sh /bak/shell/mysqlBak.sh
로그인 후 복사

이 경우 매일 0,,3,7,9,12,15,18,21,23시에 이 스크립트 파일을 실행하면 다음과 같은 결과가 나타납니다. 기본 데이터베이스 백업

예약된 작업 실행:

$ crontab -l
로그인 후 복사

서비스가 시작되지 않은 경우 예약된 작업을 다시 시작하세요

$ systemctl restart crond
로그인 후 복사

이제 예약된 작업이 시작되었습니다. 원격 웨어하우스를 제출하기 위한 전제 조건은 서버에서 SSH를 생성하는 것입니다.

파일을 제출해야 하는 디렉터리에 대해 git 디렉터리를 초기화하면 국에서 필요한 작업을 구성할 수 있습니다.

물론 그럴 수도 있습니다. 그 과정에서 몇 가지 문제가 발생하여 아래 관련 링크에 나열했습니다.

이렇게 하면 매일 이른 아침에 데이터베이스를 백업하고 코드 클라우드 원격 창고에 제출할 수 있습니다. 이것이 바로 우리가 원하는 효과입니다.

백업 주기는 프로젝트의 데이터 크기에 따라 다르다고도 말씀드렸습니다.

각 프레임워크마다 고유한 백업 메커니즘이 있습니다. 여기에 쓴 것은 우리가 직접 구현한 일반적인 백업 메커니즘입니다.

위 내용은 Linux MySQL 예약 백업 및 git 저장소에 업로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:ruoxiaozh.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿