Skenario: IDE diatur pada kotak desktop Linux, mengedit file PHP secara lokal. Setiap kali saya menyimpan file, saya ingin perubahan ini muncul di server linux tempat Apache berjalan. Server memiliki ssh (dan samba dan nfs dalam hal ini).
Sebagai referensi, ketika saya mengedit file pada Windows, saya akhirnya menemukan WinSCP sebagai alat yang tepat yang saya butuhkan - WinSCP baru saja menghadirkan fitur ini, dengan sinkronisasi awal dan kemudian pembaruan berkelanjutan, menggunakan layanan pengawasan sistem file: "Jaga Remote Directory tetap up to Tanggal".
Di Linux, orang dapat berargumentasi bahwa sshf dapat digunakan untuk menghindari kebutuhan sinkronisasi sepenuhnya. Di windows, berbagi samba akan melakukan hal yang sama. Namun, saya ingin IDE bekerja dengan file lokal (pada disk SSD!), Tidak harus melalui jaringan untuk melakukan pengindeksan PHP dan whatnots, yang membutuhkan waktu lama.
Namun sshf mungkin menjadi bagian dari solusi - sehingga sinkronisasi berkelanjutan hanya perlu dilakukan antara dua direktori lokal.
Ada ide atau petunjuk?
Jawaban:
Anda juga dapat menggunakan
inotifywait
dari paket inotify-tools.sumber
rsync
Sayascp
mengalami penundaan yang menjengkelkan saat membuat koneksi ssh.Lsyncd akan menjadi solusi yang bagus untuk ini.
Bottom-line, ia menggunakan jenis alat yang sama untuk melakukan pekerjaan (inotify dan rsync) seperti yang disarankan oleh jawaban lain, tetapi lebih mudah untuk mengatur seseorang yang tidak terbiasa dengan skrip shell.
sumber
Saya sangat membutuhkan ini karena kode saya perlu dijalankan pada kotak jarak jauh dan saya menulis kode pada mesin lokal. Saya menemukan alat yang bagus yang dapat Anda gunakan untuk terus memonitor folder lokal Anda dan menyinkronkannya ke folder remote atau lokal: https://github.com/axkibe/lsyncd
Perintah sederhana untuk terus menyinkronkan dir lokal dengan mesin jarak jauh melalui ssh adalah:
Sama seperti perintah rsync lainnya, pastikan Anda memberikan path folder dengan benar dan periksa sebelum Anda menjalankan perintah. Saya hampir membunuh salah satu mesin jarak jauh saya karena saya ketinggalan untuk memberikan direktori tujuan yang benar. Pastikan Anda tidak ketinggalan jalur jauh dan jangan gunakan '/' kecuali Anda tahu apa yang Anda lakukan.
sumber
Jika Anda perlu mengamati filesystem, maka inotify adalah cara untuk melakukannya. Saya akan menulis skrip python sederhana menggunakan pyinotify untuk melakukan sinkronisasi ketika filesystem diubah. Lihat dokumentasi . Anda juga dapat memeriksa autosync.py untuk mendapatkan inspirasi. Selamat bersenang-senang.
sumber
Apa yang saya lakukan sekali adalah memiliki skrip bash berjalan
ls -l
dalam satu lingkaran (dengan beberapa tidur) dan membandingkan dengan output sebelumnya. Jika berubah, lakukan sinkronisasi Anda.Mulai skrip ini di terminal baru dengan nama file sebagai argumen (setelah memasukkan alat sinkronisasi Anda).
(Saya menggunakan ini untuk memulai kompilasi, bukan untuk menyinkronkan, tetapi ini akan bekerja dengan cara yang sama.)
sumber
Pendekatan yang jauh lebih sederhana:
Ekspor / var / www Anda dengan samba (atau nfs) dan bekerja pada file langsung di server.
Solusi lain: sebagian besar IDE memungkinkan berbagai konfigurasi penempatan - periksa apakah ada yang cocok untuk Anda.
Atau atur sistem Manajemen Kode Sumber seperti Git, Bazaar, dll.
Semoga berhasil !!
sumber