【Linux】【操作】Linux操作集锦系列之十四——SSH远程Linux服务器执行命令的操作技巧汇总
- 🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)
- 🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd
- 🌐系列专栏:Linux技术
- 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏📂、评论。
- 如需转载请参考转载须知!!
SSH远程Linux服务器执行命令的操作技巧汇总
- 通过SSH在远程Linux系统上执行命令
- 执行单个命令
- 执行多条命令
- 执行具有 Sudo权限的命令(交互命令)
- 通过非标准端口SSH在远程Linux系统上运行命令
- 同时在多个远程Linux服务器上运行命令
- 如果没有免密码认证,可借助sshpass
- 将命令输出从远程主机保存到本地主机
- 使用SSH执行本地Shell脚本
- 使用命令行配合标准输入
- 使用scp
- 使用SSH隧道和重定向
通过SSH在远程Linux系统上执行命令
- 从本地系统通过 SSH 在远程系统上运行命令或脚本的方法如下:
ssh qxhgd@remote_host <Command-or-Script>
执行单个命令
ssh qxhgd@192.168.1.100 uname -a
执行多条命令
- 执行多条命令需要使用双引号括起来,同时命令间使用&&或;连接起来。
ssh qxhgd@192.168.1.100 "uname -r && lsb_release -a"
ssh qxhgd@192.168.1.100 "uname -r ; lsb_release -a"
- 也可以类似下面这样操作:
qxhgd@csdn$ ssh qxhgd@192.168.1.100 "
> cat /proc/uptime
> pwd
> uname -r
> "
执行具有 Sudo权限的命令(交互命令)
- 这里使用了-t 标志来强制伪终端分配。这可用于在远程计算机上执行任意基于屏幕的程序,例如使用菜单服务时:
ssh -t qxhgd@192.168.1.100 sudo apt install apache2
ssh -t qxhgd@192.168.1.100 "sudo fdisk -l"
通过非标准端口SSH在远程Linux系统上运行命令
- 可通过-p选项指定特定端口:
ssh -p 2200 qxhgd@192.168.1.100 hostnamectl
同时在多个远程Linux服务器上运行命令
- 通过for循环来实现:
$ vi /tmp/multiple-host.sh
for host in 192.168.1.100 192.168.1.101
do
ssh qxhgd@${host} "uname -a;uptime;date;w"
done
如果没有免密码认证,可借助sshpass
- 通过-p选项,带上密码:
sshpass -p 'qxhgd-password' ssh -p 2200 qxhgd@192.168.1.100 ip a
- 也可借助-f,通过文件的形式传密码:
echo "qxhgd" > qxhgdpassword.txt
sshpass -f qxhgdpassword.txt ssh qxhgd@192.168.1.100 uname -a
将命令输出从远程主机保存到本地主机
- 以下命令将通过 SSH 在远程系统上运行 “du -ah” 并将输出保存在diskusage.txt本地系统中的文件:
ssh qxhgd@192.168.1.100 du -ah > diskusage.txt
- 用户通过 ssh 在远程 Linux 机器上运行 top 命令,并将输出保存到本地系统中的文件:
$ ssh qxhgd@192.168.1.100 "top -bc | head -n 35" > /tmp/top-output.txt
使用SSH执行本地Shell脚本
- 假设本地有个脚本,希望在远程服务器上执行:
#!/bin/bash
echo "Hello, World!"
使用命令行配合标准输入
ssh qxhgd@192.168.1.100 'bash -s' < script.sh
- 命令说明:
- ‘bash -s’:在远程主机上启动一个Bash shell,并从标准输入读取脚本内容。
- script.sh:将本地文件script.sh的内容作为标准输入传递给远程的Bash shell。
使用scp
- 使用scp将本地的script.sh文件复制到远程主机的/home/user/目录下。
scp script.sh qxhgd@192.168.1.100:/home/qxhgd/
- 接下来,在远程主机上执行该脚本:
ssh qxhgd@192.168.1.100 'bash /home/qxhgd/script.sh'
使用SSH隧道和重定向
- 如果希望将本地脚本通过标准输入传递,并且在远程服务器上执行,可以结合管道和重定向来实现。例如:
cat script.sh | ssh qxhgd@192.168.1.100 'bash -s'
这条命令会将script.sh的内容通过管道发送到SSH连接,并在远程主机上使用Bash解释器执行。
如本文对你有些许帮助,欢迎大佬支持我一下(点赞+收藏+关注、关注公众号等),您的支持是我持续创作的竭动力
支持我的方式