Help With SFTP using shell script

Hi All,

Scenario : How to securely FTP the text file from a particular location(in unix system) to the windows ftp server (my PL is suggesting to use SCP command to accomplish this).

Detailed description:
I have created a Oracle job and scheduled it in dbms_scheduler. The job will invoke the Stored Procedure and the Stored procedure will do some stuff and finally writes a text file(output.txt) into a location called /u03/sachi/extracts/output. Till this I have no problem.
Now I have to write a shell script which does the following stuff

1) securely transfer that file(output.txt) from the location /u03/sachi/extracts/output to a windows ftp server(the machine name and path where I have to copy the file will be decided later). For instance lets say machine name is "sachi" and the path is "C:\Sachi\Winftp\extracts"
(I serached in net for FTPing and got few answers, but my PL wants me to use SCP command)

2)Once the file is "successfully copied/transferred" into windows ftp server then the script should move that file from /u03/sachi/extracts/output to /u03/sachi/extracts/archieve and from "C:\Sachi\Winftp\extracts" to "C:\Sachi\Winftp\archieve". But it should rename the file output.txt to output.txt||datetime(currentdatetime), so that each time I can move files with different names.

How to accomplish this.

Thanks in advance,
Sachi

What have you tried so far? Can you achieve this manually with sftp, for instance?

Have you generated and exchanged keys? It can be a bit of 'fun' first time.

Robin
Liverpool/Blackburn
UK

Hi Robin,

I am new to Unix/Linux community(have some basic knowledge). So I have detailed what I want to accomplish.

The file output.txt is available in the location "/u03/sachi/extracts/output". I want to write a shell script which will do secure ftp using scp command as described in my problem description.

The sample code with supporting comments would be of great help.

Thanks in advance,
Sachi

Well, firstly, can you do any of the following:-

ping -c 3 windows-server
ftp windows-server
sftp windows-server

The ping checks that you can resolve the name and route to the host, and that the host can respond. A problem here suggests network routing needs to be looked at from both ends.

If you get a response from the ftp, it will be a plain-text transfer over the network. The sftp uses encryption so is considered secure. It is better, but more complicated to establish. It will, for very large files, improve the throughput as the data is compressed as part of the encryption process.

If you get a 'refused' type message you are not running the server for ftp/sftp on the windows machine.

If you get no response, then eventually (30-40 seconds) you get a 'timed out' type message then there is a network issue, most probably a firewall rule will be blocking you somewhere.

Have a go with the above and post your results. Feel free to cover over anything you deem sensitive, such as ip addresses, server names, user names etc.

Robin
Liverpool/Blackburn
UK