Tôi đang cố gắng để viết một kịch bản Python mà sẽ theo dõi một chuyển rsync, và cung cấp một (thô) ước tính của sự tiến bộ phần trăm. Đối với nỗ lực đầu tiên của tôi, tôi nhìn vào một lệnh rsync --progress
và thấy rằng nó in thông điệp như:Giám sát
1614 100% 1.54MB/s 0:00:00 (xfer#5, to-check=4/10)
Tôi đã viết một phân tích cú pháp cho các tin nhắn như vậy, và sử dụng một phần để kiểm tra để tạo ra một tiến trình phần trăm, ở đây, điều này sẽ hoàn thành 60%.
Tuy nhiên, có hai lỗ hổng trong việc này:
- Trong chuyển lớn, "tử số" của phân số để kiểm tra dường như không đơn điệu giảm, vì vậy tính đầy đủ tỷ lệ phần trăm có thể nhảy về phía sau.
- Tin nhắn như vậy không được in cho tất cả các tệp, có nghĩa là tiến trình có thể chuyển tiếp.
Tôi đã xem xét các lựa chọn thay thế khác của tin nhắn để sử dụng, nhưng chưa quản lý để tìm bất kỳ thứ gì. Có ai có ý tưởng nào?
Cảm ơn trước!
Các giá trị nhảy vì rsync bắt đầu truyền dữ liệu trong khi vẫn đang đánh giá công việc mà nó phải làm. Đó là một biện pháp tốt như bất kỳ bạn sẽ nhận được. – hop
Không có cách nào để đánh giá trước công việc cần làm? --dry-run --stats dường như là loại điều để làm điều này, tiếc là các giá trị nó tạo ra cho dữ liệu được chuyển giao là không chính xác. – paulmdavies
tại sao bạn làm chậm nó xuống, chỉ để làm cho nó hiển thị thông tin vô ích? – hop