Backup dữ liệu linux
Ở bài viết này mình sẽ hướng dẫn bạn tự viết một script nhỏ để sử dụng Backup Source code và toàn bộ database lại. Mình sẽ chia làm 2 phần là Backup database riêng và Backup mã nguồn riêng, mời bạn cùng mình theo dõi nhé. Backup all databaseỞ đây phần này mình sẽ hướng dẫn bạn chạy lệnh backup database, dump toàn bộ database hoặc một database cụ thể cũng được, và bạn cần thực hiện như sau. Chỉnh sửa file my.cnf Bạn sẽ phải thực hiện mở file my.cnf lên, file này thường sẽ nằm trong đường dẫn /etc/my.cnf và thêm vào các dòng sau, Nếu bạn không tìm được file này thì xem ngay bài viết bên dưới để tìm kiếm một file trên Linux
[mysqldump] user=root password=passwd root mysql Sau khi gán thành công thông tin mysql root, thì bạn dump database hệ thống sẽ bỏ qua không hỏi nhập pass root mysql nữa. Viết Script backup Source và DatabaseBây giờ mình bắt đầu viết một script nhỏ để backup, mình sẽ chú thích script để bạn xem vào và hiểu rõ script nói gì.
cd /bin
touch script-backup.sh && chmod +x script-backup.sh
vi /bin/script-backup.sh
#!/ bin/bash ## giúp UNIX xác định code sẽ được chạy bằng chương trình nào, ở đây ta sẽ dùng bash Lệnh Dump database.Lệnh này sẽ dump toàn bộ database lưu ở định dạng .sql.gz sau đó di chuyển vào thư mục /home/backup
mysqldump -u root --all-databases | gzip > linuxcanban-$(date +%d-%m-%y).sql.gz && yes n | mv linuxcanban-$(date +%d-%m-%y).sql.gz /home/backup/
# Thiết lập biến (variables) backup_folder=$1 ## Thư mục chứa mã nguồn backup dest_folder=$2 ## Thư mục sẽ lưu file backup ## Thiet lap bien cua file Backup ngay=$(date +%d-%m-%y) ## File backup se co dinh dang la (DD-MM-YY) Ngay-Thang-Nam file_name="backup-$ngay" ## Thiet lap bien nay file se co dinh dang la: Backup-DD-MM-YY echo "Dang tien hanh backup du lieu tai $backup_folder va se duoc gui den $dest_folder" zip -r $dest_folder/$file_name $backup_folder > /dev/null echo "Backup Successful!" echo "File backup: $file_name" echo "File duoc luu tai: $dest_folder" ls -la $dest_folder echo "Full Backup Successful =>> Linuxcanban.com "
#!/bin/bash #Auth : Anh Quan echo "Backup Database in Process" mysqldump -u root --all-databases | gzip > linuxcanban-$(date +%d-%m-%y).sql.gz && yes n | mv linuxcanban-$(date +%d-%m-%y).sql.gz /home/backup/ echo "Database backup Successfull" # Thiết lập biến (variables) backup_folder=$1 ## Thư mục chứa mã nguồn backup dest_folder=$2 ## Thư mục sẽ lưu file backup ## Thiet lap bien cua file Backup ngay=$(date +%d-%m-%y) ## File backup se co dinh dang la (DD-MM-YY) Ngay-Thang-Nam file_name="backup-$ngay" ## Thiet lap bien nay file se co dinh dang la: Backup-DD-MM-YY echo "Dang tien hanh backup du lieu tai $backup_folder va se duoc gui den $dest_folder" zip -r $dest_folder/$file_name $backup_folder > /dev/null echo "Backup Successful!" echo "File backup: $file_name" echo "File duoc luu tai: $dest_folder" ls -la $dest_folder echo "Full Backup Successful =>> Linuxcanban.com " Tạo Cronjob để tự chạy backupĐể tạo Cronjob bạn gỏ lệnh sau và nhấp chữ i hoặc Insert để chỉnh sửa crontab -e 0 0 * * * cd /bin && script-backup.sh /home/linuxcanban.com/public_html /home/backup/ Chú thích:
Bạn có thể xem trang crontab.guru để tạo lịch nhé |