Me gustaría hacer una copia de seguridad de algunos de mis datos muy importantes en una máquina remota.
Actualmente solo lo estoy guardando en mi máquina local usando este comando:tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/*
Preferiría no usar otro comando para transferirlo a la máquina remota, lo que significa que me gustaría actualizar este comando para que pueda transferir los datos a la máquina remota.
Esto está diseñado para estar en un script posterior que se supone que se ejecuta por sí solo, lo que significa que cualquier tipo de entrada requerida por el usuario lo arruinaría por completo.
Algo como
tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
¡seria perfecto! (¡Sin tuberías (etc.), solo un comando!)
ssh
acceso a esta máquina?Respuestas:
Para SSH:
Para SFTP:
Otro SFTP:
fuente
Tar no habla ftp ni sftp. Ese no es su trabajo. No puedes hacer esto solo con alquitrán. Usar las herramientas apropiadas para cada trabajo y combinarlas con el shell es la forma normal de hacer las cosas en sistemas Unix.
La solución más obvia es crear el archivo localmente y luego copiarlo en la máquina remota.
Si no desea crear el archivo localmente porque no tiene suficiente espacio, puede crear una tubería con nombre, hacer que tar escriba en esta tubería y encontrar un cliente ftp que pueda leer desde las tuberías. Desafortunadamente, sftp se niega a
put
una tubería. Algunos clientes FTP funcionan, por ejemplo, lftp:Ingrese su contraseña FTP
~/.netrc
.Alternativamente, hay una manera de hacer que su comando tar se guarde directamente en el servidor remoto, pero necesita una configuración previa. Monte el servidor remoto sobre SSHFS o curlftpfs .
fuente