有没有办法在登录时运行脚本而不考虑 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]