import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import ch.ethz.ssh2....Connection; import ch.ethz.ssh2.Session; import ch.ethz.ssh2.StreamGobbler; public class SshCommandExec...; } } maven包 ch.ethz.ganymed ganymed-ssh2
192.168.1.20上准备好test.sh脚本文件。.../bin/bash echo I am 192.168.1.20 [root@k8s-node2 ~]# chmod +x shell/test.sh //添加脚本执行权限 插件安装 在主机...SSH插件 安装完插件需要重启Jenkins生效。...插件配置 在Jenkins中【系统管理】—【系统配置】,划到“SSH remote hosts”来添加SSH远程节点,设置这一步前需要先设置好上面的凭证。 配置完后点击下方的“保存”即可。...构建项目 构建完成后,在左下角的构建历史处点击刚才那条构建的信息,然后点击“控制台日志输出”,就可以看到远程执行命令和shell脚本的详细步骤信息了。
192.168.1.20上准备好test.sh脚本文件。.../bin/bash echo I am 192.168.1.20 [root@k8s-node2 ~]# chmod +x shell/test.sh //添加脚本执行权限 插件安装 在主机...注意:私钥指的是Jenkins主机上生成的私钥,公钥在上面已经发送给被远程主机了。 Passphrase:SSH的密码,使用用户名/密码登录时为用户名的密码,使用私钥登录时为私钥的密码。 ...Username:SSH服务使用的用户名,使用key进行连接时为key指定的用户名。 ...Exec command:在这里填写在远程主机上执行的命令。 构建项目
工具 python paramiko 远程执行命令 import paramiko ssh = paramiko.SSHClient() key = paramiko.AutoAddPolicy(...) ssh.set_missing_host_key_policy(key) ssh.connect('127.0.0.1', 22, 'user', 'passwd' ,timeout=5) stdin..., stdout, stderr = ssh.exec_command('ls -l') for i in stdout.readlines(): print(i)
paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。...可以实现远程命令执行、文件传输、中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功能 # ssh执行远程命令脚本 点击查看 import paramiko import...sys def pl_ssh(ip,password,username,cmd,port="22"): ssh_client=paramiko.SSHClient() ssh_client.set_missing_host_key_policy...(cmd) print('服务器%s磁盘使用率情况' %ip) print(stdout.read().decode("utf-8")) ssh_client.close() if...上传下载文件脚本 点击查看 import paramiko transport = paramiko.Transport(('192.168.0.66', 22)) transport.connect
ssh执行远程操作 命令格式 ssh -p $port $user@$p 'cmd' $port : ssh连接端口号 $user: ssh连接用户名 $ip:ssh连接的ip地址 cmd:远程服务器需要执行的操作...准备工作 基于公私钥认证或者用户名密码认证能确保登录到远程local2服务器(有点基本运维知识的人做这个事情都不是问题) cmd如果是脚本,注意绝对路径问题(相对路径在远程执行时就是坑) 不足 这个命令可以满足我们大多数的需求...,但是通常运维部署很多东西的时候需要root权限,但是有几处限制: 远程服务器local2禁止root用户登录 在远程服务器脚本里转换身份用expect需要send密码,这样不够安全 执行远程服务器需要...sudo权限的脚本 ssh的-t参数 -t Force pseudo-tty allocation. ...中文翻译一下:就是可以提供一个远程服务器的虚拟tty终端,加上这个参数我们就可以在远程服务器的虚拟终端上输入自己的提权密码了,非常安全 命令格式 ssh -t -p $port $user@$ip '
如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本的方式: 有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现...重定向目的在于不显示远程的输出了 在结束前,加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远程执行命令方法收集,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
= SSH_OK) { ssh_channel_close(channel); ssh_channel_free(channel); return...ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, ipaddr); rc = ssh_connect(my_ssh_session);...(my_ssh_session)); ssh_disconnect(my_ssh_session); ssh_free(my_ssh_session); exit... gcc $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS) clean: rm -rf $(OBJS) $(TARGET) 然后直接make即可生成可执行文件...target 然后执行效果如下 [liuqi@btg example_libssh]$ .
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。...安装 libssh2 安装 libssh2 是一个开源的C语言库,用于实现SSH(Secure Shell)协议的客户端功能。...php -m|grep ssh2 ssh2 使用 连接远程服务器与SSH2服务器建立连接是使用PHP SSH2扩展时的第一步。...远程执行命令 该扩展最常见的用途之一是在远程服务器上执行命令。....'); } 使用if语句检查ssh2_connect()和ssh2_auth_password()函数是否成功执行。如果这两个函数中的任何一个出现错误,它将抛出一个失败信息并终止脚本的执行。
; 机器实例需要使用特殊的 get_instance_by_service 命令获取,这是平台提供的命令,它接收一个 group 参数,返回与日志相关的 500 多台实例; 上行时将 grep 脚本上传到远程机器的...;ssh 第二个参数是要远程执行的命令,为了测量 ssh 时间这里使用了 pwd 命令,它的耗时基本可以忽略。...,另外这个不能防止本地文件冲突,因此不同用户最好有自己单独的脚本副本) 脚本接收的参数由真正执行日志捞取的脚本传递,关于如何给远程脚本传递参数,稍后给出 干活的脚本有了,下面就来看一下负责上传脚本的 upload_fetch_log.sh...异步执行会非常快的返回,不存在之前那 2 秒的排队问题了 之前已经将过滤脚本上传到了远程实例的 /tmp 目录,所以这里直接调用 /tmp/fetch_log.sh 远程 ssh 脚本传参比较直观,就是直接在脚本后面加相应的参数字符串...,为防止参数中的空格中断参数解析,这里加了双引号 (在双引号中间需要 \ 释义) 按是否有 date 参数做下区分,有的话会将 date 参数给到远程实例的 fetch_log.sh 脚本,没有的话不传递这样就会使用当前日志文件了
我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力。...这时我们可以使用expect,向目标服务器上发送指令去实现批量操作。 下面的例子将在centos上将一个文件,批量拷贝到其他服务商上,并执行相应的命令 1....编写expect脚本 copyfilebatch.sh 下面的脚本将向内网IP为 192.168.0.102 至 192.168.0.112 的服务器分别拷贝一个rc.local文件,拷贝成功后,执行chmod...$i" puts "$ip" spawn ssh -o StrictHostKeyChecking=no $ip set timeout 3 expect "root@$ip's password...root@$ip's password:" set timeout 3 send "$password\r" set timeout 3 send "exit\r" spawn ssh
zabbix远程执行脚本未执行 前言 今天处理一个zabbix收到磁盘容量不足的报警时,远程到agent执行脚本的问题。...跟着官方文档做完之后,发现在web页面中显示「远程命令已执行」,但是在agent服务器中查看时,实际上该脚本未被执行。 通过排查和测试所有步骤,最后发现其实是少注释一个参数导致。...解决 编辑sudoer文件,注释掉以下参数即可。 [root@test /root]#visudo …… #Defaults requiretty ……
文章目录 前言 一、 命令行执行 Groovy 脚本并传入参数 二、获取 Groovy 脚本执行参数 前言 在 Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy...脚本 ; 一、 命令行执行 Groovy 脚本并传入参数 ---- 假设现在有一个 Script.groovy 脚本 , 使用 groovy Script.groovy arg0 arg1 命令 , 执行该...Script.groovy 脚本 ; 在 Groovy 脚本后面带上 arg0 和 arg1 是脚本的执行参数 , 在 Groovy 脚本中 , 可以通过 args 获取参数 , 这是一个字符串数组...String[] 类型数据 ; 二、获取 Groovy 脚本执行参数 ---- 在 Groovy 脚本中 , 通过 String[] args 可以直接获取命令行中传入的参数 ; Script.groovy...脚本代码如下 : /* 使用 groovy Script.groovy arg0 arg1 命令 执行该 Script.groovy 脚本 在 Groovy 脚本后面带上 arg0
expect命令实现脚本免交互 一、Linux下SSH无密码认证远程执行命令 在客户端使用ssh-keygen生成密钥对,然后把公钥复制到服务端(authorized_keys)。...实现步骤: 1、客户端机器创建密钥对 # ssh-keygen -t rsa #一直回车 2、登录需要执行命令的ssh服务器,创建.ssh目录,设置好目录权限 mkdir /root/.ssh chmod...no #关闭密码验证 service sshd restart 5、免交互登陆测试,并查看远程主机home目录 ssh root@服务端IP "ls -l /home/" 二、expect工具实现免密交互.../bin/bash ip=`cat /root/ip.txt` user=root pass=Admin@123 for i in $ip; do expect -c " spawn ssh..."$pass\r\"; exp_continue} \"root@*\" {send \"free -m\r exit\r\"; exp_continue} }" done 参数说明
下面就对 SSH 的远程操作功能进行一个小小的总结。 远程执行命令 如果我们要查看一下某台主机的磁盘使用情况,是不是必须要登录到目标主机上才能执行 df 命令呢?...当然不是的,我们可以使用 ssh 命令在远程的主机上执行 df 命令,然后直接把结果显示出来。...注意,我们在上图的命令中为 bash 指定了 -c 参数。 远程执行脚本 对于要完成一些复杂功能的场景,如果是仅仅能执行几个命令的话,简直是弱爆了。...要想在这种情况下(远程执行本地的脚本)执行带有参数的脚本,需要为 bash 指定 -s 参数: $ ssh nick@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld...执行远程服务器上的脚本 除了执行本地的脚本,还有一种情况是脚本文件存放在远程服务器上,而我们需要远程的执行它! 此时在远程服务器上用户 nick 的家目录中有一个脚本 test.sh。
简介 Java通过SSH jar包,远程连接Host进行命令执行,支持接收正常返回结果以及异常结果 代码 Pom配置: <groupId...sshHost.getUser(), sshHost.getIp(), sshHost.getPort()); session.setPassword(sshHost.getPwd()); // 使用密码登录...禁止使用秘钥登录(默认先使用秘钥,失败后使用密码,耗时严重) session.setConfig("StrictHostKeyChecking", "no"); session.setConfig...Channel channel = session.openChannel("exec"); ChannelExec exec = (ChannelExec) channel; // 返回结果流(命令执行错误的信息通过...getErrStream获取) exec.setCommand(commond); exec.connect(); try { // 开始获得SSH命令的结果 while
一句话: ssh -t -p 端口号 用户名@远程机器IP '远程机器上的命令完整路径' 例如: ssh -t -p 22 yangjunming@dev '/opt/app/deploy.sh'...注意事项: 一般先配置ssh免密码登录,然后结合这个可以实现一键远程自动部署,大概思路如下: a)先在本机build项目(ant/maven/gradle均可) b) 然后打包成tar并copy到远程机器的指定目录...(最简单的方式就是用scp) c) 调用远程机器上的shell脚本,解压tar并执行nohup之类的命令重启应用(如果考虑到备份的话,可以在解压前,先备份原来的应用或目录) 注:如果启用过程中,依赖一些环境变量...,比如:大部分java应用都依赖JAVA_HOME,CLASSPATH这二个环境变量,假设这二个环境变量是在/etc/profile里设置的,强烈建议在shell脚本开头,写上source /etc/profile...d) 删除(或备份)远程机器上的tar包
如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了。...一、场景还原: 我现在是想用一个脚本获取一定列表服务器的运行时间,首先我建立一个名字为ip.txt的IP列表(一个IP一行),再建好密钥实现不用密码直接登录。然后写脚本如下: #!...}; upt=`ssh root@${ips} uptime`; echo $upt; done 2、若坚持使用while循环,那么需要对ssh增加-n参数,为什么增加了...-n参数也可以解决问题呢?...通过man ssh查看-n参数的说明: Redirects stdin from /dev/null (actually, prevents reading from stdin) 这就和
分发系统介绍 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。...但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。...expect脚本远程登录 yum install -y expect 自动远程登录 #!...expect脚本远程执行命令 自动远程登录后,执行命令并退出 #!...远程登录机器执行命令后退出 ? 远程的机器执行命令后创建的文本和内容 ? expect脚本传递参数 传递参数 #!
expect脚本远程执行命令 动远程登录后,执行命令并退出 #!.../usr/bin/expect set user "root" set passwd "123123a" spawn ssh $user@192.168.133.130 expect { "yes/no...A 机器执行脚本 [root@aminglinux-02 sbin]# ./2.expect -bash: ./2.expect: 权限不够 [root@aminglinux-02 sbin...$ ./2.expect spawn ssh root@192.168.133.130 root@192.168.133.130's password: Last login: Wed Sep 20 23...mysql.sock systemd-private-7723d189c8d3469ab732edadbbc340cb-vmtoolsd.service-1yxB4M [root@aminglinux
领取专属 10元无门槛券
手把手带您无忧上云