Linux vacation command

Updated: 05/04/2019 by Computer Hope
vacation command

On Unix-like operating systems, the vacation command configures an automatic e-mail responder. When an e-mail is received, the sender receives an e-mail response, explaining that you will be absent for an period of time.


vacation returns a message to the sender of a message telling them that you are currently not reading your mail. The intended use is in a .forward file. For example, your .forward file might have:

\eric, "|/usr/bin/vacation -a allman eric"

...which would send messages to you (assuming your login name was eric) and reply to any messages for "eric" or "allman".


vacation -i [-r interval]
vacation -l
vacation -x
vacation [-a alias] [-d] [-f db] [-m msg] [-j] [-z] login


-a alias Handle messages for alias in the same manner as those received for the user's login name.
-d Print messages to stderr (standard error) instead of syslog (the system log).
-f db Uses db as the database file.
-m msg Uses msg as the message file.
-j Reply to the message even if our address cannot be found in the "To:" or "Cc:" headers. This option is very dangerous and should be used with extreme care.
-z Set the envelope sender of the reply message to "<>".
-i Initialize the vacation database files. It should be used before you modify your .forward file.
-r interval Set the reply interval to interval days. The default is one week. An interval of "0" means that a reply is sent to each message, and an interval of "infinite" (actually, any non-numeric character) will never send more than one reply. It should be noted that intervals of "0" are quite dangerous, as it allows mailers to get into "I am on vacation" loops.
-x Reads a list of addresses from standard input, one per line, and adds them to the vacation database. Mail coming from these excluded addresses will not get a reply. Whole domains can be excluded using the syntax "@domain".
-l Print the contents of the vacation database files. For each entry, the address the reply has been sent to and the associated time will be printed to standard output.

When started without any arguments, vacation will guide the user through the configuration process.

No message will be sent unless login (or an alias supplied using the -a option) is part of either the "To:" or "Cc:" headers of the mail. No messages from "???-REQUEST", "Postmaster", "UUCP", "MAILER", or "MAILER-DAEMON" will be replied to (where these strings are case insensitive) nor is a notification sent if a "Precedence: bulk", "Precedence: list" or "Precedence: junk" line is included in the mail headers. The people who have sent you messages are maintained as a database in the file .vacation.db in your home directory.

vacation expects a file .vacation.msg, in your home directory, containing a message to be sent back to each sender. It should be an entire message (including headers). For example, it might contain:

From: [email protected] (Eric Allman)
Subject: I am on vacation
Delivered-By-The-Graces-Of: The Vacation program
Precedence: bulk
I am on vacation until July 22. If you have something urgent,
please contact Keith Bostic <[email protected]>.

Any occurrence of the string $SUBJECT in .vacation.msg will be replaced by the subject of the message that triggered the vacation program.

vacation reads the incoming message from standard input, checking the message headers for either the UNIX "From" line or a "Return-Path" header to determine the sender. If both are present the sender from the "Return-Path" header is used. Sendmail includes this "From" line automatically.

Fatal errors, such as calling vacation with incorrect arguments, or with non-existent logins, are logged on the standard error output and in the system log file, using syslog.



Prompts you to configure the automatic e-mail responses that should be sent in your absence.

sendmail — Send mail.