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
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?

Click on a star to rate it!

Average rating 4.4 / 5. Vote count: 9

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.