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!