Recursive Replication of Unix folders to Windows

Requirements: ftp files recursively from unix to windows. Replicate
directory paths on unix (source) to windows (destination) and place
files in their respective folders. There are no set number of files per
directory nor fix number of dirA or dirB etc....

Source OS:        Solaris 10
Source Dir:        
             /dir1/dir2/dirA/file1
             /dir1/dir2/dirA/file2
             /dir1/dir2/dirA/file3
         
             /dir1/dir2/dirB/file1
                 
             /dir1/dir2/dirC/file1
             /dir1/dir2/dirC/file2
 
             ....
        
         
 Destination OS:    Windows 200?
 Destination Dir:    
             /dir1/dir2/dirA/file1
             /dir1/dir2/dirA/file2
             /dir1/dir2/dirA/file3
         
             /dir1/dir2/dirB/file1
                 
             /dir1/dir2/dirC/file1
             /dir1/dir2/dirC/file2
 
             ....

Not sure if this is the best approach this requirement. I would like to have a script that will dynamically create an ftp script to support the above requirements.

 open HOST
 quote USER _USER
 quote PASS _PASSWORD
  binary

 mkdir dir1
 cd dir1
 mkdir dir2
 cd dir2
 mkdir dirA dirB dirC


 lcd /dir1/dir2/dirA
 cd dir1\dir2\dirA
 mput file*

 lcd /dir1/dir2/dirB
 cd dir1\dir2\dirB
 mput file*

 lcd /dir1/dir2/dirC
 cd dir1\dir2\dirC
 mput file*

 etc....

 bye

Thank you.
mlv_99

Hi,

You might want to try rsync. probably

rsync -avz src/bar foo:dest/

It transfers files recursively from the directory src to machine "foo" the destination directory being dest/
it transfers file in archive mode, preserves symbolic links,attributes,permissions,ownerships and compressions etc.

Regards,
gaurav.

1 Like

You might also consider winscp, it handles both sftp and ftp, and can be scripted, WinSCP :: Download

Thanks for replying gaurav. rsync looks like it can be verify useful, but my requirements are to use FTP. Source is Solaris and destination is Windows with no shell environment. Automation is the other requirement that I fail to mention.

I need to have script that generates an ftp script, that "cd" and mkdir as stated in previous post.

Thanks again.
mlv_99

Hello,

There are openssh versions for windows. You can then employ rsync for the destination as windows boxes. As per automation, rsync is "the best" option . You can distribute the public key on the server(windows) and easily automate the procedure through a bash/perl script over a cron job in solaris.

Regards,
gaurav.

Hi,

We have no access to the remote server. Location of FTP repository. All great suggestions, but requirements states FTP.

Need script to break individual directories into tokens and then generate the ftp script:

echo "#!/bin/bin" >> ftpscript.sh
echo ""

echo "open HOST _HOST" >> ftpscript.sh
 echo "quote USER _USER" >> ftpscript.sh
 echo "quote PASS _PASSWORD" >> ftpscript.sh
  echo "binary" >> ftpscript.sh

 echo "mkdir dir1" >> ftpscript.sh
 echo "cd dir1" >> ftpscript.sh
 echo "mkdir dir2" >> ftpscript.sh
 echo "cd dir2" >> ftpscript.sh
 echo "mkdir dirA dirB dirC" >> ftpscript.sh


 echo "lcd /dir1/dir2/dirA" >> ftpscript.sh
 echo "cd dir1\dir2\dirA" >> ftpscript.sh
 echo "mput file*" >> ftpscript.sh

 echo "lcd /dir1/dir2/dirB"  >> ftpscript.sh
 echo "cd dir1\dir2\dirB" >> ftpscript.sh
 echo "mput file*"  >> ftpscript.sh

 echo "lcd /dir1/dir2/dirC"  >> ftpscript.sh
  echo "cd dir1\dir2\dirC" >> ftpscript.sh
  echo "mput file*"  >> ftpscript.sh

 etc....

 echo "bye" >> ftpscript.sh

The part I am having trouble with is the part that tracks each directory. The master script must track the directory path in order for it to generate the "ftpscript.sh" as seen above. The master script (and not the ftpscript.sh) will read each of the directory paths and generate the ftpscript.sh above.

Hope that is clearer. Thanks your your suggestions!!!!

Regards,
mlv_99