我可以不管 shell 而运行登录脚本吗?

我可以不管 shell 而运行登录脚本吗?

有没有办法在登录时运行脚本而不考虑 shell?我希望在 Ubuntu 服务器的 ssh 登录行上有一些内容 - 显示可用 RAM 等。

我知道欢迎信息本身在 中/etc/motd,但文件似乎在每次登录时都会更新。这是怎么做到的?我不想使用~/.bashrc~/.profile,希望系统默认为所有用户提供一个。

答案1

由于您要求“每次登录时运行”而不是“启动时运行”,这可能会有所帮助。

在文件中/etc/login.defs 搜索“fakeshell”以下是该参数的注释文本:

 # Instead of the real user shell, the program specified by this parameter
 # will be launched, although its visible name (argv[0]) will be the shell's.
 # The program may do whatever it wants (logging, additional authentification,
 # banner, ...) before running the actual shell.
 # FAKE_SHELL /bin/fakeshell

使用此方法时,请谨慎考虑您的环境的任何假设。为可执行文件和数据定义您自己的所有路径。

答案2

您可以使用/etc/rc.local

rc.local 在所有其他初始化工作完成后执行 - 这是启动过程的最后一步。它实际上用于 System V init 之外的本地机器初始化工作(即运行级别脚本之外)。

答案3

如果您正在寻找一个显示 Ram、HDD 使用情况、IP 地址的脚本,那么我建议安装 Landscape-common:

sudo apt-get update
sudo apt-get install landscape-common

然后在 .bashrc 中添加一个别名,alias lsi='landscape-sysinfo'当您运行它时,您会得到以下信息:

System load:  2.7                Processes:             161
  Usage of /:   8.3% of 135.63GB   Users logged in:       1
  Memory usage: 19%                IP address for eth0:   192.168.10.5
  Swap usage:   0%                 IP address for virbr0: 192.168.122.1

Graph this data and manage this system at [landscape.canonical.com]

相关内容