Linux motd详解

简介:

  motd是message of the day的缩写,意思是“当天的提示信息”,通常在用户成功登录到Linux后出现,该信息可以从/etc/motd文本文件中找到。

提示:/etc/motd文件有时不一定是个常规文本文件,也可能是一个软链接到某个特定的文件,如/var/run/motd。

一般来说,这个文件是一个静态文本文件,只在某个Linux发行版本完成安装或升级后才会更新。

提示:UNIX/Linux系统管理员也通常会把一些重要的信息写到这个文件里面,以方便其他人或自己下次成功登录时需要注意什么和做什么,非常方便。

通常一个标准的motd信息有以下内容:

  1. 欢迎信息,一般包括Linux发行版本名称,内核版本、操作系统位数

  2. 操作系统当前信息,如操作系统负载,进程数量,文件系统使用情况,当前用户登录数,内存(含swap)使用情况,IP地址

  3. 文档和帮助信息

  4. 可更新的软件包和可升级的安全补丁

由此可见,motd展示出来的一定是一个当前的信息,是一组固定时间下特定参数所对应的数值,而不是一成不变的信息,因此静态的文本文件不足以满足以上内容。

想要做到每次登录都要显示出当前的motd,则需要一种机制来实现,pam_motd就是实现这个功能的模块。可参考motd(5), pam.conf(5), pam.d(5), pam(7), update-motd(5)

在Ubuntu中有update-motd来帮助系统管理员或用户实现这个功能。可执行的脚本位于/etc/update-motd.d/*下,在每次登录时以root身份由pam_motd调用,脚本运行的次序由run-parts(run scripts or programs in a directory,在一个目录里运行脚本或程序)的--lsbsysinit选项决定。pam_motd也支持不动态更新,只需要在其选项中添加noupdate即可。

编辑/etc/pam.d/login文件,

启用动态更新motd模块:session  optional  pam_motd.so  motd=/etc/motd

关闭动态更新motd模块:session  optional  pam_motd.so  noupdate

剩下的就是发挥系统管理员的Shell脚本水平了,例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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

补充信息:run-parts runs all the executable files named within constraints described below,  found  in  directory  directory.Other files and directories are silently ignored.run-parts运行目录下所有的可执行文件,其他文件或目录将被忽略。可参考man 8 run-parts。

如果换一种思路,就可以将这些思路和想法应用到CentOS上。CentOS同样拥有来自pam包的pam_motd.so模块,只要启用(例如编辑/etc/pam.d/login文件)就可以,与其他pam模块一样,位于/lib64/security/目录下。

PS:其实写文章思路很简单,找到一个一组人群能用到的知识点,查看相关的手册,将这些知识整理出来,结合自己的实际经验,再加一点温馨提示就ok了!有些事情大家都知道…但是愿意去做的有几个?


本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1661362,如需转载请自行联系原作者



相关文章
|
Linux 安全 Ubuntu
|
9月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
979 1
二、Linux文本处理与文件操作核心命令
|
9月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
568 137
|
9月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1506 58
|
12月前
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
1056 143
linux命令—tree
|
8月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1356 2
|
9月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
742 16
|
9月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
844 0
Linux内存问题排查命令详解
|
11月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
1678 13