Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

update-motd(5) [linux man page]

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

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 /var/run/motd. 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 /var/run/motd. 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=/var/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, /var/run/motd, /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. update-motd 13 April 2010 update-motd(5)

Check Out this Related Man Page

DISLOCATE(1)                                                  General Commands Manual                                                 DISLOCATE(1)

NAME
Dislocate - disconnect and reconnect processes SYNOPSIS
dislocate [ program args... ] INTRODUCTION
Dislocate allows processes to be disconnected and reconnected to the terminal. Possible uses: o You can disconnect a process from a terminal at work and reconnect from home, to continue working. o After having your line be dropped due to noise, you can get back to your process without having to restart it from scratch. o If you have a problem that you would like to show someone, you can set up the scenario at your own terminal, disconnect, walk down the hall, and reconnect on another terminal. o If you are in the middle of a great game (or whatever) that does not allow you to save, and someone else kicks you off the ter- minal, you can disconnect, and reconnect later. USAGE
When run with no arguments, Dislocate tells you about your disconnected processes and lets you reconnect to one. Otherwise, Dislocate runs the named program along with any arguments. By default, ^] is an escape that lets you talk to Dislocate itself. At that point, you can disconnect (by pressing ^D) or suspend Dislo- cate (by pressing ^Z). Any Tcl or Expect command is also acceptable at this point. For example, to insert the contents of a the file /etc/motd as if you had typed it, say: send -i $out [exec cat /etc/motd] To send the numbers 1 to 100 in response to the prompt "next #", say: for {set i 0} {$i<100} {incr i} { expect -i $in "next #" send -i $out "$i " } Scripts can also be prepared and sourced in so that you don't have to type them on the spot. Dislocate is actually just a simple Expect script. Feel free to make it do what you want it to do or just use Expect directly, without going through Dislocate. Dislocate understands a few special arguments. These should appear before any program name. Each should be sep- arated by whitespace. If the arguments themselves takes arguments, these should also be separated by whitespace. The -escape flag sets the escape to whatever follows. The default escape is ^]. CAVEATS
This program was written by the author as an exercise to show that communicating with disconnected processes is easy. There are many fea- tures that could be added, but that is not the intent of this program. SEE ALSO
Tcl(3), libexpect(3) "Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Associates, January 1995. AUTHOR
Don Libes, National Institute of Standards and Technology 7 October 1993 DISLOCATE(1)
Man Page