符号转义解决SSH远程命令执行的问题

场景:
服务器 A B C D 上存在一些日志,日志中的每行包含了日期、日志级别、日志信息等。
现在要求从跳板机 X 获取这四台服务器上的数据,并通过规则(如日期)筛选,汇总到一个文件中。

日志内容如下所示:

2022-06-27 aaa
2022-06-28 aaa
2022-06-28 bbb

标准答案:

#!/bin/sh
Here is Server A

YYYYMMDD=$(date "+%Y-%m-%d")
filename=/tmp/output.txt
iplist=(
    "x.x.x.x"
    "x.x.x.x"
    "x.x.x.x"
    "x.x.x.x"
)

> $filename
for ip in ${iplist[@]}; do
    ssh $ip "grep $YYYYMMDD /path/to/log.log | awk '{print \$2}' | sort | uniq" >> $filename
    # or use
    # ssh $ip "grep $YYYYMMDD /path/to/log.log" | awk '{print $2}' | sort | uniq >> $filename
done

可能出现的问题:
如果没有关注到,远程SSH执行的命令中,是否存在字符需要转义,命令的执行结果就可能出现问题。

知识点:
ssh远程执行命令的符号转义问题 – IUNI_JM – 博客园 (cnblogs.com)

Original: https://www.cnblogs.com/cathonzhd/p/16418538.html
Author: Cathon
Title: 符号转义解决SSH远程命令执行的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610408/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaScript编程基础(一)

    目的: 熟练掌握JavaScript的语言基础,包括数据类型、常量和变量、运算符和表达式、基本语句和函数。 理解JavaScript如何动态产生HTML代码,以及控制CSS。 要求…

    Linux 2023年6月13日
    088
  • python学习(解析python官网会议安排)

    对html的解析是网页抓取的基础,分析抓取的结果找到自己想要的内容或标签以达到抓取的目的。 HTMLParser是python用来解析html的模块。它可以分析出html里面的标签…

    Linux 2023年6月14日
    0105
  • .net core3.1 abp动态菜单和动态权限(思路) (二)

    ps:本文需要先把abp的源码下载一份来下,跟着一起找实现,更容易懂 在abp中,对于权限和菜单使用静态来管理,菜单的加载是在登陆页面的地方(具体是怎么知道的,浏览器按F12,然后…

    Linux 2023年6月7日
    0113
  • Samba:文件共享

    samba:现主要用于Linux与Windows之间的文件共享。 samba的特点: 用于Linux与Windows之间进行文件共享和打印机共享 不仅用于Windows之间的文件共…

    Linux 2023年6月13日
    0109
  • MySQL回表查询

    一.MySQL索引类型 1.普通索引:最基本的索引,没有任何限制 2.唯一索引(unique index):索引列的值必须唯一,但是允许为空 3.主键索引:特殊的唯一索引,但是不允…

    Linux 2023年6月6日
    0109
  • Linux、Windows下Redis的安装即Redis的基本使用详解

    前言 什么是Redis Redis是一个基于 内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件,它是「 Remote Dictionary …

    Linux 2023年6月6日
    0114
  • 在Linux下安装Redis

    1. 下载Redis的压缩包 [root@spirit-of-fire ~]# wget http://download.redis.io/releases/redis-5.0.5…

    Linux 2023年6月14日
    094
  • Dockerfile 使用 SSH docker build

    如果在书写 Dockerfile 时,有些命令需要使用到 SSH 连接,比如从私有仓库下载文件等,那么我们应该怎么做呢? Dockerfile 文件配置 为了使得 Dockerfi…

    Linux 2023年6月7日
    087
  • Linux环境下,原根分区大小27G,新加入20G硬盘,想要合并到根分区

    ================①、查看磁盘结构 [root@localhost ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTs…

    Linux 2023年6月7日
    0111
  • shell md5sum

    md5sum out.a echo “fd_limit=$(ulimit -n), fd_used=$(ll /proc/4741/fd | wc -l)”…

    Linux 2023年5月28日
    082
  • IaaS、PaaS和SaaS:云计算的三种服务模式 【转】

    云计算是一种新的计算资源使用模式,云端本身还是 IT 系统,所以逻辑上同样可以划分为这四层。底三层可以再划分出很多”小块”并出租出去,这有点像立体停车房,按…

    Linux 2023年6月8日
    0129
  • Identity Server 4资源拥有者密码认证控制访问API(二)

    基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4客户端认证控制访问API 一、 Quick…

    Linux 2023年6月13日
    0110
  • linux神器sed快速入门,不好用你打我!

    为什么要学习sed sed(Stream EDitor)被誉为Linux三剑客之一,负责过滤和转换文本,功能灵活又强大,搭配正则表达式更是如虎添翼。 如果你需要向1000行文本中的…

    Linux 2023年6月7日
    087
  • PYTORCH: 60分钟 | TORCH.AUTOGRAD

    torch.autograd 是PyTorch的自动微分引擎,用以推动神经网络训练。在本节,你将会对autograd如何帮助神经网络训练的概念有所理解。 背景 神经网络(NNs)是…

    Linux 2023年6月16日
    0163
  • NRF24L01双向无线通信

    最近闲来无事,利用手头资源研究了一下基于nrf24L01的双向通信实验,整个系统如下图所示。原理:nrf24L01本身是一种单向通信的无线模块,但是,当nrf24L01工作在增强型…

    Linux 2023年6月14日
    091
  • Java基础系列–08_集合1

    集合当中有很多都是应用到泛型的技术,所以在讲集合之前,应该先将泛型的概念普及一下。 泛型:(1)泛型是一种类型,但是这种类型是在编译或者调用方法时才确定。(2)格式: (3)好处:…

    Linux 2023年6月7日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球