Alat yang mengawasi file / folder dan mengunggah saat perubahan di OS X?

1

Saya mencari alat SFTP atau rsync (?) (Atau skrip?) Yang menonton folder atau file tertentu dan mengunggahnya ke server jarak jauh dengan aman saat perubahan.

Latar belakang:

Saya sudah menggunakan Sublime SFTP untuk itu, ia bekerja dengan cukup baik, tetapi kadang-kadang "lupa" tugas menontonnya. Juga, saya memberikan Atom sebagai editor alternatif dan tidak ada alat yang hidup hingga 100% untuk Sublime SFTP.

Sebagian besar alat SFTP berbasis editor hanya mengunggah file saat disimpan, tetapi itu tidak mencakup file yang dibuat buy buy atau CodeKit.

Kami telah menambahkan gulp-sftp untuk skrip build kami, tetapi itu juga memiliki kelemahan.

Jadi apa yang saya ingin tahu: bukankah ada aplikasi mandiri yang dapat menonton file atau folder untuk perubahan dan mengunggahnya melalui SFTP, rsync atau scp?

Urs
sumber
1
Lihatlah tindakan Folder - ini akan memulai skrip ketika folder berubah
Mark
Saya punya petunjuk trac.cyberduck.io/ticket/2306
Urs

Jawaban:

0

Mencoba cron. Ini adalah alat yang menjalankan perintah pada waktu atau interval tertentu. Mungkin tidak persis apa yang Anda cari (clone on build) tetapi itu bekerja dengan cukup baik.

Untuk mengatur cron: dari Terminal, ketik crontab -e.

Ini akan memunculkan editor teks (tergantung pada editor teks mana yang Anda tetapkan sebagai default) dan header yang bagus menjelaskan apa yang dilakukan setiap bidang.

minute, hour: does as it says
dom: day of month
mon: month
dow: day of week

Sekarang, kita akan melihat perintah Anda untuk melakukan backup secara teratur. Alat hebat untuk cadangan adalah rsync. Anda harus mengatur kunci SSH agar berfungsi tanpa prompt kata sandi.

Inilah perintah yang saya gunakan:

rsync -vzhaPE --delete-after /path/to/local/file ip.address.of.server:/path/to/backup/location

Opsi yang digunakan: -vzhaPE

v: verbose
z: compress (good for slow connections. Adjust compression level with --compress-level=<1-9>)
h: human readable numbers
a: archive mode. This preserves timestamps and practically clones everything over as it were.
P: progress bar.
E: keep partial files. This means that if the connection was interrupted, rsync will pick up on the partial files and continue where it left off. Good for copying multiple large files over a slow network.
delete-after: deletes files from the server that have been deleting from the sending side

Opsi v, h dan P lebih untuk debugging manusia, jadi kami tidak akan memperkenalkannya ke dalam tugas cron kami.

Jadi, untuk menyatukannya di cron: (berjalan setiap sepuluh menit, misalnya)

*/10 * * * * rsync -zaE --delete-after /path/to/local/file ip.address.of.server:/path/to/backup/location

Perintah ini akan mengembalikan file apa pun di dalam direktori yang ditentukan ke direktori server yang ditentukan setiap sepuluh menit . Tidak ada duplikat akan dibuat karena rsync akan menghapus file yang disalinnya.

Selain itu, jika Anda mau, Anda juga dapat menjalankan skrip yang memindahkan cadangan yang disalin ke folder lain jika Anda tertarik dengan fungsionalitas versi seperti Time Machine. Anda akan memerlukan ruang penyimpanan yang cukup, dan beberapa perubahan kecil pada perintah cadangan (rsync push to rsync pull). Jika ini yang Anda cari, beri tahu saya dan saya akan mengembangkannya.

perhapsmaybeharry
sumber
Downvoter, mengapa downvote?
perhapsmaybeharry
1
Saya bukan downvoter, tapi saya mencari alat yang mengawasi perubahan secara konstan, bukan dalam interval. Jika Anda membuat beberapa css atau js melalui tegukan, Anda ingin segera dipindahkan ke lingkungan pengujian. Bahkan jika dimungkinkan untuk menjalankan cron setiap detik, itu mungkin terlalu banyak sumber daya, bukan?
Urs
Ah, begitu. Saya keliru dalam hal itu. Secara teknis, alat yang mengawasi perubahan secara konstan mungkin mengeksekusi beberapa baris kode setiap milidetik atau lebih, tetapi mungkin lebih dioptimalkan untuk tujuan semacam itu.
perhapsmaybeharry
+1 memberi jawaban saksama, meskipun bukan itu yang dicari
Tim Harper
0

saya menemukan https://github.com/DmitryKoterov/dklab_realsync/tree/master - setup mudah (dengan file konfigurasi untuk setiap situs dan wizard untuk membuatnya) itu lintas-platform, mendukung login tanpa kata sandi - hebat!

Berhati-hatilah saat menentukan apa yang harus disinkronkan atau tidak jika instance lokal Anda tidak 100% sama dengan yang ada di server - realysnc akan membuatnya sama!

Urs
sumber
0

https://atom.io/packages/remote-sync memiliki pengamat yang andal dan kurang "berisiko" untuk digunakan daripada remote_sync dari jawaban saya yang lain. Baik untuk menyinkronkan file .css dan .js saja.

Tidak berfungsi sepenuhnya tanpa kata sandi, saya menggunakannya dengan FTPS, bukan SFTP

Urs
sumber