Provided by: libpam-modules_1.3.1-5ubuntu4.7_amd64 bug

NAME

       update-motd - dynamic MOTD generation

SYNOPSIS

       /etc/update-motd.d/*

DESCRIPTION

       UNIX/Linux  system  adminstrators  often communicate important information to console and remote users by
       maintaining text in the file /etc/motd, which is displayed by the pam_motd(8) module on interactive shell
       logins.

       Traditionally,  this  file  is  static  text, typically installed by the distribution and only updated on
       release upgrades, or overwritten by the local administrator with pertinent information.

       Ubuntu introduced the update-motd framework, by  which  the  motd(5)  is  dynamically  assembled  from  a
       collection of scripts at login.

       Executable  scripts  in  /etc/update-motd.d/* are executed by pam_motd(8) as the root user at each login,
       and this information is concatenated in /run/motd.dynamic.  The order of script execution  is  determined
       by the run-parts(8) --lsbsysinit option (basically alphabetical order, with a few caveats).

       On Ubuntu systems, /etc/motd is typically a symbolic link to /run/motd.dynamic.

BEST PRACTICES

       MOTD  fragments  must  be scripts in /etc/update-motd.d, must be executable, and must emit information on
       standard out.

       Scripts should be named named NN-xxxxxx where NN is a two digit number indicating their position  in  the
       MOTD, and xxxxxx is an appropriate name for the script.

       Scripts must not have filename extensions, per run-parts(8) --lsbsysinit instructions.

       Packages should add scripts directly into /etc/update-motd.d, rather than symlinks to other scripts, such
       that administrators can modify or remove these scripts and upgrades will  not  wipe  the  local  changes.
       Consider using a simple shell script that simply calls exec on the external utility.

       Long  running  operations  (such as network calls) or resource intensive scripts should cache output, and
       only update that output if it is deemed expired.  For instance:

         /etc/update-motd.d/50-news
         #!/bin/sh
         out=/run/foo
         script="w3m -dump http://news.google.com/"
         if [ -f "$out" ]; then
           # Output exists, print it
           echo
           cat "$out"
           # See if it's expired, and background update
           lastrun=$(stat -c %Y "$out") || lastrun=0
           expiration=$(expr $lastrun + 86400)
           if [ $(date +%s) -ge $expiration ]; then
             $script > "$out" &
           fi
         else
           # No cache at all, so update in the background
           $script > "$out" &
         fi

       Scripts should emit a blank line before output, and end with a newline character.  For instance:

         /etc/update-motd/05-lsb-release
         #!/bin/sh
         echo
         lsb-release -a

FILES

       /etc/motd, /run/motd.dynamic, /etc/update-motd.d

SEE ALSO

       motd(5), pam_motd(8), run-parts(8)

AUTHOR

       This manpage and the update-motd framework was written by Dustin  Kirkland  <kirkland@canonical.com>  for
       Ubuntu systems (but may be used by others).  Permission is granted to copy, distribute and/or modify this
       document under the terms of the GNU General Public License, Version 3  published  by  the  Free  Software
       Foundation.

       On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-
       licenses/GPL.