File Transfer - Using FTP LFTP commands
FTP
Commands
to resume a single file upload using the built-in ftp command you will need to know how many bytes of the file you have already sent. This should be accessible by using ls
. Then you use the following sequence to restart your upload replacing <#>
with the number of bytes already sent and <filename>
with the filename you are uploading.
restart <#>
put <filename>
If the server allows it you should receive a message such as the following...
350 Restart position accepted (<#>).
150 Ok to send data.
This will resume your upload.
LFTP
Using the LFTP command this allows you to restart a died ftp session
Commands
The following command is the login to the server and go to the folder you are placing the file in
lftp user:pass@host/path/to/folder
lftp user:pass@host/path/to/folder cd ok, cwd=/path/to/folder lftp user@host:/path/to/folder> reput file.ext ---> TYPE I <--- 200 Type set to I ---> SIZE file.ext <--- 213 11842837120 ---> PASV <--- 227 Entering Passive Mode (10,211,14,15,220,70). ---- Connecting data socket to (10.211.14.15) port 56390 ---- Data connection established ---> ALLO 20769244058 <--- 202 No storage allocation necessary ---> REST 11842837120 <--- 350 Restarting at 11842837120. Send STORE or RETRIEVE to initiate transfer ---> STOR file.ext <--- 150 Opening BINARY mode data connection for file.ext `file.ext' at 6756302848 (32%) 31.50M/s eta:7m [Sending data] |
This command is to restart the failed FTP replace the "file.txt" with your file
reput file.txt
After a quick search, there's a command line program called lfvi sftp
that provides ftp mirroring functionality.
Adapted from a guide here, something like this should do the trick:
#!/bin/bash
HOST='address.co.uk'
USER='myuser'
PASS='mypass'
TARGETFOLDER='/public_html/java/desktop/'
SOURCEFOLDER='deploy/'
lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
I'd suggest you'd do it without the --delete
until you're sure you've got the arguments right!