No estoy seguro si esto es posible o no. Básicamente, estoy escribiendo un script que me permite scp un archivo para mi hosting. Esto es todo hasta ahora. Argumento 1 es el archivo y el argumento 2 es la carpeta que quiero que sea colocado en el servidor remoto:¿Cómo creo un directorio en el host remoto si no existe sin ssh-ing?
function upload {
scp $1 [email protected]:$2
}
Como se puede/no puede saber, si el directorio que especifique cuando llamo a la función doesn' t existe, entonces la transferencia falla. ¿Hay alguna manera de verificar si el directorio existe en la función? Si no, créelo.
Preferiría no tener que hacer ssh en todo momento y crear el directorio, pero si no tengo otra opción, entonces no tengo otra opción.
Esto no funciona para mí (solo se queja de que el directorio de destino no existe) - ¿requiere una versión inusualmente reciente de rsync? Sin embargo, 'rsync -R' se puede usar para lograr el efecto deseado si el archivo local está en un directorio apropiadamente nombrado, por ejemplo:' rsync -Rave ssh some/nonExisting/dirToCopyTo/fileToCopy ssh.myhost.net:/' –
Me gusta @MartinKleppmann Solo me da un error al quejarse sobre el directorio que no existe al usar esto. ¿Has visto realmente esto funcionando? Si es así, me interesaría averiguar qué es diferente acerca de nuestros programas rsync. – DougW
Ah, parece que esto funciona si solo tiene que crear un nivel de directorio para copiar. Intenté implementar en/var/www/myapp/test /. Cuando el servidor solo tenía/var/www /, falló. Cuando creé/var/www/myapp /, creó la carpeta de prueba y copió todo en ella. Por lo tanto, si necesita crear más de un nivel de estructura de directorios, necesitará una solución como @ire_and_curses a continuación. – DougW