VOS_BACKUPSYS(1)

πŸ’– VOS_BACKUPSYS(1) β€” AFS Command Reference πŸ’–

okay bestie, sit down, hydrate, and let's talk about vos_backupsys from the AFS Command Reference. this is the girl that makes backup volumes for your read/write volumes, and she EATS. ✨


✨ NAME ✨

vos_backupsys β€” Creates a backup volume for several read/write volumes</p> πŸŽ€


✨ SYNOPSIS ✨

vos backupsys [-prefix <common prefix on volume(s)>+]
    [-server <machine name>]
    [-partition <partition name>]
    [-exclude] [-xprefix <negative prefix on volume(s)>+]
    [-dryrun] [-cell <cell name>]
    [-noauth] [-localauth]
    [-verbose] [-encrypt] [-noresolve]
    [-config <config directory>]
    [-help]

vos backups [-pr <common prefix on volume(s)>+]
    [-s <machine name>] [-pa <partition name>]
    [-ex] [-x <negative prefix on volume(s)>+] [-d]
    [-c <cell name>] [-noa] [-l] [-v]
    [-en] [-nor]
    [-co <config directory>]
    [-h]

✨ DESCRIPTION ✨

okay so here's the whole vibe. vos backupsys clones each read/write volume you point at, making a backup version of it, and it drops each clone at the same site as its read/write source version. no cap. πŸ’…

Each clone gets the same name as its read/write source, except with a .backup extension tacked on. It gets the volume ID number that was already allocated for the backup version in the Volume Location Database (VLDB). and if a backup version already exists for a given volume? the new clone just replaces it. out with the old, in with the new, periodt. πŸ¦‹

wanna clone every single read/write volume listed in the VLDB? just omit all the options. that's it. otherwise, you mix and match options to clone different little groups of volumes. the options select volumes using one of two basic criteria:

  • location β€” that's the -server and -partition arguments πŸ“
  • presence in the volume name of one of a set of specified character strings β€” that's -prefix, -exclude, and -xprefix πŸ”€

want to clone only volumes living on one file server machine? include the -server argument. want only volumes on one partition? combine -server and -partition. and plot twist β€” you can also use -partition alone to clone volumes that live on that partition on every file server machine. these arguments can be combined with the ones that select by name. it's giving mix-and-match energy. 🌈

Now, the name-string squad. combine -prefix, -exclude, and -xprefix (with or without -server and -partition) like this:

  • To clone every read/write volume at the specified location whose name includes one of a set of specified character strings (for example, begins with "user." or includes the string "afs"), use the -prefix argument or combine the -xprefix and -exclude options. ✨
  • To clone every read/write volume at the specified location except those whose name includes one of a set of specified character strings, use the -xprefix argument or combine the -prefix and -exclude options. πŸ™ˆ
  • To clone every read/write volume at the specified location whose name includes one of one of a set of specified character strings, except those whose names include one of a different set of specified character strings, combine the -prefix and -xprefix arguments. The command creates a list of all volumes that match the -prefix argument and then removes from the list the volumes that match the -xprefix argument. For effective results, the strings specified by the -xprefix argument must designate a subset of the volumes specified by the -prefix argument. 🎯

If the -exclude flag is combined with the -prefix and -xprefix arguments, the command creates a list of all volumes that do not match the -prefix argument and then adds to the list any volumes that match the -xprefix argument. As when the -exclude flag is not used, the result is effective only if the strings specified by the -xprefix argument designate a subset of the volumes specified by the -prefix argument. πŸ’…

Both -prefix and -xprefix accept multiple values, which you can use to define disjoint groups of volumes. each value is one of two types:

  • A simple character string, which matches volumes whose name begin with the string. All characters are interpreted literally (that is, characters that potentially have special meaning to the command shell, such as the period, have only their literal meaning). πŸ”€
  • A regular expression, which matches volumes whose names contain the expressions. Place a caret ("^") at the beginning of the expression, and enclose the entire string in single quotes (''). Explaining regular expressions is outside the scope of this reference page; see the UNIX manual page for regexp(5) or (for a brief introduction) backup_addvolentry(8). As an example, the following expression matches volumes that have the string "aix" anywhere in their names: 🧚
-prefix  '^.*aix'

want to see the list of volumes that would get cloned, without actually cloning them? include the -dryrun flag. want a statement summarizing the criteria being used to select volumes? include the -verbose flag. πŸ‘‘

and yes, you can use this command to clone a single read/write volume β€” just specify its complete name as the -prefix argument. but bestie, it's more efficient to use the vos backup command, which employs a more streamlined technique for finding a single volume. do the smart thing. πŸ’–


✨ OPTIONS ✨

  • -prefix <common prefix> β€” Specifies one or more simple character strings or regular expressions of any length; a volume whose name includes the string is placed on the set of volumes to be cloned. Include field separators (such as periods) if appropriate. This argument can be combined with any combination of the -server, -partition, -exclude, and -xprefix options. πŸŽ€
  • -server <machine name> β€” Identifies the file server machine where each read/write source volume resides. Provide the machine's IP address or its host name (either fully qualified or using an unambiguous abbreviation). For details, see vos(1).

This argument can be combined with any combination of the -prefix, -partition, -exclude, and -xprefix options. πŸ–₯️

  • -partition <partition name> β€” Identifies the partition where each read/write source volume resides. Provide the partition's complete name with preceding slash (for example, "/vicepa") or use one of the three acceptable abbreviated forms. For details, see vos(1).

This argument can be combined with any combination of the -prefix, -server, -exclude, and -xprefix options. πŸ“‚

  • -exclude β€” Reverses the meaning of the -prefix or -xprefix argument. This flag can be combined with any combination of the -prefix, -server, -partition, and -xprefix options. πŸ”„
  • -xprefix <negative prefix> β€” Specifies a simple character string or regular expression of any length; a volume whose name includes the string is removed from the set of volumes to be cloned. Include field separators (such as periods) if appropriate. This argument can be combined with any combination of the -prefix, -server, -partition, and -exclude options. ❌
  • -dryrun β€” Displays on the standard output stream a list of the volumes to be cloned, without actually cloning them. πŸ‘€
  • -cell <cell name> β€” Names the cell in which to run the command. Do not combine this argument with the -localauth flag. For more details, see vos(1). 🌐
  • -noauth β€” Assigns the unprivileged identity "anonymous" to the issuer. Do not combine this flag with the -localauth flag. For more details, see vos(1). πŸ•ΆοΈ
  • -localauth β€” Constructs a server ticket using a key from the local /etc/openafs/server/KeyFile file. The vos command interpreter presents it to the Volume Server and Volume Location Server during mutual authentication. Do not combine this flag with the -cell argument or -noauth flag. For more details, see vos(1). πŸ”‘
  • -verbose β€” Produces on the standard output stream a detailed trace of the command's execution. If this argument is omitted, only warnings and error messages appear. πŸ—£οΈ
  • -encrypt β€” Encrypts the command so that the operation's results are not transmitted across the network in clear text. This option is available in OpenAFS versions 1.4.11 or later and 1.5.60 or later. πŸ”’
  • -noresolve β€” Shows all servers as IP addresses instead of the DNS name. This is very useful when the server address is registered as 127.0.0.1 or when dealing with multi-homed servers. This option is available in OpenAFS versions 1.4.8 or later and 1.5.35 or later. 🧭
  • -config <configuration directory> β€” Set the location of the configuration directory to be used. This defaults to /etc/openafs, except if -localauth is specified, in which case the default is /etc/openafs/server. This option allows the use of alternative configuration locations for testing purposes. βš™οΈ
  • -help β€” Prints the online help for this command. All other valid options are ignored. πŸ†˜

✨ OUTPUT ✨

when it works, it hits you with these on the standard output stream, confirming the operation was a success:

done
Total volumes backed up: <number_cloned>; failed to backup: <failures>

if you included the -dryrun flag, a list of the volumes to be backed up shows up before the standard confirmation messages. πŸ’…

if you included -verbose but not -dryrun, you get these messages for each volume, and the output wraps up with the standard confirmation messages:

Creating backup volume for <volume_name> on <date/time>
{Recloning backup volume | Creating a new backup clone} <backup_volumeID> . . .done

if you include both -dryrun and -verbose, the output kicks off with a statement summarizing the criteria being used to select the volumes, then a list of the volumes, then the standard confirmation messages. the format of that criteria summary statement depends on which other options you threw in:

  • if only the -prefix argument is provided, or the -xprefix and -exclude options are combined:
Would have backed up volumes which are prefixed with <string> [or <string>] . .
  • if only the -xprefix argument is provided, or the -prefix and -exclude options are combined:
Would have backed up volumes which are not prefixed with <string> [nor <string>] . .
  • if the -prefix and -xprefix arguments are combined:
Would have backed up volumes which are prefixed with <string> [or <string>] \
   removing those which are prefixed with <x_string> [or <x_string>] . .
  • if the -prefix, -xprefix, and -exclude options are provided:
Would have backed up volumes which are not prefixed with <string> [nor <string>] \
   adding those which are prefixed with <x_string> [or <x_string>] . .

πŸŽ€ EXAMPLES πŸŽ€

Okay bestie, here's where it gets fun β€” real commands, real vibes. Let's go. πŸ’…


Example 1: the prefix party πŸŽ‰

This one makes a backup version of every read/write volume listed in the cell's VLDB whose name begins with the string user.

% vos backupsys -prefix user

Every single one. All the user... volumes. Blessed. ✨


Example 2: one server only, please πŸ–₯️

This one is the move in the Example Corporation cell β€” it makes a backup version of every read/write volume on the file server machine fs3.example.com.

% vos backupsys -server fs3.example.com

One machine. All its read/write volumes. No chaos, just order. πŸ‘‘


Example 3: the Example Organization special 🏒

Same idea, but the Example Organization cell, and it's on the file server machine db1.example.org β€” except it skips every volume whose name includes the string temp. Bye temp volumes, not today. πŸ™ˆ

% vos backupsys  -server db1.example.org -prefix '^.*temp'
Notice those two spaces after vos backupsys? Yeah, they're in the original. Typo-core, but we keep it fr fr. πŸ’€

Example 4: include/exclude gymnastics πŸ€Έβ€β™€οΈ

This one makes a backup version of every volume listed in the cell's VLDB, excluding the ones whose names contain the string source… but including the ones whose names contain source.current. She contains multitudes. 🌈

% vos backupsys  -prefix '^.*source' -exclude -xprefix '^.*source\.current'

The way that -exclude and -xprefix team up here is genuinely iconic. Exclude-then-carve-out-a-special-case is a whole personality and I respect it. 🫢


πŸ” PRIVILEGE REQUIRED πŸ”

So like… who's allowed to do this? πŸ‘€

The issuer (that's you, bestie) must be listed in the /etc/openafs/server/UserList file β€” and listen carefully, this part matters: on the machine specified with the -server argument and on each database server machine. Both. All of them. No skipping. 🚨

But wait β€” if the -localauth flag is included, the rules flip all the way around: instead of the UserList thing, the issuer must be logged on to a server machine as the local superuser "root".

So it's UserList or local root with -localauth. Pick your lane, get your perms, then go create those backup volumes. πŸ’ͺ


πŸ‘€ SEE ALSO πŸ‘€

Go read your sisters, they're all so good:

Plus, for the regex girlies out there who want to truly understand what they're doing with -prefix and -xprefix:

  • UNIX manual page for regexp(5)

iykyk. πŸ“š


IBM Corporation 2000. http://www.ibm.com/ All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.

Shoutout to the whole documentation lineage, we love a collaborative pipeline. 🫑


And that's the whole page, bestie!! 🎊 You did it. This is the OpenAFS VOS_BACKUPSYS(1) manual page, dated 2026-07-27 β€” go forth and back up those volumes responsibly. No cap. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from