Ssh命令——基石天赋

主要参数说明:

-l 指定登入用户
-p 设置端口号
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-N 不执行远程命令,只做端口转发
-q 安静模式,忽略一切对话和错误提示
-T 禁用伪终端配置

主服务器登录从服务器(主:192.168.1.1 从:192.168.1.2)

格式: Ssh root@192.168.1.2

输入从服务器的root密码:

这部执行后,就在从服务器里面了

但是:

Ssh root@192.168.1.2 “mkdir /media/cdrom”

这种类似命令就不会到从服务器去,而是在从服务器执行了命令就返回回来了,有时候这种结果并不是我们的本意

那么有意思的就来了:

1:从服务器下有个脚本/root/shell.sh

#!/bin/bash

Echo wwwwwwwwwwwwwwwwwwweb

那么执行ssh 192.168.1.2 “source /root/shell.sh”

当然,没有多大问题,在从服务器上打印后返回到本机

2:从服务器下有个脚本/root/shell.sh

#!/bin/bash

While:

do

   Echo wwwwwwwwwwwwwwwwwwweb

done

那么执行ssh 192.168.1.2 “source /root/shell.sh &”(这个&是执行远程后台运行sh)

问题就是主服务器上ssh输入密码后会一直卡主

原因是因为shell.sh一直在运行,并没有任何返回,因此调用方一直处于等待状态。

这时候需要先将从服务器上的shell.sh进程kill掉,ssh恢复

娜莫解决问题的方法呢?下面给出两个方法解决

方法一:为了解决等待过程,将标准输出与标准错误输出重定向到/dev/null,这样就不会卡主了。

但这个ssh进程会一直运行在后台,浪费资源,当然,这个后台进程需要的话也是准备kill掉的

方法二:

kill掉这个ssh进程,但是在ssh执行后就kill掉ssh进程

#!/bin/bash ssh -f -n 192.168.1.2 “source /root/shell.sh &” # 后台运行ssh

pid=$(ps aux | grep "ssh –f -n 192.168.1.2 /root/shell.sh" | awk '{print $2}' | sort -n | head -n 1) # 获取进程号

echo "ssh command is running, pid:${pid}"

sleep 10 && kill ${pid} && echo "ssh command is complete"

# 10秒后执行kill命令,关闭ssh进程

你是真的了解ssh吗 说说你不知道的ssh的更多相关文章

  1. ssh本机失败(ssh: connect to host localhost port 22: Connection refused)

    ssh本机失败(ssh: connect to host localhost port 22: Connection refused) 一. 问题描述 之前一直在服务上使用宝塔面板, 今天突发奇想, ...

  2. 如何生成SSH key及查看SSH key

    只适用于Mac和windows下的Git Bash操作界面. 一.检查本地是否有SSH Key存在 在终端输入 ls -al ~/.ssh 如果终端输出的是: No such file or dire ...

  3. Linux服务器开启ssh服务,实现ssh远程登陆!

    最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...

  4. ubuntu下查询SSH状态和安装SSH服务

    1.查询SSH的安装状态 rpm -qa |grep ssh 上面的命令可能出现提示说rpm未安装,可以使用下面这命令进行安装 sudo apt-get install rpm 某些帖子上也可以使用y ...

  5. [转]SSH 原理和基本使用:ssh 安全配置 以及ssh key 认证登录

    一.什么是 SSH ? SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输.早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗. ...

  6. ssh的配置,ssh打开密钥登陆,关闭密码登陆。

    刚装玩fedora,那么我们就以fedora为例来说一下怎么配置: 1.先确认是否已安装ssh服务: [root@localhost ~]# rpm -qa | grep openssh-server ...

  7. 解决ssh连接超时时间(ssh timeout)的设置方法

    本文介绍下,linux中ssh连接超时时间的设置方法,以避免总是被强行退出.有需要的朋友,参考下吧.有关修改ssh连接超时时间的方法,网上介绍的很多了.比如下面这个:可以减少ssh连接超时等待的时间: ...

  8. ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离

    ssh 配置文件讲解大全  ssh调试模式  sftp scp strace进行调试  特权分离 http://blog.chinaunix.net/uid-16728139-id-3265394.h ...

  9. 树莓派 ubuntu16.04 安装SSH 配置SSH 开机自启SSH

    入手个树莓派3B 装了 ubuntu 16.04 需要用到SSH 记录下 0.先获得树莓派IP 树莓派 使用网线连接路由器和树莓派 在路由器设置页面(一般是192.168.1.1具体看路由器的型号和设 ...

随机推荐

  1. eclipse配置及常用快捷键

    1. eclipse查看一个方法被谁引用(调用)的快捷键四种方式 1.(首推)双击选中该方法,Ctrl+Alt+H  如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ct ...

  2. CSS: The resize Property

    用户手动调节输入框样式: <!DOCTYPE html> <html> <head> <style> div { border: 2px solid; ...

  3. *Fragment与Activity生命周期的协调

    本文出处:http://blog.csdn.net/think_soft/article/details/7272869 拥有Fragment的Activity的生命周期直接影响了其中的Fragmen ...

  4. MySql 批量创建、导入实例

    1.创建sql(例如,taobao,dangdang): DROP DATABASE IF EXISTS taobao; CREATE DATABASE taobao CHARSET=utf8; US ...

  5. js类 的小例子

    class Flyer { constructor(fname, speed) { this.fname = fname; this.speed = speed; } fly(){ console.l ...

  6. js 函数里的 this

    1,当作为纯粹的函数调用时, this指向调用出的环境的上下文,看下面的例子 var x = 1; function test(){ var x = 0; alert( alert(x); } tes ...

  7. stringstream 用法

    stringstream stringstream 是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的 iostream.fstream 有类似的操作方式.要使用 stringst ...

  8. (一)java概述

    1.Java1995年斯坦福大学网络公司推出的一门高级语言.一种面向网络,完全的面向对象,完全可靠跨平台的语言.      java:一种面向对象的高级语言           将现实生活中的事物以及 ...

  9. session不一定非得要cookie开启才能使用。也可以使用get传递参数

    session不一定非得要cookie开启才能使用.也可以使用get传递参数 可以将session_id();设置为一个常量. define(’s_id‘ ,$_COOKIE['session_nam ...

  10. 剑指Offer面试题:6.旋转数组中的最小数字

    一 题目:旋转数组中的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1, ...