AUTER(1)
π AUTER(1) π
okay bestie, welcome to AUTER(1) β the User Commands girlie of the manual world. Sit down, grab a strawberry, we're gonna learn about auter together πβ¨
β¨ NAME β¨
auter β Automatic Update Transaction Execution by Rackspace. no cap, that's the whole name. it's giving "we made the acronym fit, don't @ us" π
π¦ SYNOPSIS π¦
auter [--enable|--disable|--status] [--prep] [--apply] [--reboot]
[--postreboot] [--config=<configfile>] [OPTIONS]
πΈ DESCRIPTION πΈ
Automatic Update Transaction Execution by Rackspace. Basically it's a wrapper around cron and yum/dnf/apt</> that manages your system updates for you, and it's highkey extra about it β it can do automatic reboots and run your own custom scripts too. main character energy fr fr π
π Actions:
--enableβ turn auter ON. slay π--disableβ turn auter OFF. and also, it deletes the unused pidfile if one's just sitting there existing. bye bestie π--statusβ shows you whether it's enabled or disabled. the vibe check, essentially β¨--prepβ pre-download those updates before applying them. look at you, being prepared π--applyβ apply the updates, and reboot ifAUTOREBOOT=yes. big moment π₯--rebootβ reboot the system, pre/post reboot scripts included, obviously π§--postrebootβ run the post reboot script π«Ά
π OPTIONS π
--config=FILEβ tell it the full path to an auter config file. if you don't, it just defaults to/etc/auter/auter.confπ--stdoutβ always log toSTDOUT, even when there's no tty. no hiding bestie π’--maxdelayβ overrideMAXDELAYstraight from the command line. boss move π--skip-all-scriptsβ skip running all the custom scripts (the default spot for those is/etc/auter/*.d/). not today π--skip-scripts-by-phase=PHASEβ skip the custom scripts for a specific phase. and yes, you can list multiple phases.- Valid Phases:
pre-prep,post-prep,pre-apply,post-apply,pre-reboot,post-reboot. - Example:
--skip-scripts-by-phase="pre-prep,post-apply,pre-reboot"
- Valid Phases:
--skip-scripts-by-name=SCRIPTNAMEβ skip specific scripts by name. you can specify multiple phases.- Example:
--skip-scripts-by-name="10-configsnap-pre, 20-startApp.sh"
- Example:
--no-wallβ if it's possible, suppress the shutdown wall messages during the reboot phase π€«-h,--helpβ show this help text. you are here π-v,--versionβ show the version β
π DIRECTORIES π
Default directory locations are listed down below; but you can set custom paths in the config file. and heads up β if you're running more than one auter profile, you gotta use additional, non-default config files. it's required, not optional π«
π§ Pre/Post Hooks
If any scripts in the pre/post hook directories are not executable, auter will skip them and log a warning with the filename. and if any scripts in those directories exit with a non-zero exit code, auter logs an error with the filename and the exit code β and then auter aborts. like, full stop. π
/etc/auter/pre-prep.dβ directory of scripts to run before downloading updates/etc/auter/post-prep.dβ directory of scripts to run after downloading updates/etc/auter/pre-apply.dβ directory of scripts to run before applying updates/etc/auter/pre-apply.dβ wait no bestie, we already said that. next one π/etc/auter/post-apply.dβ directory of scripts to run after applying updates/etc/auter/pre-reboot.dβ directory of scripts to run before rebooting/etc/auter/post-reboot.dβ directory of scripts to run after rebooting- and there's a hard coded delay of 5 minutes post-reboot so the system can get fully ready before the post-reboot scripts run. it's napping. let it nap π΄
π Hook Execution Order
Files in the pre/post script directories get parsed in sorted lexical order. so like, /etc/auter/pre-apply.d/01_first gets parsed before /etc/auter/pre-apply.d/10_second. and here's the tea β because the sorting is lexical, not numeric, /etc/auter/pre-apply.d/1_whoops would load after /etc/pre-apply.d/10_second. yeah. whoops indeed π
using a consistent number of leading zeroes in your file names avoids this whole situation. for example, this is the execution order you'd get for pre-apply scripts:
pre-apply.d/00-first.sh
pre-apply.d/99-second.sh
pre-apply.d/AA-fourth.sh
pre-apply.d/aa-third.sh
pre-apply.d/zz-fifth.sh
pre-apply.d/ZZ-sixth.sh
and note that the ordering is case-insensitive, so AA-fourth.sh will be run before aa-third.sh. the alphabet said no favorites today β¨
π ENABLE/DISABLE π
So, to make switching all your auter jobs on/off easy, you use auter --enable or auter --disable β which sets the lockfile /var/lib/auter/enabled. auter checks whether that file is present before it runs anything. presence check, that's it, that's the whole system π¦
This is also the correct method for cleaning up an unused pidfile. correct method only. no shortcuts π«Ά
π₯ REBOOTING π₯
Rebooting is an essential part of applying updates, because you need to make sure the updated packages are actually in use. An update to the kernel will always need a reboot, periodt.
Some application updates, like Apache for example, will restart the service. But often libraries get updated β openssl, for instance β and those don't force a reboot of the services using them. Rebooting guarantees every update is in use by running services. it's the only way to be sure π
So you've got two options:
- Enable
AUTOREBOOT=yesin the config file (the default isAUTOREBOOT=no), to reboot after--apply. - Schedule a separate schedule for
--rebootvia a second cronjob.
A 2 minute warning is emitted before the server reboots, and a superuser can cancel it with shutdown -c. last chance to change your mind π
β EXIT CODES β
0 = updates successful / no updates available
3 = issue related to yum / dnf / apt-get command
4 = auter disabled via lockfile
5 = script not run as root / DATADIR does not exist / config file does
not exist
6 = auter is already running / PIDFILE exists
7 = yum, dnf or apt-get was not found
8 = a pre/post hook exited with a non-zero error code
π AUTHORS π
This documentation was primarily written by, and we're giving them their flowers π:
Paolo Gigante
Piers Cornwell
Cameron Beere
πΈ FILES πΈ
/etc/auter/auter.confβ the default config file location. use the--configoption to pass an alternative config file to use within/etc/auter./etc/cron.d/auterβ the default cron file, with examples π/usr/bin/auterβ the main auter script, which contains linux generic code/usr/lib/auter/auter.moduleβ the auter module for the relevant package manager/usr/share/doc/auter-0.11/LICENSEβ the Apache License/usr/share/doc/auter-0.11/MAINTAINERS.mdβ a list of maintainers and mailing list/usr/share/doc/auter-0.11/NEWSβ the NEWS file and changelog for auter
π REPORTING BUGS π
Found a bug? please report it by raising an issue against the github page, or email us at:
https://github.com/rackerlabs/auter/issues
auter-devel@rackspace.com
we wanna hear it. respectfully π«Ά
π SEE ALSO π
auter.conf(5), cron(8), crontab(5)
no cap: every flag, every path, every exit code, every author β all here. go forth and update responsibly bestie π β¨
okay bye, this was auter 1.0.0 from July 2025 β she's iconic, she's from Rackspace, and she's got the whole AUTER(1) manual energy. mwah πππ¦
π¦ where this page comes from
- epel 10: auter 1.0.0-16.el10_2 Β· Apache-2.0
- fedora 43: auter 1.0.0-16.fc43 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms