Strumento che guarda file / cartelle e carica in caso di modifica su OS X?


1

Sto cercando uno strumento SFTP o rsync (?) (O script?) Che controlla una determinata cartella o determinati file e li carica su un server remoto in modo sicuro al momento della modifica.

Lo sfondo:

Ho usato Sublime SFTP per questo, funziona abbastanza bene, ma a volte "dimentica" i suoi doveri di sorveglianza. Inoltre, sto provando Atom come editor alternativo e non ci sono strumenti in grado di vivere al 100% con Sublime SFTP.

La maggior parte degli strumenti SFTP basati su editor carica semplicemente i file al momento del salvataggio, ma ciò non copre i file creati con buy gulp o CodeKit.

Abbiamo aggiunto gulp-sftpai nostri script di build, ma questo ha anche degli svantaggi.

Quindi quello che mi chiedevo: non esiste un'applicazione autonoma che può semplicemente guardare file o cartelle per le modifiche e caricarli tramite SFTP, rsync o scp?


1
Guarda le azioni della cartella - queste daranno il via a uno script quando cambia una cartella
Segna il



Risposte:


0

Prova cron. È uno strumento che esegue i comandi in un determinato momento o intervallo. Potrebbe non essere esattamente quello che stai cercando (clone su build) ma funziona abbastanza bene.

Per impostare cron: da Terminale, digitare crontab -e.

Questo dovrebbe far apparire un editor di testo (in base all'editor di testo impostato come predefinito) e una bella intestazione che spiega cosa fa ogni campo.

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

Ora daremo un'occhiata al tuo comando per eseguire backup regolari. Un ottimo strumento per i backup è rsync. Dovrai impostare le chiavi SSH affinché funzioni senza una richiesta di password.

Ecco il comando che uso:

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

Opzioni utilizzate: -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

Le opzioni v, h e P sono più utili per il debug umano, quindi non le introdurremo nel nostro cron job.

Quindi, per metterlo insieme in cron: (esegui ogni dieci minuti, per esempio)

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

Questo comando eseguirà il backup di qualsiasi file nella directory specificata nella directory specificata del server ogni dieci minuti . Non verranno effettuati duplicati poiché rsync eliminerà i file su cui copia.

Inoltre, se lo desideri, puoi anche eseguire uno script che sposta il backup copiato in un'altra cartella se sei interessato a una funzionalità di controllo delle versioni simile a Time Machine. Tuttavia, avrai bisogno di spazio sufficiente e alcune piccole modifiche al comando di backup (rsync push per rsync pull). Se questo è quello che stai cercando, fammi sapere e mi espanderò su di esso.


Downvoter, perché il downvote?
forse

1
Non sono il downvoter, ma sto cercando uno strumento che controlla costantemente i cambiamenti, non a intervalli. Se costruisci alcuni CSS o JS tramite gulp, vuoi che venga immediatamente spostato nel tuo ambiente di test. Anche se fosse possibile eseguire il cron ogni secondo, potrebbe richiedere troppe risorse, no?
Urs,

Ah, capisco. Allora mi sbaglio in questo senso. Tecnicamente, uno strumento che controlla costantemente i cambiamenti sta probabilmente eseguendo alcune righe di codice ogni millisecondo o giù di lì, ma probabilmente è più ottimizzato per quel tipo di scopo.
forse

Ho fatto +1 per una risposta esaustiva, anche se non era quello che si cercava
Tim Harper,

0

Ho trovato https://github.com/DmitryKoterov/dklab_realsync/tree/master - l'installazione è semplice (con un file di configurazione per ogni sito e una procedura guidata per crearlo) è multipiattaforma, supporta l'accesso senza password - fantastico!

Fai attenzione quando definisci cosa sincronizzare o meno se la tua istanza locale non è uguale al 100% a quella sul server: realysnc le renderà uguali!


0

https://atom.io/packages/remote-sync ha un watcher affidabile ed è meno "rischioso" da usare rispetto a remote_sync dall'altra mia risposta. Va bene solo per la sincronizzazione di file .css e .js.

Tuttavia, non funziona completamente senza password, lo uso con FTPS anziché SFTP

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.