update-motd(5)                File Formats Manual               update-motd(5)

       update-motd - dynamic MOTD generation


       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

       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

       MOTD fragments must be scripts  in  /etc/update-motd.d,  must  be  exe-
       cutable, 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) --lsb-
       sysinit 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:

         script="w3m -dump http://news.google.com/"
         if [ -f "$out" ]; then
           # Output exists, print it
           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" &
           # No cache at all, so update in the background
           $script > "$out" &

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

         lsb-release -a

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

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

       This  manpage and the update-motd framework was written by Dustin Kirk-
       land <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.

update-motd                      13 April 2010                  update-motd(5)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2022 Hurricane Electric. All Rights Reserved.