Transfer files from an unix server to a windows server using mule - mule

I need to transfer some files from an Unix server to a windows server using Mulesoft; that is Source: Unix server and target: windows server.
Also I have to archive the files in source Unix directory, once they are processed.
How can I achive this? Can I use two SFTP connectors? Any direction towards how can I achive this would be really appreciated. Thank you.

This is not Mule question. Mule is note Magic which solves all your problems.
This question is about how to transfer files from Unix to Windows. It is not clear where your Mule runtime working. It could be on Unix since you had mention that Windows target has no FTP or it could be Windows since you tag question with Anypoint-studio.
Assuming your runtime is on Unix. Then question is simple how to transfer file from Unix pushing to Windows. Since your Windows box has no FTP and excluding weird solution like sending email I know only one solution Samba but it requires some knowledge of Unix.
If your runtime is Windows then it's opposite question - how to get files from Unix. Probably Unix already have FTP server or the same Samba can help.
In both cases eventually you will see opposite side as regular file and then you can use File Connector which will do the job including archiving (use move file box to store processed file).
If you have Mule runtime running on both environments which communicate with each other (which I doubt) then one of them (slave, with source so, Unix) could produce HTTP connector to expose files and then another one on Windows, as active (master) one should use HTTP connector to get these files.

Related

Delphi 10.4 Setup SFTP Client with PPK

I am searching for a possibility to load up a simple text file to an SFTP directory. I was shocked as I noticed a nearly 5k worth development environment is not able to connect to an SFTP Server (20-Year-old standard specification), without taking another 500 bugs to buy a Component from a third-party developer Studio. Am I right? Or is there a way to get an SFTP connection with Delphi Board Components?
I was not able to find a solution with Delphi components.
I used "SFTP Client and Server Library" from /n Software.
Works like expected, Support is good.

monitor local file excution/access history triggered by a remote server

My question is somewhat similar to this, but a little different from that:
I want to monitor the file execution/access history on a CentOS 7.2 machine. I know that a remote server is calling some files on my local machine through SSH in order to finish some tasks, so I want to find out what files on my local machine that the server is calling.
I tried to use the terminal command:
ls -lu
but it didn't show any invocation history that was triggered by the remote server through SSH. Later I learned about inotify. But I also heard that it's not available on Centos 7. Is it true? If not, how should I use it? I didn't find a dirty and quick inotify tutorial for centos. Is there any system logs that records this type of information? Any other ideas on how to achieve my goal?

How does editing a remote file work?

I was wondering how editing a remote file without downloading it to the local computer actually works in detail. After using google and reading some posts I learned that this is possible using the FTP or SSH protocol.
I assume that it's up to a special client application to set up a TCP/IP socket connection to a server, but what is going on after this is done?
Who needs to implement the protocol and how does another application that opens a remote file gain the data that it needs?
SFTP protocol (do not mix it with FTP/FTPS), which works over the SSH, allows per-block access to the remote file. And it will work with almost any SSH server (where sftp subsystem is allowed).
For instance, in this way works SFTP Net Drive application, which mounts remote server's filesystem as Windows drive.
The application would download the whole file locally, open it, make changes and upload the whole file again. A classic example is WinSCP where you can 'edit' a remote file. The application (WinSCP) knows which protocol to use (FTP/FTPS/SFTP etc) and knows the parameters to be used (e.g. remote directory to upload the file to, username, password, port etc). Even if a file is large the whole file must be downloaded in order to me modified.
There appears to be no way of doing partial file updates in FTP, SFTP. HTTP or SCP. Infact there is no well known open source protocol to do this. If there is an implementation out there it has to proprietary.
The Wikipedia articles on FTP and SFTP seem reasonably good and provide links to the RFCs if you want to investigate further.
Who needs to implement the protocol and how does another application that opens a remote file gain the data that it needs?
You don't say which language your program will be written in, but there are surely suitable ftp and sftp libraries available for most of them.
If your program is running on Linux / OS X / other BSD you could even get away with calling the ftp/sftp programs.

Glassfish administration scripting

I am trying to move a web application that currently runs on WebSphere 6.1 application server over Glassfish 3.X. I currently have a set of WebSphere jacl files that configure an instance of a WAS for my web application (data sources, queues, etc.) and a .bat and a .sh file that execute the jacl files (I think via wsadmin). I develop on a WAS instance on my Windows PC and the software is tested on a WAS instance installed on a Solaris test machine.
Is there the equivalent concept for Glassfish?
That is, does Glassfish have a concept of a platform independent administration scripting language like WebSphere jacl/jython that can be executed from a call from a Windows .bat file or a Unix .sh file?
I'm relatively new to web development and so I may have made some conceptual mistakes and you may also have to fill in some gaps in my question.
Thanks
You can feed a configuration script to asadmin, that contains asadmin subcommands like deploy and create-jdbc-resource, etc...
The 'language' does not have any real flow-of-control or looping constructs, so you would need to flatten those types of things out of the script that would get called by your dot-bat or dot-sh.
If you are really leveraging jacl/jython this might not be possible... but if you aren't putting these interpreters through their paces, the asadmin 'language' may be rich enough for you.
Yes, take at a look at the "asadmin" command. It should be able to configure most anything you need from a script.

Display remote files through a WCF service

I don't want to reinvent the wheel, I must display remote files and folders (like SQL Management studio does), should I develop my own interface and logic or there is an alternative? I need multiple selection.
I'm using VS2008 .Net Framework 3.5 SP1
Thanks
EDIT:
I built a multi-ambient music server that is running in the network and i must provide the ability to select which music files or folders should be played. The files resides on the server and are not available to the clients. The clients comunicates to the server trought a WCF service i built.
When you say remote, exactly what do you mean? Do you mean on another server in your intranet, or out on the wide web?
If you just need to view files on another machine in your intranet, the built in file chooser in .net will work. All you need to do is hand it a network address (like: \somemachine\somefilepath).
If you mean more remote than that, then FTP might be an option. You can build yourself basic FTP functionality in your C# application in very little time. Google "C# FTP" and you'll find lots of examples.
A third option would be a simple WCF service that returns a list of file names. But you said you needed "multiple select", so I am assuming you want to do more than just "read" the files, in which case you need to transfer them over the wire, in which case I recommend the FTP route.
Addition to the above - what do you mean by "files", and how would you expect to display them? In a custom application, or by using Windows Explorer?
WCF may not be the most appropriate way to do this, as was said above. There are already file transfer protocols in the world, and if you don't want to reinvent the wheel, then you shouldn't create a file transfer protocol based on WCF. You should use FTP, HTTP or WebDAV.
Otherwise, you should look at those protocols (especially WebDAV) for inspiration on what your service will need to do. It will need to expose a concept of files and folders, and to have a way to get file information and get files.
Just like "the wheel" already does.