Thủ Thuật

Crontab Backup Database on Linux

4.4
(9)

Ở đây mình sử dụng Centos 7, nhưng lệnh này là phổ biến cho Linux nên bạn yên tâm không cần giống hệ điều hành.

Mình tạo Script cho Crontab Backup Database như sau:

mysqldump --opt -u AAAAA -pBBBBB CCCCC | gzip -9 > PATHtoFolderbackup/NameFileBackup-'date +\%Y\%m\%d-\%H\%M\%S'.sql.gz

Script Backup Database

Giải thích ý nghĩa và những chỗ cần sử trong đoạn Script Backup Database ở trên:

  • AAAAA: User đăng nhập vào mysql. VD: root
  • BBBBB: Password đăng nhập vào user AAAAA. Lưu ý viết liền -pPass -> No space.
  • CCCCC: Tên database cần backup.
  • | gzip -9 : Để nén với định dạng gz nếu không thích thì bỏ.
  • PATHtoFolderbackup : đường dẫn tới folder cần lưu backup.
  • NameFileBackup: Tên file cần backup.
  • -‘date +\%Y\%m\%d-\%H\%M\%S‘.sql.gz : Phần mở rộng để xác định Năm Tháng Ngày Giờ Phút Giây lưu.

Tiếp theo là tạo một Cron Job để chạy.

Cái này thì đơn giản các bạn xem ví dụ sau rồi mình giải thích thêm.

4 */3 * * * mysqldump –opt -u AAAAA -pBBBBB CCCCC | gzip -9 > PATHtoFolderbackup/NameFileBackup-‘date +\%Y\%m\%d-\%H\%M\%S’.sql.gz /dev/null 2>&1

Lệnh Cron Job

4 */3 * * *: Là mốc thời gian thực hiện lệnh trong crontab.

Cron job Backup Database
  • Nếu để dạng * * * * * : Tương đương 1 phút thực hiện lệnh 1 lần.
  • 4 */3 * * * : Có nghĩa là phút thứ 4 của mỗi 3 tiếng mình thực hiện lệnh 1 lần.
  • Nếu bạn thực hiện lệnh 1 ngày 1 lần tại 23h59p thì nó sẽ là: 59 23 * * *

2>&1 : Các bạn cứ điền để đó thôi.

Những lưu ý:

Tiếp theo Cron Job lưu nó ở đâu 🙂 Vấn đề này là do mỗi người, theo mình thì có nhiều cách. Nhưng đơn giản nhất mình đang dùng là chơi luôn theo dạng cục bộ ở root. Xem thêm bài này: https://thuthuatcaidat.com/sua-loi-no-crontab-for-root/ (xem hướng dẫn làn theo 4 bước đó).

Khi thành thạo bạn hoàn toàn có thể chỉnh sửa Cron Job qua SFTP, click và sửa thôi, miễn bạn xác định được được cái file đó nằm chỗ nào.

Script backup như trên là đơn giản nhất, đối với những câu lệnh SSH dài thì bạn dẫn đường dẫn dạng root PathToFolder/filename.sh. Với filename.sh có nội dung là câu lệnh backup database ở trên.

VD: 59 23 * * * root /usr/local/auto/backupdatabase.sh >/dev/null 2>&1

Với nội dung backupdatabase.sh mysqldump –opt -u AAAAA -pBBBBB CCCCC | gzip -9 > PATHtoFolderbackup/NameFileBackup-‘date +\%Y\%m\%d-\%H\%M\%S’.sql.gz

Về cơ bản là vậy, còn lỗi gì thì comment để sửa dần, mình cũng mới nhập môn 😀

How useful was this post?

thuthuatcaidat.com

Recent Posts

Ví dụ về việc chuyển file giữa 2 VPS

Đôi khi việc chuyển file hoặc download từ local Việt Nam đi các VPS nước…

3 năm ago

Thay đổi port SSH trên Linux

Kiểm tra port SSH đang sử dụng trên VPS netstat -atnp | grep "ssh" Kiểm…

3 năm ago

Sửa lỗi phpMyAdmin – Error

phpMyAdmin – Error Error during session start; please check your PHP and/or webserver log file…

5 năm ago

Thiết lập MySQLDumper

Đây là phần quản lý mysql, cơ sở dữ liệu lớn, dành cho những bạn…

5 năm ago

Tự động xóa hết file log trên VPS Linux bằng Crontab

Sẽ không có hình ảnh minh họa cụ thể nào, tất cả hướng dẫn sẽ…

5 năm ago

Cách cài đặt Fail2Ban trên CentOS 7

Cách cài đặt Fail2Ban trên CentOS 7. There were xxxxx failed login attempts since the…

5 năm ago