Summary
This chapter has been an introduction to automating the command line. We have seen how to use the exec
package to execute commands locally on a device. This can be useful when needing to string together a set of already made tools. We have shown how you can use the ssh
package to run commands on remote systems or interact with complicated programs using ssh
and goexpect
packages. We tied this together with our Go knowledge from previous chapters to implement a basic workflow application that upgraded binaries on multiple systems concurrently and safely. Finally, in this chapter, we have learned how we can create a system agent that runs on a device to allow us to gather vital data and export it. We also have refined our ability to install programs by using the agent to control systemd
on Linux devices.
This chapter has now given you new skills that will allow you to control local command-line applications, execute remote applications on any number of machines, and deal with...