1. Backup dữ liệu file, thư mục

- Xác định file, thư mục cần backup

Ở hướng dẫn này, dữ liệu của tôi gồm các thư mục nằm trong /home

- Tạo script với ngôn ngữ bash shell để backup dữ liệu trong thư mục /home

​Tạo file /usr/src/backup-web.sh với nội dung dưới

#!/bin/bash

DATE=`date +"%d-%m-%y"`
mkdir -p $BACKUP

for i in `ls /home`
do
      /usr/bin/zip -r -9 $BACKUP/$i.zip /home/$i
      sleep 1
done

##Giữ 7 bản backup trên server, tùy vào dung lượng server của bạn mà điều chỉnh số ngày cho phù hợp

find /backup -name 'web*' -type d -mtime +6 -exec rm -rf {} \;

- Chạy lệnh dưới để phân quyền thực thi cho file vừa tạo:

chmod +x /usr/src/backup-mysql.sh

2. Backup dữ liệu database MySQL

- Xác định tài khoản có toàn quyền trong các database MySQL để backup

​Trường hợp này tôi có tài khoản Mysql là root với mật khẩu abcd@123

- Tạo script với ngôn ngữ bash shell để backup các database trong Mysql

​Tạo file /usr/src/backup-mysql.sh với nội dung dưới

#!/bin/bash

DATE=`date +"%d-%m-%y"`
BACKUP="/backup/mysql-$DATE"
mkdir -p $BACKUP

for i in `mysql -u root –pabcd@123 -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
do
        mysqldump -u root –pabcd@123 $i | gzip -9 > $BACKUP/$i.sql.gz
        sleep 1
done

##Giữ 7 bản backup trên server, tùy vào dung lượng server của bạn mà điều chỉnh số ngày cho phù hợp

find /backup -name 'mysql*' -type d -mtime +6 -exec rm -rf {} \;

- Chạy lệnh dưới để phân quyền thực thi cho file vừa tạo

chmod +x /usr/src/backup-mysql.sh

3. Lập lịch cron job chạy backup cho server

- Tại VPS/Server Linux chạy lệnh crond -e để vào chế độ lập lịch của hệ thống.

- Cấu hình chạy backup 1h00 hàng ngày với dữ liệu web và 3h00 hằng ngày với dữ liệu database

Chúc bạn thực hiện thành công!