shell脚本中实现远程和其他用户的子shell执行

文章目录

  • shell脚本中实现远程和其他用户的子shell执行
    • shell远程用户执行脚本
      • 简单执行-单行形式的命令
      • 脚本执行-对于命令行太多的采用eof方式支持多行命令
    • shell切换用户执行脚本
      • 简单执行
      • 脚本执行-对于命令行太多的采用eof方式支持多行命令
    • eof注意点
    • 案例

shell远程用户执行脚本

简单执行-单行形式的命令

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

  1. 双引号,必须有。如果不加双引号,第二个ls命令在本地执行
  2. 分号,两个命令之间用分号隔开

格式: ssh user@ip command

脚本执行-对于命令行太多的采用eof方式支持多行命令

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

  1. << eof,ssh后直到遇到eof这样的内容结束,eof可以随便修改成其他形式。
  2. 重定向目的在于不显示远程的输出了
  3. 在结束前,加exit退出远程节点
  4. eof上没有引号时,不支持多行命令中进行变量的声明

格式:

ssh user@ip << "eof"
# shell程序
exit
eof

shell切换用户执行脚本

简单执行

格式:su - user -c command

脚本执行-对于命令行太多的采用eof方式支持多行命令

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

  1. << eof,ssh后直到遇到eof这样的内容结束,eof可以随便修改成其他形式。
  2. 重定向目的在于不显示远程的输出了
  3. 在结束前,加exit退出用户
  4. eof上没有引号时,不支持多行命令中进行变量的声明

格式:

su - user@ip << "eof"
# shell程序
exit
eof

eof注意点

上述的使用eof格式时在父shell的控制台会输出一下提示

Pseudo-terminal will not be allocated because stdin is not a terminal.

最好在子shell中写到其他日志文件中。在父shell就不进行输出了。

ssh格式:

ssh user@ip > /dev/null 2>&1 << "eof"
# shell程序
exit
eof

su格式:

su - user@ip > /dev/null 2>&1 << "eof"
# shell程序
exit
eof

案例

#!/bin/bash# shell远程用户执行脚本
# ssh user@ip command
ssh -p222 root@192.168.1.2 "echo \"hello world\""
# 脚本执行-对于命令行太多的采用eof方式支持多行命令
ssh -p222 root@192.168.1.2 << "eof"
h="param value is hello world!"
echo "param value is ${h}"
exit
eof# shell切换用户执行脚本
# 简单执行
# su - user -c command
su - es -c "echo  \`whoami\` \"  hello world\""
# 脚本执行-对于命令行太多的采用eof方式支持多行命令
su - es <<'EOF'
echo `whoami`   "hello world!"
exit
EOF

shell脚本中实现远程和其他用户的子shell执行相关推荐

  1. csh shell_06145.16.1同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  2. 0614-5.16.1-同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析

    Fayson的github: https://github.com/fayson/cdhproject 推荐关注微信公众号:"Hadoop实操",ID:gh_c4c535955d0 ...

  3. csh shell_0614-同一OS用户并行Shell脚本中kinit不同的Principal串掉问题

    1.文档编写目的 在前面的文章<0552-5.15.0-同一OS用户不同Kerberos用户执行脚本Principal串掉>中Fayson主要介绍了同一个OS用户下并发调度Python脚本 ...

  4. shell脚本中的变量

    shell脚本中的变量 1 变量的定义 2 shell脚本中变量的定义方法 2.1 环境级别 2.2 用户级别 2.3 系统级别 3 变量名称 4 变量的转译 4.1 转译 4.2 声明 4.3 变量 ...

  5. linux 脚本 获取pid,Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...

  6. 如何在Shell脚本中使用if-else?

    Moving ahead from our previous tutorial on arrays in shell scripts, let's understand how we can use ...

  7. shell脚本中export命令未生效,原因详解

    1.问题发现   安装 jemalloc 后,执行 /usr/bin/jemalloc.sh 脚本生效环境变量 LD_PRELOAD.执行过后发现环境变量并未生效.过程如下: [root@10-27- ...

  8. linux脚本用户输入,如何在Linux shell脚本中提示用户输入

    本篇文章给大家介绍关于如何在Linux shell脚本中提示用户输入?下面来看具体的内容. 我们首先来看一下命令# read var # read -s "Waiting for input ...

  9. 如何在脚本中输入密码 linux,如何在shell脚本中为用户分配密码

    本篇文章给大家介绍的内容是关于如何在shell脚本中为用户分配密码,下面我们来看具体的内容. 我们先来看一下命令echo | passwd –stdin 例如: 使用以下命令更改shell脚本中用户j ...

最新文章

  1. 行情跌宕起伏,或许你可以买这个代币?
  2. 前端自动化构建工具Grunt
  3. 途虎养车APP--参数分析
  4. ZOJ-2770 Burn the Linked Camp 差分约束
  5. jbl css-h15,JBL CSS8006BM 天花音箱
  6. 【POJ - 1269 】Intersecting Lines (计算几何,直线间的位置关系)
  7. 【读书笔记0101】Beginning linux programming-3rd
  8. python 类函数 实例函数_python_30期【实例函数 类里面的函数】
  9. 从SAP BPC中Entity维设计的理念考虑Web程序中类似文档库之类的设计该考虑的东西...
  10. python 整除的数组_LeetCode 974. 和可被 K 整除的子数组 | Python
  11. emq mysql消息存储_EMQ X 规则引擎系列(二)存储消息到 MySQL 数据库
  12. 投入产出表直接消耗系数和完全消耗系数Stata版本(1990-2017年)
  13. rfid考勤系统c语言,基于RFID的员工考勤系统设计
  14. 网站建设经验分享:如何设计及运营网站
  15. IDEA 重复执行 updating indices问题
  16. CDR X7(CorelDRAW)注册下载详细安装教程,序列号功能齐全
  17. 用iPad开发iPhone App,苹果发布Swift Playgrounds 4
  18. Android 自定义相机 切换相机 参考线(辅助线) 闪光灯 缩放 自动聚焦 Demo
  19. 【inline、inline-block间的空隙】
  20. 分布式爬虫系统的设计与实现(SourceForge.net数据爬取)

热门文章

  1. 常见的Http状态码以及其代表的意义
  2. ExtCertPathValidatorException: Could not validate certificate: null
  3. C语言校园家教管理系统
  4. 海思 Hi3516 使用 gpac 库把 H265 和 AAC 封装成 MP4
  5. 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第一波)
  6. 点击菜单更改菜单栏背景图片
  7. 2022年11月编程语言排行
  8. 弘辽科技:2022年拼多多活动时间表是什么?促销方式有哪些?
  9. maven将第三方依赖包添加到pom文件
  10. 【linux应用编程】-进程全解