Estoy usando scp para copiar cosas a una ubicación remota. Pero a veces scp no funciona como se esperaba, he descubierto que a veces la copia no se completa correctamente (posiblemente cuando agregué nuevos archivos a la carpeta que estoy copiando).
Entonces, primero quiero eliminar la carpeta remota y luego hacer la copia para asegurarme de que tengo exactamente lo que necesito.
¿Hay otros comandos como scp (por ejemplo, srm o smv)? ¿O hay alguna forma de eliminar carpetas y archivos remotos?
ssh you@host bash -c "command1;command2;command3; commandN"
.Rsync copiará una ruta / árbol completo y verificará los archivos que ya están en el destino y no se molestará en copiarlos si no han cambiado. Si usa la opción --delete, eliminará todos los archivos que están en el destino que ya no están en la fuente. Funciona sobre ssh
fuente
rsync -avz -e shh root@location:/path/to/dest /path/from/host
Pero falla después de ingresar la contraseña que dicesh: rsync: not found
. ¿Eso significa que rsync tiene que existir en la PC remota? ¡Gracias!Si su servidor SSH remoto admite el subsistema SFTP (la mayoría lo hace, a menos que se haya deshabilitado explícitamente), puede usar el
sftp
shell (o cualquier otro cliente SFTP ) para manipular archivos y directorios en el servidor remoto.Desafortunadamente, una cosa que el
sftp
shell básico aparentemente no maneja es la eliminación recursiva de directorios; Para eliminar un directorio, primero debe eliminar todo su contenido. Sin embargo, la mayoría de los otros clientes (especialmente los gráficos) sí lo admiten.(No menciona cuál es su sistema operativo local, pero si es Linux, puede usar su administrador de archivos nativo como cliente GUI SFTP apuntándolo a una URL como sftp: // user @ host / path /. Para Windows, WinSCP es un cliente decente y FileZilla es una buena solución multiplataforma).
fuente
Para vaciar un directorio remoto (/ local), use rsync así:
Tenga cuidado: elimina todo lo que se encuentre debajo del destino especificado.
fuente
ssh server rsync --version
ossh -v server rsync --version
encontrar el motivo.Como alternativa, montar el directorio remoto en uno local, luego eliminarlo
rm -r /path_to_directory_to_remove
y finalmente desmontar el directorio hace el truco.Respuesta original aquí: /programming//a/24650511/973919
fuente