Saya memiliki situasi yang memerlukan solusi seperti yang diminta poster asli. Saya merekam permainan hoki di komputer saya di satu lokasi dan saya ingin menontonnya di TV saya di lokasi lain. Tautan antara kedua lokasi memungkinkan penyalinan sekitar 1,3 MB / detik dan video rekaman sekitar 1,5 MB / detik. Jadi, saya ingin menyalin file ketika mulai merekam. Dengan cara ini permainan 3 jam saya akan menyalin dalam waktu sekitar 3,5 jam. Jadi, saya menyalinnya saat mulai merekam dan saya bisa mulai menontonnya 30 menit setelah dimulai. Maka saya bisa menontonnya tanpa gangguan, hampir secara real time. Yaitu, selama saya bisa menyalinnya saat menulis file baru. Masalah dengan alat-alat seperti rsync dan scp adalah bahwa mereka melihat ukuran file ketika Anda memulai salinan dan setelah itu menyalin jumlah data, itu berhenti; bahkan jika file tersebut tumbuh lebih dari dua kali lipat selama salinan itu. Dan, jika, saya hanya menggunakan rsync dalam satu lingkaran untuk menyalinnya setelah itu berhenti, ketika rsync berikutnya selesai itu membangun kembali file target dan yang membunuh pemutar video saya dan saya harus me-restart menontonnya dan maju cepat ke mana pun saya berada dalam program ketika tiba-tiba membunuhnya. Saya menginginkan solusi yang lebih baik dan saya belum dapat menemukannya, jadi saya menyatukan ini sebagai gantinya:
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'
Jadi apa fungsinya?
Pertama, saya menggunakan dd untuk menyalin file saat tumbuh. Karena file tumbuh lebih cepat daripada dd dapat mengirimkannya melalui jaringan, dd tidak pernah mengejar hingga akhir file. Selanjutnya, saya pipe ke "pipe viewer (pv)" dan saya berikan perkiraan seberapa besar file akan didasarkan pada seberapa besar file-file ini biasanya. Ini tidak perlu, tapi saya suka melihat meteran kemajuan. Kemudian, saya menyalurkan aliran ke koneksi ssh saya. Sambungan ssh digunakan -C
untuk kompresi (untuk mengurangi bandwidth jaringan dan mencoba mempercepatnya), -c arcfour,blowfish-cbc
untuk enkripsi yang paling murah (sekali lagi untuk mempercepat sedikit),-p
adalah untuk port firewall yang saya gunakan di tujuan, dan ssh akhirnya menjalankan perintah dd pada target untuk membuat ulang file ketika menerimanya. Saya senang mengatakan, solusi ini sangat bagus. Saya bisa menonton pertandingan hoki sementara file sedang dibuat dan disalin dengan hanya penundaan singkat.