centos ssh user@ip 执行命令,如何也可以自动执行/etc/profile.d下面的脚本
时间: 2024-10-16 14:10:30 浏览: 26
当你通过`ssh`连接到CentOS服务器时,可以设置一个环境变量`SSH_SHELL`或者直接修改`.bash_profile`、`.bash_login`或`.bashrc`文件,以便让系统在每次登录时自动运行`/etc/profile.d`目录下的脚本。
1. 设置`SSH_SHELL`环境变量:
- 在你的客户端机器上,打开终端并添加以下内容到`~/.bashrc`或`~/.bash_profile`:
```sh
export SSH_SHELL=/bin/bash
```
- 接着,在`/etc/profile.d`目录下创建一个新的shell脚本(如`auto_script.sh`),并将你需要执行的命令写入其中。
2. 修改启动脚本:
- 如果你想让所有用户都受益于这个设置,可以在`/etc/profile`或对应用户的`~/.bashrc`、`~/.bash_profile`文件中加入:
```sh
# 加载profile.d目录中的脚本
if [ -d /etc/profile.d ]; then
for file in /etc/profile.d/*.sh; do
.
相关问题
在 controller 节点和 compute 节点分别安装 sh-guoji 软件包,修改脚本文件基本变量(脚 本文件为/root/variable.sh),修改完成后使用命令生效该脚本文件并替换到 compute 节点对 应位置。
在 Linux 系统中,如果你想在 controller 和 compute 节点上分别安装 `sh-guoji` 软件包,并对 `/root/variable.sh` 文件进行脚本变量的修改,可以按照以下步骤操作:
1. **在 controller 节点安装**:
使用 `sudo apt-get` 或者 `yum` (取决于你的操作系统使用的包管理器) 安装软件包:
```
sudo apt-get install sh-guoji # 如果是Debian系
sudo yum install sh-guoji # 如果是RHEL/CentOS系
```
2. **修改 script 文件**:
- 打开 `/root/variable.sh` 文件,通常使用文本编辑器如 `nano`, `vim` 或 `gedit`:
```bash
nano /root/variable.sh
```
- 修改需要更改的基本变量,例如设置环境变量、配置项等。记得保存并退出编辑器。
3. **使脚本生效**:
- 为了使修改后的脚本生效,你可以选择将脚本添加到系统启动路径或者直接运行以更新环境:
- 将文件添加到 `.bashrc` 或者 `.profile` 中以便每次登录时自动加载(针对个人用户)
```bash
echo 'source /root/variable.sh' >> ~/.bashrc
source ~/.bashrc
```
- 或者对于所有用户或全局,可以添加到 `/etc/profile.d/variable.sh` 并重启shell session。
```
cp /root/variable.sh /etc/profile.d/
source /etc/profile.d/variable.sh
```
4. **复制脚本到 compute 节点**:
- 使用 SSH 登录到 compute 节点:
```bash
ssh user@compute_node_ip
```
- 将脚本从 controller 节点复制过去:
```bash
scp user@controller_node_ip:/root/variable.sh /root/
```
- 到达 compute 节点后,在相应位置更新文件:
```bash
sudo mv /root/variable.sh /root/
```
或者如果要覆盖默认的变量.sh文件,使用 `sudo cp` 直接替换。
5. **激活 compute 节点上的脚本**:
- 对 compute 节点进行类似的操作,包括修改变量,添加到启动文件或重启 shell session。
完成以上步骤后,你需要确保两个节点都已经加载了正确的 `variable.sh` 文件,变量应该已经修改并在对应的环境中应用了。
阅读全文