TSF – Giải pháp IT toàn diện cho doanh nghiệp SMB | HCM

P9 - Backup, Cron Schedule Và Restore Snipe-IT Trên Ubuntu

SnipeIT – P9 Restore Snipe-IT Trên Ubuntu | Full Backup, Cron Schedule & Restore Tutorial

Trong môi trường production, việc backup và Restore Snipe-IT Trên Ubuntu không phải là tùy chọn – mà là bắt buộc.

Snipe-IT lưu trữ toàn bộ dữ liệu tài sản CNTT, người dùng, license, file upload và cấu hình hệ thống. Nếu server gặp sự cố như:

  • ❌ Crash hệ điều hành

  • ❌ Hỏng ổ cứng

  • ❌ Lỗi cấu hình

  • ❌ Migration sang server mới

Bạn sẽ mất toàn bộ dữ liệu nếu không có chiến lược backup – restore rõ ràng.

Trong bài viết này, bạn sẽ học được:

  • ✅ Backup đầy đủ Snipe-IT (Database + Files)

  • ✅ Thực hiện backup thủ công qua CLI

  • ✅ Tự động backup bằng Cron Job

  • ✅ Restore Snipe-IT Trên Ubuntu khi hệ thống gặp sự cố

  • ✅ Best practices về permission và bảo mật

Áp dụng cho:

  • Ubuntu Server 20.04

  • Ubuntu Server 22.04

  • Và các phiên bản Ubuntu mới hơn

Sau khi hoàn thành hướng dẫn này, bạn sẽ tự tin triển khai quy trình disaster recovery hoàn chỉnh cho Snipe-IT.


#1. Backup GUI (Manual)

Snipe-IT cung cấp sẵn tính năng backup trực tiếp trên giao diện web.

Các bước thực hiện:

Gui => Admin Setting => Backup => General Backup => Click Link Download

File backup tải về sẽ bao gồm:

  • Database dump

  • public/uploads

  • storage/private_uploads

  • OAuth keys

  • File cấu hình .env

⚠ Phù hợp khi cần backup nhanh trước khi nâng cấp hệ thống.


#2. Backup CLI (Manual + Schedule)

Đối với môi trường production, backup bằng CLI là phương pháp nên sử dụng.


🔹 Manual Backup Command

Chạy lệnh sau:

 
sudo -u www-data php /var/www/snipe-it/artisan backup:run

File backup sẽ được lưu tại:

 
/var/www/snipe-it/storage/app/backups

Lệnh này tạo file ZIP chứa:

  • Full MySQL dump

  • public/uploads

  • storage/private_uploads

  • OAuth keys

  • File .env


🔹 Scheduled Backup (Cron Job)

Để tự động hóa backup:

 
sudo crontab -e

Backup mỗi ngày lúc 2AM:

 
0 2 * * * /usr/bin/php /var/www/snipe-it/artisan backup:run >> /var/log/snipeit-backup.log 2>&1

Demo nhanh – backup mỗi 2 phút:

 
*/2 * * * * /usr/bin/php /var/www/snipe-it/artisan backup:run >> /var/log/snipeit-backup.log 2>&1

📌 Best Practice:

  • Lưu backup sang NAS hoặc storage ngoài

  • Đồng bộ offsite

  • Theo dõi log tại:

 
/var/log/snipeit-backup.log

Tự động hóa backup giúp đảm bảo dữ liệu luôn được bảo vệ mà không phụ thuộc thao tác thủ công.


#3. Restore

Đây là phần quan trọng nhất: Restore Snipe-IT Trên Ubuntu khi server gặp sự cố hoặc cần migration.


Step 1: Identify the Backup File

Liệt kê file backup:

 
ls -l /var/www/snipe-it/storage/app/backups

Ví dụ:

 
snipe-it-2025-12-01-10-36-01.zip

Tạo thư mục tạm để restore:

 
mkdir /tmp/snipe-restore

Giải nén file backup:

 
unzip /var/www/snipe-it/storage/app/backups/snipe-it-2025-12-01-10-36-01.zip -d /tmp/snipe-restore

