Script sao lưu cơ sở dữ liệuPhát triển & tùy chỉnh

Script Bash hoặc Python sao lưu cơ sở dữ liệu MySQL hoặc PostgreSQL và chỉ giữ những bản sao bạn chọn

Thường xong trong 15 phútBao gồm chỉnh sửaKiểm tra chất lượng
Các gói
Bảo vệ thanh toánChi tiết
  • Chỉnh sửa trong phạm vi gói là miễn phí.
  • Nếu bạn không phản hồi trong vòng 3 ngày sau khi bàn giao, kết quả sẽ được tự động chấp nhận.

Số tiền được tạm giữ khi bạn thanh toán và chỉ được chuyển khi bạn chấp nhận kết quả.

Script Bash hoặc Python sao lưu cơ sở dữ liệu MySQL hoặc PostgreSQL và chỉ giữ những bản sao bạn chọn

Ví dụ kết quả

Ví dụ cho gói Tiêu chuẩn

Gộp file doanh số hằng tháng của 9 cửa hàng thành một báo cáo Excel

Cách chạy

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Thư mục: sales/2026-10, tìm thấy 9 file
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 dòng
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 dòng
2026-11-02 09:14:04 WARN  shop-07.csv: bỏ qua 3 dòng không có giá (dòng 88, 412, 913)
2026-11-02 09:14:05 INFO  Xong: 10.412 dòng -> report-2026-10.xlsx (sheet “Doanh số” và “Tổng cộng”)

Cài đặt, không phải code

Tên cột của từng cửa hàng nằm trong settings.ini, nên thêm cửa hàng mới hay đổi tên cột chỉ là thêm một dòng ở đó:

[columns]
date = Ngày, Ngày bán, Ngày giao dịch
product = Sản phẩm, Mặt hàng, Tên hàng
quantity = SL, Số lượng, Cái
price = Giá, Đơn giá

Một phần code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Đọc file của một cửa hàng và đặt cho các cột tên theo báo cáo."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: không có cột cho “{name}” (đã tìm: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

File bàn giao: file ZIP gồm merge_sales.py (310 dòng), settings.ini, requirements.txt và README hướng dẫn cài Python, chạy script và ý nghĩa của từng thông báo trong nhật ký. Khách hàng tự chạy script trên máy tính của mình.

Khách hàng: một chuỗi nhỏ gồm 9 cửa hàng văn phòng phẩm; mỗi cửa hàng gửi doanh số của tháng dưới dạng file CSV hoặc Excel, với tên cột hơi khác nhau. Yêu cầu: một script đọc mọi file trong một thư mục, đưa các cột về cùng một dạng và ghi ra một báo cáo Excel duy nhất gồm toàn bộ doanh số và một sheet tổng theo từng cửa hàng.

Khách hàng và mọi thông tin đều là giả định.

Về dịch vụ này

Cơ sở dữ liệu không được sao lưu đều đặn thì chỉ cách việc mất đơn hàng, bài viết hay hồ sơ khách hàng một lần cập nhật hỏng hoặc một lần đầy ổ đĩa. Script này, viết bằng Bash hoặc Python tùy máy chủ của bạn, tạo bản dump đầy đủ của cơ sở dữ liệu MySQL, MariaDB hoặc PostgreSQL bằng công cụ đi kèm (mysqldump hoặc pg_dump), nén lại, đặt tên theo ngày và chỉ giữ những bản sao theo quy tắc của bạn, ví dụ 7 bản hằng ngày, 4 bản hằng tuần và 6 bản hằng tháng; bản cũ hơn chỉ bị xóa theo đúng những quy tắc đó. Mật khẩu cơ sở dữ liệu nằm trong file tùy chọn chuẩn do bạn tự điền trên máy chủ (.my.cnf hoặc .pgpass), không bao giờ nằm trong code. Bạn tự cài đặt và chạy script trên máy chủ của mình; chúng tôi không bao giờ đăng nhập vào đó. Hãy thử trước trên một bản sao thử nghiệm, và khôi phục một bản sao lưu vào cơ sở dữ liệu thử để chắc chắn nó hoạt động.

Bao gồm những gì

  • Bạn nhận được gìFile ZIP gồm script, README hướng dẫn từng bước và, từ gói Tiêu chuẩn, file cài đặt chứa cơ sở dữ liệu, thư mục và số bản sao cần giữ; code cũng được hiển thị trên trang đơn hàng.
  • Công cụ chuẩnmysqldump hoặc pg_dump, không cần cài gì lạ
  • Xoay vòng theo quy tắc của bạnBản cũ chỉ bị xóa theo mức bạn đặt
  • Mật khẩu nằm ngoài codeTrong .my.cnf hoặc .pgpass trên máy chủ của bạn
  • Phát hiện lỗiTừ gói Tiêu chuẩn, bản dump lỗi hoặc rỗng được ghi nhật ký và không tính là bản sao
  • Code dễ đọcCó chú thích, dễ thêm cơ sở dữ liệu về sau

