`
can_do
  • 浏览: 263513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux以非root用户远程执行shell命令注意点

阅读更多
1、远程执行前提
在目标主机当前执行用户文件.bashrc配置要执行命令的环境变量,类似/etc/profile下的配置

注意:如果一些命令是全局安装的,则不用在环境变量中配置
/home/deploy_user/.bashrc
/////////begin/////////
export JAVA_HOME=/usr/local/yourdir/tools/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

export LANG=zh_CN.UTF-8
/////////end///////////


2、远程执行命令
ssh deploy_user@10.114.3.12 "/home/deploy_user/deploy_sh/deploy_8091.sh"

3、目标主机上脚本示例:
//////////begin////////
#!/bin/bash
#retrive pid of current java code
export dst_dir=/usr/local/yourdir/backend/node4customer
export jar_name=tojoy-backend-0.0.1-SNAPSHOT.jar
export jar_port=8091
#export pid=`ps -ef|grep java |grep ${jar_name} |awk -F' ' '{print $2}'`
export pid=`netstat -tnulp|grep ${jar_port}|grep java |awk -F' ' '{print $7}'|awk -F'/' '{print $1}'`
echo The current killed java pid is ${pid}
#firstly kill the current java code
kill -9 ${pid}
export JVM_OPTS="-server -Xms2G -Xmx2G -Xmn896M -Xss512k -XX:PermSize=96M -XX:MaxPermSize=256M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError"
#start the java code again
echo JAVA_HOME is ${JAVA_HOME}
#this operation is vip
cd ${dst_dir}
nohup java -jar ${JVM_OPTS} ${jar_name} > /dev/null  &
echo sleep for 2 seconds
sleep 2
//////////end//////////

【小结】
1> 如果命令是通过安装而不是解压配置的,则基本不用配置当前用户的环境变量,否则,必须在当前用户环境变量中配置;
2> 通过nohup执行,注意将日志重定向到设备/dev/null上,避免nohup.out持续性增大;
3> 在当前主机远程执行目标主机上的脚本,相当以当前用户登录ssh新开一个会话;
4> 要核查已有的环境变量是否生效,可以echo日志分析;

【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    Linux下如何限制Root用户进行远程登陆

    为了防止用这种方法实现 Root 远程登录,需要限制普通用户不能执行 su 命令: 1. 将 su 命令属主改为 root; 2. 将 su 命令的权限改为 700 通过以上四种方法,我们可以限制 Root 用户进行远程登陆,提高 Linux ...

    Linux通过Shell脚本命令修改密码的两种方式

    1. ssh 远程到主机; 2. 切换到root账号; [一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK]; 3. passwd username 使用passwd username 修改 username 的...

    jenkins 执行远程linux命令

    ### Jenkins执行远程Linux命令 #### 一、概述 在现代软件开发流程中,持续集成(CI)和持续部署(CD)已成为不可或缺的一部分。Jenkins作为一款开源自动化工具,被广泛应用于构建、测试以及部署等各个环节。为了...

    Linux下非交互式远程执行命令脚本.docx

    为了解决这些问题,"Linux下非交互式远程执行命令脚本"引入了一种名为jetfire的工具,它提供了一种更加灵活和自动化的方式来执行远程命令。 SSH的局限性主要体现在两方面:一是需要交互式地输入密码或建立SSH密钥对...

    Linux_SSH配置和禁止Root远程登陆设置文档

    SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录和命令执行,以及数据传输。它能够有效防止远程管理过程中的信息泄露、身份替换等攻击。在Linux系统中,通过合理配置SSH服务,不仅可以提升系统的安全...

    Linux禁止普通用户su至root的解决-禁止普通用户su到root,简洁可靠

    此外,可以考虑使用`sudo`的`requiretty`选项,这将强制用户在交互式终端上执行`sudo`命令,防止通过网络脚本等非交互方式提升权限: ```shell Defaults requiretty ``` 虽然这种方法增加了安全性,但也可能对远程...

    远程批量修改linux服务器密码的脚本归类.pdf

    我们使用 SSH 来连接远程 Linux 服务器,并执行相关的命令。 3. Linux 服务器密码的修改:我们使用 Expect 脚本来修改 Linux 服务器的密码。该脚本可以自动地输入密码,并执行相关的命令。 4. 用户和组的管理:在 ...

    「Linux下如何限制Root用户进行远程登陆」.docx

    通过shell脚本判断用户是通过远程还是局域网登录。首先,获取登录用户的主机IP地址或主机名,然后在root的`.profile`文件中根据这个信息来决定是否允许登录。例如,如果用户通过IP地址为99.57.32.18的终端服务器登录...

    Linux如何禁用root账户

    SSH(Secure Shell)是 Linux 中的一种安全shell协议,用于远程登录和管理 Linux 系统。要禁用 root 账户,需要编辑 `/etc/ssh/sshd_config` 配置文件。 步骤 1:编辑配置文件 首先,使用文本编辑器打开 `/etc/ssh...

    非root权限下配置linux hadoop集群自动SSH记录

    在Linux环境中,尤其是在Hadoop集群的管理中,SSH(Secure SHell)是不可或缺的工具,它允许用户在不同节点之间安全地执行命令。在没有root权限的情况下,普通用户也能配置SSH,实现自动化操作,这对于集群维护和...

    Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器.pdf

    SSH(Secure Shell)是一种安全的远程登录协议,允许我们通过网络连接到服务器并执行命令。在 Ubuntu-18.04 系统中,我们可以使用 `sudo apt-get install openssh-server` 命令来安装 SSH 服务。 安装完成后,我们...

    如何用java程序(JSch)运行远程linux主机上的shell脚本

    JSch(Java Secure Channel)是一个纯Java实现的SSH2库,它允许Java应用程序连接到SSH服务器并执行各种操作,包括运行远程shell命令和脚本。以下是如何使用JSch在Java程序中运行远程Linux主机上的shell脚本的详细...

    02-RHEL7-Linux控制台使用与shell命令执行

    Linux控制台使用和Shell命令执行是Linux操作系统中用户与系统交互的基础。在RHEL 7(Red Hat Enterprise Linux 7)版本中,这些操作同样重要,并且与旧版本相比有许多改进和特性。为了更好地理解和掌握Linux控制台的...

    linux下修改root用户密码

    4. **限制root登录**:除非必要,应限制直接以root身份登录,而是使用普通用户登录并通过`su`或`sudo`获取临时管理员权限。 5. **使用密钥对认证**:对于远程访问,推荐使用SSH密钥对认证,提高安全性。 6. **日志...

    远程 linux 命令工具

    本文将围绕标题“远程Linux命令工具”展开,主要关注如何使用Putty这个流行的远程连接工具,以及通过它来执行Linux命令,实现远程管理。 首先,Putty是一款轻量级且免费的SSH客户端,它支持多种网络协议,如SSH、...

    Linux下的Root权限控制.pdf

    这将防止这些用户登录Shell并执行命令。 7. **定期更新和安全审计**: - 定期应用系统更新和安全补丁,以保持系统安全。同时,定期进行安全审计,检查系统中可能存在的漏洞和不必要的服务,以降低攻击面。 通过...

    linux下root登录telnet的方法

    因此,在实际生产环境中,强烈建议使用更加安全的服务如SSH(Secure Shell)进行远程管理,并尽量避免直接使用root账户登录。 总结,本文详细介绍了如何在Linux系统中配置Telnet服务,使得能够使用root账户远程登录...

Global site tag (gtag.js) - Google Analytics