Cách tự động sao lưu cơ sở dữ liệu MySQL bằng Bash Script

Cach Tu Dong Sao Luu Co So Du Lieu Mysql Bang Bash Script



MySQL là một RDBMS phổ biến hỗ trợ lưu trữ và quản lý cơ sở dữ liệu quan hệ một cách dễ dàng. Nó cũng cung cấp tiện ích máy khách mysqldump để tạo bản sao lưu hợp lý của cơ sở dữ liệu MySQL. MySQL hỗ trợ nhiều ngôn ngữ và nền tảng, có nghĩa là bạn có thể sử dụng tập lệnh Bash để sử dụng tiện ích mysqldump để sao lưu trong Linux.

Hướng dẫn này sẽ trình bày cách tự động sao lưu cơ sở dữ liệu MySQL bằng tập lệnh Bash, từng bước một.

Làm cách nào để tự động sao lưu cơ sở dữ liệu MySQL bằng Bash Script?

Tạo tập lệnh Bash để sao lưu cơ sở dữ liệu MySQL. Đầu tiên, mở terminal, tạo một thư mục và điều hướng đến thư mục bằng cách gõ các lệnh sau:







mkdir mysqlbackup

cd mysqlbackup/

Đầu ra hiển thị rằng bạn đã điều hướng thành công đến thư mục:





Tạo một tập lệnh bash có tên “ dự phòng.sh ” sử dụng bất kỳ trình chỉnh sửa nào, đối với bài đăng này, trình chỉnh sửa nano đang được sử dụng:





sao lưu nano.sh

Tập lệnh bash sẽ tạo:



Cung cấp thông tin đăng nhập MySQL và tên của cơ sở dữ liệu mà bạn muốn sao lưu:

DB_USER='tên người dùng'

DB_PASS='mật khẩu'

DB_

Đặt thư mục Backup “ BACKUP_DIR ” bằng cách cung cấp vị trí lưu tệp sao lưu:

BACKUP_DIR='/path/to/your/backup/thư mục'

Đặt định dạng ngày cho tên của tệp sao lưu:

NGÀY=$(ngày +'%Y-%m-%d_%H-%M-%S')

Sử dụng lệnh mysqldump này với thông tin đăng nhập cơ sở dữ liệu MySQL để tạo tệp sao lưu SQL:

mysqldump --user=$DB_USER --password=$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql

Để nén tệp sao lưu SQL bằng công cụ gzip, hãy sử dụng lệnh sau:

gzip $BACKUP_DIR/$DB_NAME-$DATE.sql

Để tiết kiệm dung lượng ổ đĩa, hãy xóa các tệp sao lưu cũ sau một khoảng thời gian, trong khoảng thời gian này “ 7 ” tập tin sao lưu ngày cũ sẽ bị xóa bằng lệnh này:

tìm $BACKUP_DIR -type f -name '*.gz' -mtime +7 -delete

Lưu tệp và thoát khỏi trình chỉnh sửa nano bằng cách nhấn “ CTRL + X ” phím:

Thay đổi quyền của tập lệnh bash thành có thể thực thi được bằng cách chạy lệnh này:

sao lưu chmod +x.sh

Đầu ra không có lỗi có nghĩa là việc thực thi lệnh thành công:

Chạy tập lệnh bằng lệnh bash này:

sao lưu sudo bash.sh

Nhập mật khẩu của Ubuntu và sử dụng “ ls ” lệnh để xác minh xem tệp sao lưu có được tạo hay không:

Tệp sao lưu được tạo thành công bằng cách sử dụng tập lệnh bash. Bây giờ để tự động hóa quá trình sao lưu bằng cách sử dụng “ cron ” tiện ích lập lịch công việc. Để gửi một công việc định kỳ mới, hãy sử dụng “ -Nó là ” tùy chọn với crontab:

crontab -e

Đặt thời gian để tự động chạy tập lệnh bash. Đối với bài đăng này, “ 2 giờ sáng ” được chọn để tự động chạy tập lệnh:

0 2 * * * /path/to/backup_mysql.sh

Lưu và thoát tệp:

Hãy xem một lệnh khác nếu bạn muốn sao lưu cơ sở dữ liệu của mình sau mỗi “ 5 phút ” gõ cái này và lưu tệp:

*/5 * * * * /path/to/backup_mysql.sh

Crontab sẽ mất một chút thời gian để tạo công việc thành công:

Kiểm tra thư mục để biết các tệp sao lưu được tạo tự động sau “ 2 giờ sáng ', sử dụng ' ls ' yêu cầu:

Các tệp sao lưu cơ sở dữ liệu MySQL được tạo tự động bằng tập lệnh bash và tiện ích cron.

Phần kết luận

Tạo tập lệnh bash bằng cách cung cấp thông tin đăng nhập MySQL và tên của cơ sở dữ liệu mà bạn muốn sao lưu và định dạng tên tệp. Sử dụng lệnh mysqldump để tạo tệp SQL sao lưu, gzip để nén tệp và chạy tập lệnh. Sử dụng crontab để thực hiện quá trình sao lưu tự động. Bài đăng này đã thảo luận về cách tự động sao lưu cơ sở dữ liệu MySQL bằng cách sử dụng tập lệnh Bash.