>데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터베이스의 쉘 스크립트 자동 백업 세부정보

MySQL 데이터베이스의 쉘 스크립트 자동 백업 세부정보

黄舟
黄舟원래의
2017-03-20 14:10:421425검색

이 글에서는 주로 MySQL 데이터베이스의 쉘 스크립트 자동 백업 관련 정보를 소개합니다. 웹사이트나 애플리케이션의 백그라운드에 데이터베이스를 백업하는 기능 버튼이 있지만 수동으로 실행해야 합니다. 안전한 일일 자동 백업 방법이 필요합니다. 필요한 친구는

MySQL 데이터베이스의 쉘 스크립트 자동 백업

을 자주 참조하면 됩니다. 데이터베이스를 백업하는 것은 좋은 습관입니다. 데이터베이스가 손상되거나 데이터가 손실될 확률은 낮지만 일단 발생하면 후회해도 소용이 없습니다. 일반적으로 웹사이트나 애플리케이션의 백그라운드에 데이터베이스를 백업하는 기능 버튼이 있지만 수동으로 실행해야 합니다. 안전하고 자동화된 일일 백업 방법이 필요합니다. 다음 쉘 스크립트를 사용하면 Crontab을 설정하여 매일 MySQL 데이터베이스를 백업할 수 있습니다.

#!/bin/bash
# 数据库认证
 user=""
 password=""
 host=""
 db_name=""
# 其它
 backup_path="/path/to/your/home/_backup/mysql"
 date=$(date +"%d-%b-%Y")
# 设置导出文件的缺省权限
 umask 177
# Dump数据库到SQL文件
 mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql

위 스크립트를 통해 매일 SQL 백업 파일을 내보낼 수 있으며, 파일 이름은 날짜를 기준으로 생성됩니다. 시간이 지남에 따라 이러한 파일이 많이 생성되며 일부 오래된 백업 파일을 정기적으로 삭제해야 합니다. 이 작업은 위 스크립트 뒤에 추가할 수 있습니다.

# 删除30天之前的就备份文件
 find $backup_path/* -mtime +30 -exec rm {} \;

위 스크립트를 사용할 때 문제가 발생한 적이 있습니다. Crontab에서 오류 없이 내보내기 위해 스크립트를 정기적으로 실행했지만 내보내기가 빈 SQL 파일이었습니다. 그러나 콘솔에 로그인하여 수동으로 스크립트를 실행한 결과가 나왔습니다. 성공적인 백업에서. 나중에 Crontab 실행 스크립트에 시스템 환경 정보가 부족하여 mysqldump를 찾을 수 없다는 사실이 밝혀졌습니다. 수정 방법은 mysqldump의 전체 경로를 사용하는 것이었습니다. 에러 메시지가 나오지 않는 이유는 mysqldump가 에러 메시지를 stderr로 출력하기 때문입니다. 명령 끝에 "2>&1"을 추가하면 정보 리디렉션 명령에서 오류 메시지를 볼 수 있습니다.

mysqldump -ujoe -ppassword > /tmp/somefile 2>&1

위 내용은 MySQL 데이터베이스의 쉘 스크립트 자동 백업 세부정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.