How to automate FTP-ing file to another FTP account?

We will be using shell script to automate the transfer between two FTP accounts. You’ll need shell access to the source FTP account.

#!/bin/bash
directory="/home/raisya/public_html"
filename="test.txt"
hostname="ftp.destination.com"
username="dest"
password="qwerty"
logfile="ftpf.log"
ftp -uni $hostname <<_ftp>>$logfile
quote USER $username
quote PASS $password
lcd $directory
put $filename
quit
EOF

Explanation:

directory="/home/raisya/public_html"

Assigning “/home/raisya/public_html” to directory.

filename="test.txt"

Assigning “test.txt” to filename.

hostname="ftp.destination.com"

Assigning “ftp.destination.com” to hostname.

username="dest"

Assigning “dest” to username.

password="qwerty"

Assigning “qwerty” to password.

logfile="ftpf.log"

Assigning “ftpf.log” to logfile.

ftp -uni $hostname <<_ftp>>$logfile

Initiate FTP connection to destination FTP account, with -uni switch and log the FTP connection to $logfile.

Switch:

u: Restrains ftp from attempting auto-authentication upon initial connection.
n: Restrains ftp from attempting ââauto-loginââ upon initial connection.
i: Turns off interactive prompting during multiple file transfers. This is optional here, since we only sending one file.

quote USER $username

Send FTP USER command.

quote PASS $password

Send FTP PASS command.

lcd $directory

Change local directory to $directory.

put $filename

Send $filename to destination FTP account.

quit

Stop FTP connection.

EOF

End Of File.

chmod the file to enable execution. Ie:

chmod 755 ftpscript.sh

To fully automate the process, you can set up a cron job for this. To run this every minutes:

* * * * * /home/raisya/ftpscript.sh

No Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: