Linux command

Sao lưu cơ sở dữ liệu trên VPS hoặc Server Linux

Sau một hồi lân la, cuối cùng mình cũng đã làm được một script chạy tự động sao lưu cơ sở dữ liệu trên Server Linux của mình, xin chia sẻ kinh nghiệm cho các bạn đang có nhu cầu tạo một shell script như thế nhé.

Thực hiện

Đầu tiên các bạn tạo file backup.sh sau đó thêm nội dung như sau:

#!/bin/sh
 # Autobackup by Jam
 mysqldump -u root -p[password] --all-databases > /backup/$(date +%F.%H).sql.gz

Trong đó:

  • -u là Username của bạn
  • -p là mật khẩu truy nhập
  • –all-databases Tất tật SQL của bạn
  • Tên file được đặt theo ngày tháng

Các bạn lưu lại, sau đó cho vào folder nào đó, ví dụ mình cho vào /root/backup.sh

Sau đó cần phải cấp quyền chạy cho nó:

chmod +x /root/backup.sh

Nếu các bạn muốn chạy nó ngay thì chỉ cần chạy lệnh:

sh backup.sh

Còn nếu bạn muốn lên lịch cho nó chạy hàng ngày thì cần phải thêm vài lệnh nữa:

crontab -e

Sau khi gõ lệnh đó thì Consor của bạn sẽ lên trình chỉnh sửa “vi”, bạn bấm chữ “i” để vào chế độ insert, thêm lệnh sau để chạy 1 lần / ngày lúc 12h 30 phút:

30 12 * * * /path/to/folder/autobackup.sh

Bấm “ESC” và đánh :wq rồi Enter, chúc mừng, bạn đã hoàn thành !

 Lưu ý

Nếu báo lỗi ở “mysql.event” thì cần thêm Ignore table trong lệnh:

mysqldump -u root -p[pass] --all-databases --ignore-table=mysql.event > ...

Nếu muốn Gz lại thì thêm câu lệnh này:

mysqldump -u root -p[password] --all-databases --ignore-table=mysql.event  | gzip -9 > /backup/$(date +%F.%H).sql.gz

Chúc các bạn thành công !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Trả lời

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 *