Sau đây, TENTEN sẽ hướng dẫn các bạn cách backup database tự động bằng việc sử dụng shell script
B1: thực hiện SSH tới VPS
Sử dụng lệnh vi mysqlbackup.sh (tạo file mysqlbackup.sh)
Sau đó nhập nội dung bên dưới
Tại dòng : backup_parent_dir="/var/backups/mysql (là đường dẫn lưu trữ các file backup database , bạn có thể chỉnh lại đường dẫn tùy ý)
mysql_user="root" (là tài khoản root của MySQL)
mysql_password="password" (điền password cụ thể)
Sau khi chỉnh sửa xong , tiến hành save lại
B2: phân quyền 777 cho mysqlbackup.sh#!/bin/bash # Simple script to backup MySQL databases # Parent backup directory backup_parent_dir="/var/backups/mysql" # MySQL settings mysql_user="root" mysql_password="" # Read MySQL password from stdin if empty if [ -z "${mysql_password}" ]; then echo -n "Enter MySQL ${mysql_user} password: " read -s mysql_password echo fi # Check MySQL password echo exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2>/dev/null if [ "$?" -gt 0 ]; then echo "MySQL ${mysql_user} password incorrect" exit 1 else echo "MySQL ${mysql_user} password correct." fi # Create backup directory and set permissions backup_date=`date +%Y_%m_%d_%H_%M` backup_dir="${backup_parent_dir}/${backup_date}" echo "Backup directory: ${backup_dir}" mkdir -p "${backup_dir}" chmod 700 "${backup_dir}" # Get MySQL databases mysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed /^Database$/d` # Backup and compress each database for database in $mysql_databases do if [ "${database}" == "information_schema" ] || [ "${database}" == "performance_schema" ]; then additional_mysqldump_params="--skip-lock-tables" else additional_mysqldump_params="" fi echo "Creating backup of \"${database}\" database" mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip > "${backup_dir}/${database}.gz" chmod 600 "${backup_dir}/${database}.gz" done
Sử dụng lệnh : chmod 777 mysqlbackup.sh
B3 : thực thi file mysqlbackup.sh
Sử dụng lệnh : sh mysqlbackup.sh
Sau khi hoàn tất, các file database sẽ được lưu trong thư mục đã chỉ định trước đó