关于ssh远程执行命令出现xxx: command not found问题
最初是在虚拟机搭建Hadoop3.x集群,使用命令ssh hadoop001 jps,出现:
bash: jps: command not found
但是单独测试jps命令和先ssh登录再测试jps命令都是可行的。
这说明配置的 /etc/profile
文件中的环境变量是有效的,
对ssh远程执行命令这种方式是无效的,profile
文件没有调用到。
于是通过技术文章了解ssh远程执行命令的原理。
https://blog.csdn.net/whitehack/article/details/51705889
了解到ssh 远程执行命令采用bash的non-interactive
+ non-login shell
模式。这种模式下,bash没有登录启动,然后创建一个shell,执行完脚本或命令就退出,不与用户交互。它不会调用/etc/profile
文件,而是会去调用用户的home目录下的.bashrc文件,即~/.bashrc
。从两个文件开头也可以看出:
于是解决思路就是在~/.bashrc
文件中加入对应的环境变量:
export JAVA_HOME=/home/ubuntu/module/jdk
export PATH=$PATH:$JAVA_HOME/bin
然后我把环境变量添加在.bashrc
文件最后,保存:
但是!!!ssh远程命令反馈依然是jps: command not found
,我逐一检查,重复看文章,多次测试,无一成功,真是哭死。甚至想要使用ln
软链接将jps链接到/usr/local/bin
,但这种方式治标不治本。而多次探索中我无意中看到.bashrc
文件开头:
意思是如果不是运行交互式,就不做任何事情
,而ssh远程命令就是非交互式,会不会执行完这段就退出了呢?于是我又测试,在这段代码前后都加入输出代码:
结果如我所料:
最终得出解决方案:在~/.bashrc
文件中# If not running interactively, don't do anything
这段话前面加入环境变量。
再执行命令source ~/.bashrc
激活文件
测试成功!!!!
关于ssh远程执行命令出现xxx: command not found问题相关推荐
- 【linux】ssh 远程执行命令
1.概述 转载并且补充:ssh 远程执行命令 SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操 ...
- SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec][-D [bind_address:] ...
- linux 带环境变量 远程执行,SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...
- ssh远程执行命令 linux,Linux下使用SSH远程执行命令方法收集
说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示. 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls ...
- 【linux】ssh 远程执行命令自动输入密码方式
ssh 远程执行命令自动输入密码方式 场景: 由于多台机必须要登陆执行命令,需要使用密钥一台台登录,所以每次登陆机器的时候都需要手动输入域账号密码.密码太长且复杂,手动输入容易输错,故使用脚本来做这个 ...
- 解决SSH远程执行命令找不到环境变量的问题
解决SSH远程执行命令找不到环境变量的问题 参考文章: (1)解决SSH远程执行命令找不到环境变量的问题 (2)http://www.cnblogs.com/zhenyuyaodidiao/p/928 ...
- day26-3 模拟ssh远程执行命令
目录 模拟ssh远程执行命令 服务器 客户端 模拟ssh远程执行命令 实现在客户端输入执行命令后,返回执行命令的信息.如输入dir,显示当前目录下的所有文件和文件夹 服务器 import socket ...
- 远程启动hadoop,ssh远程执行命令报错!hdfs命令不存在!
1.任务:远程启动hadoop集群. #!/usr/bin/env bash HADOOP_HOME=/root/hadoop/hadoop-3.3.2 if [ $# -lt 1 ] thenech ...
- ssh 远程执行命令
SSH 是 Linux 下进行远程连接的基本工具,不光可以登录,也可以远程操作.接下来我们详细讲解一些常用的情况. 1.执行简单的命令: 1)查看某台主机上的磁盘使用情况: $ ssh root@1. ...
最新文章
- vonic 安装的坑
- SpringMVC简单项目配置
- python中函数提高代码执行速度吗_为什么Python代码在一个函数中运行得更快?
- 16位汇编 使用word ptr和byte ptr的寻址方式
- DotLucene源码浅读笔记(1) : Lucene.Net.Analysis
- JS中怎样比较两个 时分秒 格式的时间大小
- win7 右键增加打开 powershell选项
- java jmf 视屏监控的核心代码_JMF(Java Media Framework)使用摄像头
- すぬけ君の地下鉄旅行 / Snuke's Subway Trip(AtCoder-2069)
- Java生产环境下性能监控与调优详解 第7章 JVM层GC调优
- ARM、X86/Atom、MIPS、PowerPC 介绍
- 【经验分享】嵌入式C语言开发如何有效地排查内存泄露的疑难问题?
- SQL往表里添加字段
- 详解php与mysql的关系
- 测试工程师如何规划自己的职业生涯
- LCD显示异常分析——撕裂(tear effect)
- java spel_Java spring SPEL表达式注入
- 软考笔记——第七章--数据结构
- USB摄像头测试网址
- 【微信开发】基于微信公众号的早起签到程序
热门文章
- 联想扬天V15(i5 8265U/8GB/256GB/MX110)电脑 Hackintosh 黑苹果efi引导文件
- 全国城市中心点(全)
- 小米fortnite_我如何仅用1,001美元(与我12岁的孩子)构建自己的Fortnite DIY游戏平台
- js jquery阻止事件冒泡
- 游戏程序员养成计划 (更新2013.3.19)
- 通用jsonResult封装返回结果
- 抖音小店开店怎么样选择类目和商品?
- Vue3.0基础(一)
- 添加账号php,添加子账号示例代码
- vs2008 MFC使用DataGrid控件绑定数据库