百度
360搜索
搜狗搜索

如何自动执行远程linux命令详细介绍

在 Linux 环境下自动执行远程命令,通常可以通过 SSH 无密码登录脚本工具自动化管理工具 实现。以下是几种常见方法及操作步骤:

方法一:使用 SSH 直接执行远程命令(基础方法)

1.
配置 SSH 密钥免密登录(避免手动输入密码)

  • 本地生成密钥对(若已有密钥可跳过):bash
    ssh-keygen  rsa    

  • 将公钥添加到远程服务器的 ~/.ssh/authorized_keys 中:bash
    ssh-copy-id user@remote_host

    (首次连接需输入密码,后续无需密码)

2.
直接执行单条远程命令

bash

 user@remote_host 

user@192.168.1.100

3.
执行多条命令或脚本

  • 用分号分隔多条命令:bash
     user@remote_host 

  • 执行远程文件中的脚本(需提前将脚本传输到远程服务器):bash
     user@remote_host 

方法二:编写 Shell 脚本批量自动化

1.
创建本地脚本(如 remote_cmd.sh

bash

@}"

"

" "

2.
赋予脚本执行权限并运行

bash

 +x remote_cmd.sh

./remote_cmd.sh

方法三:使用 Ansible 自动化工具(适合批量主机)

1.
安装 Ansible(本地主机需安装)

bash

ansible

dnf ansible

2.
编写 Playbook(如 remote_commands.yml

yaml

  执行远程命令

all

查看系统版本

cat /etc/osrelease

重启服务

httpd

restarted

3.
运行 Playbook

bash

ansible-playbook remote_commands.yml

方法四:使用 Expect 处理交互式场景(需输入密码时)

若无法配置密钥(必须输入密码),可通过 expect 脚本自动输入密码:

1.
安装 expect

bash

     

dnf

2.
编写 expect 脚本(如 remote_with_password.exp

tcl

spawn ssh $@$

expect

send ; exp_continue

send

expect eof

3.
运行脚本

bash

 +x remote_with_password.exp

./remote_with_password.exp

方法五:通过 Python 脚本(Paramiko 库)

1.
安装 Paramiko

bash

pip  paramiko

2.
编写 Python 脚本(如 remote_exec.py

python

 paramiko

ssh paramikoSSHClient

sshset_missing_host_key_policyparamikoAutoAddPolicy

sshconnect

hostname

username

password

stdin stdout stderr sshexec_command

stdoutreaddecode

sshclose

方法六:使用 Cron 定时执行脚本

若需定期自动执行,可将上述脚本加入本地或远程的 Cron 任务:
bash

 

* * * /path/to/remote_cmd.sh

注意事项

  1. 安全性
    • 优先使用 SSH 密钥而非明文密码,密钥需妥善保管(建议设置密钥密码)。
    • 避免在脚本中硬编码密码,可通过环境变量或密钥管理工具(如 ssh-agent)传递凭证。

  2. 网络稳定性:确保本地与远程主机网络连通,SSH 端口(默认 22)未被防火墙阻断(可通过 telnet remote_host 22 测试)。
  3. 权限问题:远程命令需以足够权限执行(如使用 sudo,需配置无密码 sudo 或在脚本中处理)。

根据需求选择合适的方法:单主机简单命令用 SSH 直接执行,多主机批量管理用 Ansible,交互式场景用 Expect,编程化需求用 Python Paramiko

阅读更多 >>>  linux向指定tty发送命令

网站数据信息

"如何自动执行远程linux命令"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:如何自动执行远程linux命令的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!