Linux下使用SSH远程执行命令方法收集

说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示。

对于简单的命令:

如果是简单执行几个命令,则:

ssh user@remoteNode "cd /home ; ls"

基本能完成常用的对于远程节点的管理了,几个注意的点:

  • 双引号,必须有。如果不加双引号,第二个ls命令在本地执行
  • 分号,两个命令之间用分号隔开
  • 多行命令可以输入双引号后回车,结尾使用双引号包裹

对于脚本的方式:

有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现:

#!/bin/bash
ssh user@remoteNode > /dev/null 2>&1 << eeooff
cd /home
touch abcdefg.txt
exit
eeooff
echo done!

远程执行的内容在”<< eeooff“至”eeooff“之间,在远程机器上的操作就位于其中,注意的点:

<< eeooff,ssh后直到遇到eeooff这样的内容结束,eeooff可以随便修改成其他形式。

重定向目的在于不显示远程的输出了

在结束前,加exit退出远程节点

执行本地的脚本

我们在本地创建一个脚本文件test.sh,内容为:

ls
pwd
echo $0

然后运行下面的命令:

ssh root@xxx.xxx.xxx.xxx < test.sh

带参数本地脚本

ssh root@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld

执行远程服务器上的脚本

ssh root@xxx.xxx.xxx.xxx "/home/nick/test.sh"

执行远程服务器上带参数的脚本

ssh root@xxx.xxx.xxx.xxx /home/nick/test.sh helloworld

总结

以上所述是小编给大家介绍的Linux下使用SSH远程执行命令方法收集,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Linux VPS下SSH常用命令整理

    目录操作:rm -rf mydir /*删除mydir目录*/cd mydir /*进入mydir目录*/cd - /*回上一级目录*/  cd .. /*回父目录,中间有空格*/cd ~ /*回根目录*/mv tools tool /*把tools目录改名为tool */ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/cp -a tool /home/vpser/www /*把tool目录下所有文件复

  • expect命令在linux下实现批量ssh免密

    有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的文字. expect脚本 先看一段shell脚本,实现了ssh自动连接 #!/usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect &quo

  • 在PHP中运行Linux命令并启动SSH服务的例子

    升级 VPS 后,由于 Ubuntu 的 upstart 与 OpenVZ 的兼容问题,导致 sshd 服务不自动启动了,在尝试了 vePortal 的 console 与 file manager 及提交技术支持后都不能解决问题之后. 只能靠自己了,大概的思路是在 PHP 中进行 su 命令以执行 sshd 服务,因为 WordPress 还活着,并且可以在后台直接编辑主题相关的 PHP 脚本.只要把准备好的代码片断插入到 header.php 中,并在浏览器中访问一下主页即可. 相关的代码逻

  • 通过 SSH 在远程 Linux 系统上运行命令的方法

    我们有时可能需要在远程机器上运行一些命令.如果只是偶尔进行的操作,要实现这个目的,可以登录到远程系统上直接执行命令.但是每次都这么做的话,就有点烦人了.既然如此,有没有摆脱这种麻烦操作的更佳方案? 是的,你可以从你本地系统上执行这些操作,而不用登录到远程系统上.这有什么好处吗?毫无疑问.这会为你节省很多好时光. 这是怎么实现的?SSH 允许你无需登录到远程计算机就可以在它上面运行命令. 通用语法如下所示: $ ssh [用户名]@[远程主机名或 IP] [命令或脚本] 1) 如何通过 SSH 在

  • linux下ssh安装与scp命令使用详解

    ubuntu默认并没有安装ssh服务,可以通过如下命令进行: 复制代码 代码如下: yblin@yblin-desktop:~$ ssh localhost ssh: connect to host localhost port 22: Connection refused 如上所示则说明还没有安装ssh. 通过apt-get安装如下: 复制代码 代码如下: yblin@yblin-desktop:~$ sudo apt-get install openssh-server ssh默认端口是22

  • linux下使用ssh远程执行命令批量导出数据库到本地

    前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户是限

  • 菜鸟学Linux命令:ssh命令(远程登录)

    1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH: $ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003 下面的例子表明该系统正在使用SSH2: $ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-

  • Linux下使用SSH远程执行命令方法收集

    说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示. 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本的方式: 有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现: #!/bin/bas

  • python基于socket模拟实现ssh远程执行命令

    一.subprocess.Popen() subprocess模块定义了一个类: Popen 类原型: class subprocess.Popen( args, bufsize = 0, executable = None, stdin = None, stdout = None, stderr = None, preexec_fn = None, close_fds = False, shell = False, cwd = None, env = None, universal_newli

  • ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作 命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作 准备工作 基于公私钥认证或者用户

  • 关于SSH 远程执行命令你要知道的二三事

    前言 相信大家在工作的时侯,可能会遇到要利用 ssh 在本地执行远程机器的命令可以便捷地处理某些重复工作,我们希望做到: 免手工输入密码 支持执行多个命令,执行 shell 脚本 支持执行 sudo 的命令 免手工输入密码 我们可以使用 ssh 互信,sshpass 和 expect 等工具来避免手工输密码. 使用过程可能会碰到如下需要手工输入 yes 的繁琐场景: $ ssh username@hostname The authenticity of host ... can't be est

  • Python Paramiko上传下载sftp文件及远程执行命令详解

    目录 一.简介 安装模块 二.上传文件 三.下载文件 四.远程执行命令 五.错误集锦 原因 解决 一.简介 Paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 安装模块 默认Python没有自带,需要手动安装: pip3 install paramiko 二.上传文件 #!/usr/bin/env python3 # coding: utf-8 import paramiko def sftp_upload_file(host,user,pa

  • linux系统下的ssh登录和配置方法

    一 ssh的两种登录方式 1密码登录: [root@westos Desktop]# ssh root@192.168.122.26 Address 192.168.122.26 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! root@192.168.122.26's password: Last login: Tue Jan 17 13:27:29 2017 from

  • Linux下Redis允许远程连接的实现方法

    Linux安装好Redis之后,使用Java进行连接,Java代码如下 package com.wzj.demo.test; import redis.clients.jedis.Jedis; /** * Created by wzj on 2018/3/29. */ public class RedisJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("192.168

  • linux下禁止root远程登录和添加新用户的方法

    一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) 然后输入密码   (密码简单了通不过) 系统提示输入确认密码后再输入一次.OK添加成功. 2.修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示: vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALL admin ALL=(ALL) ALL 这个文件只

  • Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业.   service crond start    //启动服务   service crond stop     //

随机推荐