Tìm file SQL:

 
ls /tmp/snipe-restore/db-dumps

Ví dụ:

 
mysql-snipeit.sql

Step 2: Delete the Old Database (Option)

⚠ Chỉ thực hiện nếu muốn restore full hệ thống (không phải migrate dữ liệu).

Xóa database cũ:

 
mysql -u root -p -e "DROP DATABASE snipeit;"

Enter mysql root password (Previous video : Abc@1234)

Tạo lại database:

 
mysql -u root -p -e "CREATE DATABASE snipeit CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Enter mysql root password (Previous video : Abc@1234)

Import dữ liệu:

 
mysql -u root -p snipeit < /tmp/snipe-restore/db-dumps/mysql-snipeit.sql

Step 3: Restore Files


#1 Restore file uploads

 
sudo cp -r /tmp/snipe-restore/public/uploads/* /var/www/snipe-it/public/uploads/

#2 Restore private_uploads

 
sudo cp -r /tmp/snipe-restore/storage/private_uploads/* /var/www/snipe-it/storage/private_uploads/

#3 Restore OAuth keys

 
sudo cp /tmp/snipe-restore/storage/oauth-private.key /var/www/snipe-it/storage/
sudo cp /tmp/snipe-restore/storage/oauth-public.key /var/www/snipe-it/storage/

Phân quyền đúng:

 
sudo chown www-data:www-data /var/www/snipe-it/storage/oauth-*.key
sudo chmod 600 /var/www/snipe-it/storage/oauth-*.key

#4 Restore the .env file

 
sudo cp /tmp/snipe-restore/.env /var/www/snipe-it/.env

Step 4: Fix permissions + clear cache

Di chuyển vào thư mục Snipe-IT:

 
cd /var/www/snipe-it

Phân quyền lại toàn bộ:

 
sudo chown -R www-data:www-data .

Set permission cần thiết:

 
sudo chmod -R 755 storage bootstrap/cache

Clear Laravel cache:

 
sudo php artisan config:clear
sudo php artisan cache:clear
sudo php artisan optimize

Step 5: Restart the service

 
sudo systemctl restart apache2

🚀 Tổng Kết – Hoàn Thành Restore Snipe-IT Trên Ubuntu

Với quy trình trên, bạn đã hoàn thiện:

  • Backup GUI

  • Backup CLI

  • Cron Schedule tự động

  • Restore database

  • Restore file upload & private data

  • Phân quyền chuẩn Linux

  • Clear cache Laravel

  • Restart service

Việc Restore Snipe-IT Trên Ubuntu giờ đây không còn phức tạp, kể cả trong môi trường production hoặc khi cần migration server.

Một chiến lược backup – restore rõ ràng sẽ giúp:

  • Đảm bảo tính liên tục dịch vụ (Business Continuity)

  • Giảm downtime

  • Bảo vệ dữ liệu tài sản CNTT quan trọng

Đây là kỹ năng bắt buộc với IT System Administrator vận hành Snipe-IT chuyên nghiệp.

Tham khảo thêm bài viết cùng chủ đề

P12 – Hướng dẫn Check in SnipeIT Hàng Loạt Cực Nhanh

P12 – Hướng dẫn Check in SnipeIT Hàng Loạt Cực Nhanh SnipeIT – P12 Cách Check-In & Check-Out Hàng Loạt Trong Snipe-IT (Bulk Method) Khi quản lý vài thiết bị, thao tác thủ công không phải vấn đề lớn. Nhưng khi cần xử lý 100–500 tài sản cùng lúc (onboarding,...

Read More

P11 – Hướng dẫn Check in SnipeIT cho IT Admins

P11 – Hướng dẫn Check in SnipeIT cho IT Admins SnipeIT – P11 How to Manage Check In Check Out in SnipeIT (Step-by-Step) Trong quản lý tài sản CNTT, việc cập nhật trạng thái thiết bị chính xác là yếu tố sống còn. Nếu không thực hiện đúng quy trình...

Read More