As part of my morning routine, I have a few scripts I run to make sure my laptop and servers are up to date.
Rather than login to the web GUI of my OPNSense firewall, I created an alias to check for updates from the CLI.
Add the following line to
.bash_aliases or directly to
alias check-update='sudo /usr/local/opnsense/scripts/firmware/launcher.sh check'
There are a few small, but interesting, additional steps required for the alias to work over a “non-interactive” SSH session.
First, include the
-t parameter with ssh to force the use of a psuedo-tty (so sudo will work). And instead of calling the alias directly, invoke bash and pass the alias as the command. The combined flags of
-ic to bash make all that work together. (Credit goes to Cyberciti.biz for explaining these options to me.)
All of the above results in allowing me to run this from my terminal:
me@macbookpro:~ ssh -t opnsense /usr/local/bin/bash -ic 'check-update'
resulting in output similar to the following:
Updating OPNsense repository catalogue... Fetching meta.conf: . done Fetching packagesite.pkg: .......... done Processing entries: .......... done OPNsense repository update completed. 822 packages processed. All repositories are up to date. Checking integrity... done (0 conflicting) Your packages are up to date. Checking for upgrades (0 candidates): . done Processing candidates (0 candidates): . done Checking integrity... done (0 conflicting) Your packages are up to date.