shell脚本中实现远程和其他用户的子shell执行
shell脚本中实现远程和其他用户的子shell执行
文章目录
- shell脚本中实现远程和其他用户的子shell执行
- shell远程用户执行脚本
- 简单执行-单行形式的命令
- 脚本执行-对于命令行太多的采用eof方式支持多行命令
- shell切换用户执行脚本
- 简单执行
- 脚本执行-对于命令行太多的采用eof方式支持多行命令
- eof注意点
- 案例
shell远程用户执行脚本
简单执行-单行形式的命令
基本能完成常用的对于远程节点的管理了,几个注意的点:
- 双引号,必须有。如果不加双引号,第二个ls命令在本地执行
- 分号,两个命令之间用分号隔开
格式: ssh user@ip command
脚本执行-对于命令行太多的采用eof方式支持多行命令
远程执行的内容在<< eof
至eof
之间,在远程机器上的操作就位于其中,注意的点:
- << eof,ssh后直到遇到eof这样的内容结束,eof可以随便修改成其他形式。
- 重定向目的在于不显示远程的输出了
- 在结束前,加exit退出远程节点
- eof上没有引号时,不支持多行命令中进行变量的声明
格式:
ssh user@ip << "eof"
# shell程序
exit
eof
shell切换用户执行脚本
简单执行
格式:su - user -c command
脚本执行-对于命令行太多的采用eof方式支持多行命令
执行的内容在<< eof
至eof
之间,在远程机器上的操作就位于其中,注意的点:
<< eof
,ssh后直到遇到eof这样的内容结束,eof可以随便修改成其他形式。- 重定向目的在于不显示远程的输出了
- 在结束前,加
exit
退出用户 - 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执行相关推荐
- csh shell_06145.16.1同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...
- 0614-5.16.1-同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析
Fayson的github: https://github.com/fayson/cdhproject 推荐关注微信公众号:"Hadoop实操",ID:gh_c4c535955d0 ...
- csh shell_0614-同一OS用户并行Shell脚本中kinit不同的Principal串掉问题
1.文档编写目的 在前面的文章<0552-5.15.0-同一OS用户不同Kerberos用户执行脚本Principal串掉>中Fayson主要介绍了同一个OS用户下并发调度Python脚本 ...
- shell脚本中的变量
shell脚本中的变量 1 变量的定义 2 shell脚本中变量的定义方法 2.1 环境级别 2.2 用户级别 2.3 系统级别 3 变量名称 4 变量的转译 4.1 转译 4.2 声明 4.3 变量 ...
- linux 脚本 获取pid,Shell脚本中获取进程ID的方法
提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将she ...
- 如何在Shell脚本中使用if-else?
Moving ahead from our previous tutorial on arrays in shell scripts, let's understand how we can use ...
- shell脚本中export命令未生效,原因详解
1.问题发现 安装 jemalloc 后,执行 /usr/bin/jemalloc.sh 脚本生效环境变量 LD_PRELOAD.执行过后发现环境变量并未生效.过程如下: [root@10-27- ...
- linux脚本用户输入,如何在Linux shell脚本中提示用户输入
本篇文章给大家介绍关于如何在Linux shell脚本中提示用户输入?下面来看具体的内容. 我们首先来看一下命令# read var # read -s "Waiting for input ...
- 如何在脚本中输入密码 linux,如何在shell脚本中为用户分配密码
本篇文章给大家介绍的内容是关于如何在shell脚本中为用户分配密码,下面我们来看具体的内容. 我们先来看一下命令echo | passwd –stdin 例如: 使用以下命令更改shell脚本中用户j ...
最新文章
- 行情跌宕起伏,或许你可以买这个代币?
- 前端自动化构建工具Grunt
- 途虎养车APP--参数分析
- ZOJ-2770 Burn the Linked Camp 差分约束
- jbl css-h15,JBL CSS8006BM 天花音箱
- 【POJ - 1269 】Intersecting Lines (计算几何,直线间的位置关系)
- 【读书笔记0101】Beginning linux programming-3rd
- python 类函数 实例函数_python_30期【实例函数 类里面的函数】
- 从SAP BPC中Entity维设计的理念考虑Web程序中类似文档库之类的设计该考虑的东西...
- python 整除的数组_LeetCode 974. 和可被 K 整除的子数组 | Python
- emq mysql消息存储_EMQ X 规则引擎系列(二)存储消息到 MySQL 数据库
- 投入产出表直接消耗系数和完全消耗系数Stata版本(1990-2017年)
- rfid考勤系统c语言,基于RFID的员工考勤系统设计
- 网站建设经验分享:如何设计及运营网站
- IDEA 重复执行 updating indices问题
- CDR X7(CorelDRAW)注册下载详细安装教程,序列号功能齐全
- 用iPad开发iPhone App,苹果发布Swift Playgrounds 4
- Android 自定义相机 切换相机 参考线(辅助线) 闪光灯 缩放 自动聚焦 Demo
- 【inline、inline-block间的空隙】
- 分布式爬虫系统的设计与实现(SourceForge.net数据爬取)