Tengo una carpeta que contiene archivos para un sitio web estático como:
/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...
Si actualizo algo en mi computadora portátil, quiero un solo comando para enviar los archivos a mi servidor ubuntu. No quiero configurar FTP en él si no lo tengo también, preguntándome si scp podría manejar esto.
tar
través dessh
: unix.stackexchange.com/a/10028/79839Respuestas:
El comando
scp -r source user@target:dest
recorrerá todos los subdirectorios de origen y los copiará.Sin embargo, se
scp
comporta comocp
y siempre copia archivos, incluso si es igual tanto en el origen como en el destino. [Ver aquí para una solución alternativa.]Como este es un sitio web estático, lo más probable es que solo esté haciendo actualizaciones, no recreando todo, por lo que probablemente encontrará que las cosas se mueven más rápido si usa
rsync
over ssh en lugar descp
. Probablemente algo como...Para empezar. Si está haciendo esto a través de una LAN, personalmente usaría las opciones
-avW
pararsync
.Rsync también le brinda la capacidad de duplicar eliminaciones en su fuente; así que si elimina un archivo de su árbol, puede ejecutarlo
rsync
como se indica arriba e incluir la bandera--delete
y eliminará el mismo archivo del lado de destino.fuente
scp tiene una bandera recursiva que hará lo que quieras.
scp -r /base/directory user@server:/to/location
desde
man scp
fuente
scp -r y rsync -r son las formas más confiables de obtener lo que desea, como otros han señalado.
También puede usar sshfs para 'montarlo' como si fuera una unidad local:
sshfs user@host:/site /mnt/mountpoint
(Sin embargo, probablemente sea mejor trabajar localmente e implementar con rsync. Solo otra herramienta a tener en cuenta).
fuente