Voglio usare Grunt e rsync distribuire del codice dal mio computer (Windows) a un server (Linux).grunt-rsync da client Windows non riesce
mio Gruntfile.js
è
module.exports = function(grunt) {
grunt.initConfig({
rsync: {
options: {
args: ['--verbose', '--chmod=777'],
exclude: ['*.git', 'node_modules'],
recursive: true
},
production: {
options: {
src: './bitzl.com',
dest: '/home/marcus/bitzl.com',
host: '[email protected]',
syncDest: true
}
}
}
});
grunt.loadNpmTasks('grunt-rsync');
}
Si prega di notare che io uso il homedirectory di marcus
e chmod=777
solo per semplificare il test.
Esecuzione grunt rsync
fallisce:
Running "rsync:production" (rsync) task
rsyncing ./example.com >>> /home/marcus/bitzl.com
Shell command was: rsync ./bitzl.com [email protected]:/home/marcus/bitzl.com --rsh ssh --recursive --delete --delete-exc
luded --exclude=*.git --exclude=node_modules --verbose --chmod=777
ERROR
Error: rsync exited with code 12
Warning: Task "rsync:production" failed. Use --force to continue.
Error: Task "rsync:production" failed.
at Task.<anonymous> (D:\git\bitzl.com\node_modules\grunt\lib\util\task.js:200:15)
at null._onTimeout (D:\git\bitzl.com\node_modules\grunt\lib\util\task.js:236:33)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Aborted due to warnings.
Tuttavia, l'esecuzione del comando rsync dall'alto senza Grunt funziona bene:
rsync ./bitzl.com [email protected]:/home/marcus/bitzl.com --rsh ssh --recursive --delete --delete-excluded --exclude=*.git --exclude=node_modules --verbose --chmod=777
promts Rsync per la passphrase della mia chiave pubblica (tramite Grunt doesn' t) e si sincronizza come una brezza.
L'autenticazione sul server funziona tramite chiave pubblica (con passphrase). Anche l'autenticazione della password andrebbe bene.
La mia ipotesi è che in qualche modo la password si interrompe e rsync non riesce con un errore di protocollo (che è exit code 12).
Cosa mi manca per ottenere grunt-rsync su Windows?
Aggiornamento:
Da una macchina virtuale Linux (Ubuntu 12.04 con Virtualbox/Vagrant) funziona come su si aspetterebbe.
possibile duplicato di [errore di protocollo cygwin rsync] (http://stackoverflow.com/questions/4892125/cygwin-rsync-protocol-error) –