Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors’ web storage interfaces. Over 40 cloud storage products support Rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.
I’m a big Rclone fan.
Helping migrate AIX and IBM i to Skytap, I spend a lot of time working on helping customers move data. Lots and lots of data. One of my favorite solutions is Rclone. It’s super easy to drop a Linux on Power VM into Skytap and have Rclone be the intermediary.
But that extra hop takes extra time and wouldn’t it be great to go directly from IBM i to Azure Blob or any of the other dozens of places Rclone will take you?
Rclone is written in Go (also called Golang or Go language), an open-source programming language used for general purposes. Google Engineers developed Go to create dependable and efficient software. Most similarly modeled after C, Go is statically typed and explicit. The language was designed by taking inspiration from the productivity and relative simplicity of Python, with the ability of C.
You can install Go on AIX, and almost at once, find that only very simple Go programs run without failing for missing some module. I set about finding and fixing the missing or broken modules and adjusting things like memory allocation, which is a tad bit different on AIX. Turns out it was not the worst of things as I’ve always been a “take-it-apart-to-find-out-how-it-works” guy.
What about IBM i and Go? Well, that was a “no” right out of the box. I spent another month or so looking for a way or even a mention of Go on IBM i. Nothing. And then one of my co-workers Richard asked if I had tried it in PASE. I am also a bit PASE fan since I’m almost entirely an ssh and command line user, and that’s how I get my BASH shell on IBM i.
PASE is the runtime system on IBM i where you can run AIX-compiled code. I thought, of course, this is it!! But. There is always a “but”. Turns out that IBM i also has a tad bit different memory scheme. So, duck…duck…go…again.
PASE executables need to be at a relative version of AIX – ie: AIX 7.3 is IBM i PASE 7.4 and you need to iron out a couple of other small details like where /etc/resolv.conf is on IBM i, but I made it work in the end.
You can download the executables for AIX 7.3 and IBM i 7.4 from Github:
And, of course, the “screenshot or it doesn’t exist” – Rclone on IBM i