Cách hoạt động

  1. 1
    Công việcBạn mô tả máy chủ, cơ sở dữ liệu và số bản sao cần giữ
  2. 2
    CodeChúng tôi viết script và hướng dẫn cài đặt
  3. 3
    Chạy thửBạn chạy trên bản sao thử nghiệm và khôi phục một bản sao lưu vào cơ sở dữ liệu thử
  4. 4
    Chỉnh sửaBạn yêu cầu chỉnh sửa trong phạm vi gói và gửi thông báo lỗi nếu có

Chúng tôi cần gì từ bạn

Cơ sở dữ liệu (MySQL, MariaDB hoặc PostgreSQL) và phiên bản, hệ điều hành máy chủ (ví dụ Ubuntu 22.04) và bạn có cài được gói phần mềm ở đó không, cơ sở dữ liệu lớn cỡ nào, bản sao lưu ở đâu và còn bao nhiêu dung lượng. Quy tắc xoay vòng: giữ bao nhiêu bản hằng ngày, hằng tuần và hằng tháng. Với gói Cao cấp, nơi lưu thứ hai và địa chỉ nhận email báo lỗi. Đừng bao giờ gửi mật khẩu hay quyền truy cập máy chủ.

Chúng tôi sẽ hỏi bạn:

  • Cơ sở dữ liệu nào, và lớn cỡ nào?
  • Nằm trên máy chủ nào?
  • Giữ bao nhiêu bản sao?
  • Bản sao nên lưu ở đâu?
  • Bash hay Python?

So sánh các gói

Các góiCơ bảnMột cơ sở dữ liệu434.000 ₫Tiêu chuẩnSao lưu có file cài đặt894.000 ₫Cao cấpCông cụ sao lưu1.815.000 ₫
Thời hạn1 ngày2 ngày3 ngày
Số lần chỉnh sửa123
Codetối đa 150 dòngtối đa 400 dòngtối đa 1.000 dòng
Số file code1tối đa 3tối đa 8
File cài đặtKhôngCóCó
Thông báo lỗi rõ ràng và nhật kýKhôngCóCó
Tùy chọn chạy và hướng dẫn chạy theo lịchKhôngKhôngCó
Hướng dẫn cài đặt và chạy (README)CóCóCó
Ngôn ngữBash hoặc PythonBash hoặc PythonBash hoặc Python
Đặt hàng Cơ bảnĐặt hàng Tiêu chuẩnĐặt hàng Cao cấp

Bảo vệ thanh toán

Bạn thanh toán khi đặt hàng, nhưng tiền chỉ được chuyển cho kết quả đã được chấp nhận.

  • Giá cố địnhGiá gói không thay đổi sau khi bạn thanh toán.
  • Số tiền được tạm giữKhi bạn thanh toán, số tiền chỉ được tạm giữ. Tiền được chuyển cho dịch vụ khi bạn chấp nhận kết quả.
  • Kiểm tra trước khi bàn giaoMọi kết quả đều được kiểm tra chất lượng trước khi đến tay bạn, và bạn xem được kết quả trên trang đơn hàng trước khi chấp nhận.
  • Chỉnh sửa miễn phíYêu cầu chỉnh sửa trong phạm vi bản yêu cầu của bạn, với số lần mà gói cho phép.
  • Tự động chấp nhận sau 3 ngàyNếu trong vòng 3 ngày sau khi bàn giao, bạn không chấp nhận kết quả cũng không yêu cầu chỉnh sửa, kết quả sẽ được tự động chấp nhận. Nếu bạn nhắn tin trong chat đơn hàng sau khi bàn giao, đơn hàng sẽ chờ; sau khi trả lời, chúng tôi có thể tính lại 3 ngày từ đầu và sẽ thông báo trong chat.
  • Làm lại hoặc hoàn tiền toàn bộNếu kết quả không đúng với yêu cầu của bạn và các lần chỉnh sửa không khắc phục được, hoặc công việc kéo dài quá gấp đôi thời hạn, hãy nhắn tin trong chat đơn hàng: chúng tôi sẽ làm lại hoặc hoàn tiền toàn bộ.
Cách hoạt động →

Hỏi đáp

Script có xóa bản sao lưu cũ không?

Chỉ theo quy tắc bạn đưa, như giữ 7 bản hằng ngày và 4 bản hằng tuần, và chỉ trong thư mục sao lưu mà script ghi vào. Cho tới khi bạn đặt quy tắc, script giữ lại mọi bản.

Tôi có giữ bản sao ngoài máy chủ được không?

Gói Cao cấp sao chép từng bản sao lưu sang ổ đĩa thứ hai hoặc kho lưu trữ bạn đang có, bằng công cụ dòng lệnh của kho đó và khóa của chính bạn, do bạn tự điền vào phần cài đặt.

Website có bị khóa trong lúc script chạy không?

Với bảng InnoDB trong MySQL và với PostgreSQL, bản dump được tạo mà không cần dừng website. Cơ sở dữ liệu rất lớn vẫn có thể làm website chậm đi, nên hãy chạy vào giờ vắng khách.

Các bạn có cài đặt trên máy chủ của tôi không?

Không. Chúng tôi không bao giờ đăng nhập vào máy chủ của bạn. README chỉ rõ từng bước, từ sao chép script tới thêm vào cron (gói Cao cấp).

Chưa tìm thấy câu trả lời?

Các gói