FreeBSD Manual Pages
ODO(1) ODO(1) NAME odo - an atomic odometer for the command line SYNOPSIS odo [-c | -i | -r | -s COUNT] [-p] file DESCRIPTION odo atomically updates a count in a file, which will be created if not present. The count is text-formatted (e.g. "00012345\n"), and will be accurately incremented or reset even when multiple processes attempt to change the counter at the same time. (It uses memory mapping and atomic compare-and-swap operations to eliminate race conditions.) This could be used to track some intermittent event, like services be- ing restarted. Since the counter is just a number in a text file, it's easy ls to compose odo with other tools. OPTIONS These options impact how the counter is updated: -c Print the current counter value without updating. -i Increment the counter. (This is the default.) -r Reset the counter to 0. -s COUNT Update the counter to a specific value. -p Print the new value of the counter after updating. EXIT STATUS Returns 0 if the counter has been successfully updated. Returns 1 if the file could not be read, created, or written, or if its current con- tents do not match the expected format of a counter file. EXAMPLES This atomically increments a counter in /log/restarts. If the counter file does not exist, it is created as 0 and incremented to 1. $ odo /log/restarts Same, but print the updated count: $ odo -p /log/restarts Reset the count to 0: $ ./odo -r /log/restarts Set the count to a number (for testing notifications, perhaps): $ ./odo -s 12345 /log/restarts Print the current counter value without incrementing: $ ./odo -c /log/restarts Print usage / help: $ ./odo -h BUGS odo's atomicity is only as reliable as the underlying filesystem's. In- consistencies may still occur if used on a non-local filesystems such as nfs. COPYRIGHT odo is Copyright (C) 2014 Scott Vokes scott.vokes@atomicobject.com. SEE ALSO runit(8), sqlite3(1), nfsd(8) November 2014 ODO(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | EXAMPLES | BUGS | COPYRIGHT | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=odo&sektion=1&manpath=FreeBSD+Ports+15.0>
