Automated FTP Upload Script using Bash

Automated FTP Upload Script using Bash

Introduction

In this article, we will explore how to create a bash script to automate the upload of files to an FTP server. This script will utilize the ftp command to securely transfer files from a local directory to a remote FTP server.

Script Overview

The script will be written in bash and will utilize the following variables to store FTP connection information:

  • FTP_HOST: The IP address of the FTP server
  • FTP_PORT: The port number used to connect to the FTP server
  • FTP_USER: The username used to authenticate with the FTP server
  • FTP_PASSWORD: The password used to authenticate with the FTP server
  • FTP_PATH: The path on the FTP server where the file will be uploaded
  • LOCAL_PATH: The local path of the file to be uploaded

FTP Connection Information

The following variables store the FTP connection information:

  • FTP_HOST = '127.0.0.1': The IP address of the FTP server
  • FTP_PORT = '22': The port number used to connect to the FTP server
  • FTP_USER = 'test': The username used to authenticate with the FTP server
  • FTP_PASSWORD = 'test': The password used to authenticate with the FTP server

FTP Path and Local Path

The following variables store the FTP path and local path:

  • FTP_PATH = '/var/ftp': The path on the FTP server where the file will be uploaded
  • LOCAL_PATH = '/var/ftp/test/a.log': The local path of the file to be uploaded

FTP Command

The ftp command is used to upload the file to the FTP server. The -n option is used to prevent interactive mode and instead use non-interactive mode. The < symbol is used to redirect the FTP command from the script.

ftp -n < ftp_script.txt

ftp_script.txt

The ftp_script.txt file contains the FTP command to upload the file. The file is created as follows:

open $FTP_HOST
user $FTP_USER $FTP_PASSWORD
cd $FTP_PATH
put $LOCAL_PATH
bye

Important Notes

  1. The directory on the FTP server must exist before uploading a file.
  2. The port number used to connect to the FTP server is 22, which is the default port for FTP.

Conclusion

In this article, we have explored how to create a bash script to automate the upload of files to an FTP server. The script uses the ftp command to securely transfer files from a local directory to a remote FTP server. By utilizing the ftp command and the variables stored in the script, we can easily upload files to an FTP server with a single command.

Community

If you have any questions or would like to share your own experiences with automated FTP uploads, please join our community and share your thoughts.