plink 远程执行命令,指令执行异常,与linux终端执行结果不一样

使用场景:在做自动化部署的时候,或者远程管理的时候,经常用到plink或者ssh远程连接工具,但是使用也会遇到一些问题。

问题:在用plink远程连接linux,并执行命令的时候,有些情框与登录linux终端执行结果并不一样,比如我们远程启动tomcat,调用start.sh(bash)文件指令,比如start.sh中有些环境变量PATH并不全。

分析: 通过ssh或者plink连接远程主机,登录后不会开启登录账号的shell环境,什么意思呢,下面通过案例说明一下。

我们用plink远程连接主机: plink -pw  *****  root@127.0.0.1  /mnt/tomcat/start.sh

发现执行后能正常启动,但是path变量缺少一些信息,由于plink远程登录并不启动登录shell环境,也就是说连接后,不会加载当前用户bash,我们知道linux每个用户登录后,默认到/home/当前用户,每个用户都有个.bash_profile,登录后会自动执行这个文件,而plink连接后,默认不是登录环境,不会加载,这里面的配置的信息,自然加载不到,导致后面指令运行找不到,达不到预期的效果

修改方法:plink -pw  *****  root@127.0.0.1  source /home/root/.bash_profile ; /mnt/tomcat/start.sh 

需要在运行之前手动加载一下,或者强制登录后作为登录环境加载bash

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值