Tôi có một tình huống cần một giải pháp như người đăng ban đầu đã hỏi. Tôi đang ghi lại một trận khúc côn cầu trên máy tính của mình ở một địa điểm và tôi muốn xem nó trên TV của mình ở một địa điểm khác. Liên kết giữa hai vị trí cho phép bản sao đạt tốc độ khoảng 1,3Mb / giây và video ghi được khoảng 1,5Mb / giây. Vì vậy, tôi muốn sao chép tập tin khi nó bắt đầu ghi. Bằng cách này, trò chơi 3 giờ của tôi sẽ sao chép trong khoảng 3,5 giờ. Vì vậy, tôi sao chép nó khi nó bắt đầu ghi và tôi có thể bắt đầu xem nó 30 phút sau khi nó bắt đầu. Sau đó tôi có thể xem nó mà không bị gián đoạn, gần như trong thời gian thực. Đó là, miễn là tôi có thể khiến nó sao chép khi nó viết tập tin mới. Vấn đề với các công cụ như rsync và scp là chúng xem kích thước của tệp khi bạn khởi tạo bản sao và một khi nó sao chép lượng dữ liệu đó, nó sẽ thoát; ngay cả khi tệp đã tăng hơn gấp đôi trong bản sao đó. Và, nếu, tôi chỉ sử dụng rsync trong một vòng lặp để sao chép nó một khi nó dừng lại, khi rsync tiếp theo hoàn thành, nó sẽ xây dựng lại tệp mục tiêu và nó sẽ giết chết trình phát video của tôi và tôi phải khởi động lại xem nó và nhanh chóng chuyển tiếp đến bất cứ nơi nào tôi đến trong chương trình khi nó bất ngờ giết chết nó. Tôi muốn một giải pháp tốt hơn và tôi đã không thể tìm thấy một giải pháp, vì vậy tôi đã cùng nhau tìm ra giải pháp này:
dd if=2031_20160514030000.mpg |
pv --size 4653819304 |
ssh -C -c arcfour,blowfish-cbc -p 5555 myserver.com 'dd of=/media/TV/2031_20160514030000.mpg'
Vậy cái này làm gì?
Đầu tiên, tôi sử dụng dd để sao chép tập tin khi nó phát triển. Vì tệp phát triển nhanh hơn dd có thể gửi qua mạng, nên dd không bao giờ bắt kịp đến cuối tệp. Tiếp theo, tôi chuyển nó thành "trình xem đường ống (pv)" và tôi ước tính nó về mức độ lớn của tệp sẽ dựa trên mức độ lớn của các tệp này. Điều này là không cần thiết, nhưng tôi muốn xem một máy đo tiến độ. Sau đó, tôi dẫn luồng đến kết nối ssh của tôi. Kết nối ssh sử dụng -C
để nén (để giảm băng thông mạng và cố gắng tăng tốc), -c arcfour,blowfish-cbc
để mã hóa ít tốn kém nhất (một lần nữa để tăng tốc mọi thứ lên một chút),-p
dành cho cổng tường lửa của tôi, tôi đang sử dụng tại đích và ssh cuối cùng chạy lệnh dd trên mục tiêu để tạo lại tệp khi nhận được. Tôi rất vui khi nói rằng, giải pháp này hoạt động rất tốt. Tôi có thể xem trò chơi khúc côn cầu trong khi tập tin đang được tạo và sao chép chỉ với một độ trễ ngắn.