소개
저희는 중소 규모 프로젝트를 배포할 때 일반적으로 데이터 저장을 위한 스토리지 도구로 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부분밖에 없습니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!