ArcShell is an open-source modular development framework for building automation solutions using Bash. It runs on most Unix and Linux hosts. It’s easy to install, easy to distribute, and easy to build upon. New capabilities are added every week, and the project is actively maintained.
I am the founder of Arclogic Software and the developer of ArcShell. I have been building automation and monitoring solutions from scratch for two decades.
I am frustrated by the lack of unified solutions to the kinds of problems everyone writing scripts encounters. The answers I find are often not up to date, portable, buggy, and generally not usable for one reason or another. In August of 2016, I left a long stint working in IT services to pursue the goal of solving that problem by building ArcShell.
I choose Bash because it is highly accessible by the broadest audience. Just about everyone working in with Linux knows some Bash. I also wanted to build a platform that could operate in almost every possible *nix* environment.
ArcShell provides solutions for just about every common scripting problem one might imagine. And if it doesn’t exist, we can add it. This allows users to focus on solving the problems at hand and not on coding up extraneous requirements.
The use of Linux seems to be prevalent within the robotics industry. As such, there are certainly many opportunities to put ArcShell to good use. Here are just some suggestions.
Do you work with multiple hosts over SSH? ArcShell allows you to register multiple SSH connections using aliases, tags, and groups. You can execute commands, run or copy files against multiple targets using the attributes you have configured.
Would you like to instrument the scripts you write? Using ArcShell, you can add debugging, logging, counters, and error handlers easily.
Would you like to schedule a script to run every hour without using cron? With ArcShell, you can drop a script in the hourly scheduled task folder and the ArcShell daemon will take care of running it for you.
Do you need to distribute this solution to other nodes? ArcShell makes it easy to push updates out from a primary node to numerous remote nodes. You can also package ArcShell into an archive file and distribute that instead.
Do you need to monitor log files? With ArcShell, you can create powerful log file filters that are easy to understand and easy to maintain. Those filters can be distributed just as easily as a scheduled task. It is also possible to build in log discovery logic to locate and begin monitoring log files automatically.
In addition, ArcShell provides programmable interfaces for things like locking, alerting, timers, menus, stats collection, strings, numbers, dates, and more.
ArcShell provides users with a stable platform for doing and building all kinds of things, big and small. If you are using Linux — and many software developers in the robotics community are — ArcShell can help you automate the work you are already doing.
Once you are familiar with the many capabilities that ArcShell offers, you can begin solving new problems and sharing your solutions within the robotics industry.
If you would like to learn more about ArcShell, please get in touch. I would also love to learn more about the kinds of problems robotics experts working with Linux need help solving.
You can download ArcShell from GitHub here: https://github.com/arclogicsoftware/arcshell.
Documentation and updates are pushed out every week.
About the author:
Ethan Ray Post is the founder of Arclogic Software and has been developing creative automation and monitoring solutions for almost 20 years.