Linux ssh的的用法
Linux ssh的的用法
ssh执行远程命令
1. 执行命令
1.执行单条命令
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 hostname
ubuntu@172.16.10.102's password:
node2
2.执行带参数的命令
ssh ubuntu@172.16.10.102 grep root /etc/passwd
ubuntu@172.16.10.102's password:
root:x:0:0:root:/root:/bin/bash
3.执行多条命令
执行多条命令时,只要用分号把命令分割开就可以了,但是要把多条命令用引号引起来,否则分号后面的命令就是在本地执行的。
# 不加分号
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 cat /etc/hostname;hostname -I
node2
172.16.10.101
# 加分号
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "cat /etc/hostname;hostname -I"
node2
172.16.10.102
4.执行多行命令
用单引号或双引号开头,然后写上几行命令,最后再用相同的引号来结束。
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "
> hostname -I
> uname -r
> uptime
> "
ubuntu@172.16.10.102's password:
172.16.10.102
4.4.0-31-generic
15:39:13 up 6:28, 2 users, load average: 0.00, 0.00, 0.00
5.执行交互命令
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "sudo apt install nginx"
ubuntu@172.16.10.102's password:
sudo: no tty present and no askpass program specified
默认情况下,当你执行不带命令的 ssh 连接时,会为你分配一个 TTY。因为此时你应该是想要运行一个 shell 会话。
但是当你通过 ssh 在远程主机上执行命令时,并不会为这个远程会话分配 TTY。此时 ssh 会立即退出远程主机,所以需要交互的命令也随之结束。
这时需要用 -t 参数显式的告诉 ssh,我们需要一个 TTY 远程 shell 进行交互,添加 -t 参数后,ssh 会保持登录状态,直到你退出需要交互的命令。
ubuntu@node1:~$ ssh -t ubuntu@172.16.10.102 "sudo apt install nginx"
ubuntu@172.16.10.102's password:
[sudo] password for ubuntu:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common
nginx-core
Suggested packages:
libgd-tools fcgiwrap nginx-doc
The following NEW packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx
nginx-common nginx-core
0 upgraded, 14 newly installed, 0 to remove and 8 not upgraded.
Need to get 2,681 kB of archives.
After this operation, 9,073 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
Connection to 172.16.10.102 closed.
6.使用本地变量
ubuntu@node1:~$ name="nginx"
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "echo "Install $name""
ubuntu@172.16.10.102's password:
Install nginx
2. ssh执行脚本
1.执行远程不带参数的脚本
#远程脚本文件内容
ubuntu@node2:~$ cat hello.sh
#!/bin/bash
echo "hello world"
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "$HOME/hello.sh"
ubuntu@172.16.10.102's password:
hello world
2.执行远程需要参数的脚本
# 远程脚本文件内容
ubuntu@node2:~$ cat script.sh
#!/bin/bash
name=$1
echo "install $name"
echo "installed succeed!"
ubuntu@node1:~$ name=nginx
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "$HOME/script.sh $name"
ubuntu@172.16.10.102's password:
install nginx
installed succeed!
3.执行本地不带参数的脚本
ubuntu@node1:~$ cat hello.sh
#!/bin/bash
hostname
touch hello.txt
ls
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 < hello.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
ubuntu@172.16.10.102's password:
node2
hello.txt
4.执行本地需要参数的脚本文件
# 脚本内容,需要传入一个参数
ubuntu@node1:~$ cat script.sh
#!/bin/bash
name=$1
echo "install $name"
echo "installed succeed!"
# 需要加上bash -s
ubuntu@node1:~$ ssh ubuntu@172.16.10.102 "bash -s" < script.sh nginx
ubuntu@172.16.10.102's password:
install nginx
installed succeed!
Linux ssh的的用法的更多相关文章
- linux ssh使用深度解析(key登录详解)
linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...
- (转)Linux SSH批量分发管理
Linux SSH批量分发管理 原文:http://blog.51cto.com/chenfage/1831166 第1章 SSH服务基础介绍 1.1 SSH服务 1.1.1SSH介绍 SSH是Sec ...
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- 如何通过linux ssh远程linux不用输入密码登入
如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料 ssh,ssh-keygen,scp 方法/步骤 首 ...
- windows 和 linux ssh互连
从windows连接到linux: linux开启sshd服务即可,主要是windows的配置如下: 1.使用软件,putty可以直接使用 2.使用cmd控制台连接linux,安装SSH Secure ...
- Linux SSH安全策略限制IP登录方法(转)
本文介绍了Linux SSH安全策略限制IP登录的两种方法.具体如下: 方法一: 首先需要限制登录的ip(或者如果需要自己本地登录,查看最后登录ip即可) Vim /etc/hosts.allow 输 ...
- Linux关于watch的用法
Linux关于watch的用法 2011-07-20 0个评论 收藏 我要投稿 watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一 ...
- [转]Linux中find常见用法示例
Linux中find常见用法示例[转]·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参 ...
- Linux SSh scp使用【远程文件/目录的传输】
一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...
随机推荐
- 【改】DOS文件格式转UNIX文件格式
windows中的文本文件的换行符是"\r\n",而linux中是"\n",dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但 ...
- web编程jsp小tips
jsp文件头 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...
- configerparser模块
'''[mysqld]charater-server-set='utf8'default-engine='innodb'skip-grant-table=Trueport=3306 [client]u ...
- ubuntu安装pandas
1 安装依赖包 setuptools Numpy: 1.7.1 or higher python-dateutil: 1.5 or higher pytz: Needed for time zone ...
- Fabric的使用总结
环境说明 建议python版本:2.7 fabric版本:最新版(当前为1.10.2) fabric安装 通过pip.py的方式安装(详细可以在fabric官网了解) fabric执行py文件的方法, ...
- win8安装maven
1.下载并解压maven F:\maven\apache-maven-3.5.2 2. 设置环境变量 3. Path路径中添加maven的可执行文件目录(bin目录) 4.验证maven是否安装成功: ...
- 数据库智能管理助手-CloudDBA
摘要:阿里云CloudDBA主要分为离线分析和在线分析两种功能.帮助用户节省成本,定位问题,分析原因并推荐解决方法.CloudDBA可以做到实时诊断,离线诊断和SQL优化.并且通过MySQL的参数调优 ...
- Python3解leetcode Average of Levels in Binary Tree
问题描述: Given a non-empty binary tree, return the average value of the nodes on each level in the form ...
- kafka集群安装及基本命令行使用
集群安装 环境介绍 本次安装kafka集群利用的是自带的zooKeeper,其实最好是把kafka和zooKeeper部署在不同的节点上,这样更高可用. 三个节点: kafka1:192.168.56 ...
- vim安装bundle和使用
一.准备工作 安装Git(因为下面我们选择的插件管理器需要使用到它)安装其他插件前首先需要选择一个Vim插件管理器,我这里选择的是Vundle,Vundle的工作过程中需要通过Git自动从远程创库同步 ...