Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

1. Lấy code về S2

ICT

Làm trên S2 nhé.

IP nội bộ của S1 giả định là: 192.168.1.6
Cần chạy trong crontab -e nhé!

Lý do:

  • File lớn, nếu chạy trong ssh có khả năng không hoàn thành rsync nếu dữ liệu lớn.
  • Dùng chính crontab -e này để cấu hình tự đồng bộ mỗi 5-10 phút luôn.

1. Lần đầu

1.1. Copy dữ liệu về

crontab -e
28 15 * * * /usr/bin/rsync -avz --progress root@192.168.1.6:/srv/www/  /mnt/live/www/ >> /home/nickname/log/rsync-qms-to-ai.log 2>&1

Ghi chú quan trọng:

  • Cấu hình trên trong crontab chạy với user thường, không phải root, nên quyền sẽ thuộc về user thường. Ví dụ nickname
  • Cần tạo trước thư mục này nhé /home/nickname/log/ nếu không sẽ báo lỗi chưa có thư mục
  • Cần cấp quyền cho nickname có thể ghi vào /mnt/live/www nữa nhé (chown -R nickname:nickname /mnt/live/www)

1.2. Setgid để file mới tự động đúng group

sudo chgrp -R www-data /mnt/live/www sudo find /mnt/live/www -type d -exec chmod 2755 {} \;

2.3. Mở ghi chỉ cho thư mục cần ghi

sudo find /mnt/live/www -path "*/sites/*/files" -type d -exec chmod 2775 {} \;
sudo find /mnt/live/www -path "*/sites/*/files" -type f -exec chmod 0664 {} \;

👉 Sau đó:

  • rsync bằng nickname hoặc root

  • file mới tự động group www-data

  • KHÔNG cần chown lại

2. Duy trì tự động

Chạy tự động 5 phút cho các lần sau:

crontab -e
*/5 * * * * /usr/bin/rsync -az --delete root@192.168.1.6:/srv/www/  /mnt/live/www/ >> /home/nickname/log/rsync-qms-to-ai.log 2>&1

Ghi chú:

  • Tham số -az --delete
  • Tham số --delete:

    • Xóa file ở đích nếu không còn ở nguồn

    • Đích sẽ giống nguồn 100%

  • Không có tham số v vì đã chạy lần đầu ổn rồi, không cần debug