当前位置: 首页 > 知识库问答 >
问题:

确定shell脚本是否运行在Google Cloud Compute Engine实例上的最佳方法是什么?

唐繁
2023-03-14
head -c 3 /sys/hypervisor/uuid

如果是,则返回“EC2”。

我可以用来判断脚本是否运行在Google Cloud Compute Engine实例上的等价物是什么?

共有1个答案

焦博实
2023-03-14

您可以使用两种方法来发现脚本是否在Google Compute Engine实例中运行。

首先,如果您的脚本从GCE实例查询元数据服务器,任何响应都将包含'Metadata-Flayer:Google'标头。例如,运行curl metadata.google.internal-i将生成如下输出:

HTTP/1.1 200 OK Metadata-Flavor: Google 
Content-Type: application/text 
Date: Tue, 07 Nov 2017 16:33:41 GMT 
Server: Metadata Server for VM 
Content-Length: 22 
X-XSS-Protection: 1; mode=block 
X-Frame-Options: SAMEORIGIN 0.1/ computeMetadata/

您还可以使用dmidecode工具访问/proc/mem中的DMI/SMBIOS信息,该工具允许您搜索特定于GCE的字符串。

sudo dmidecode -s system-product-name | grep "Google Compute Engine"
Google Compute Engine
 类似资料:
  • 问题内容: 确保给定脚本仅一个实例正在运行的最简单/最佳方法是什么(假设它是Linux上的Bash)? 目前,我正在做: 但是它有几个问题: 它把检查放在脚本之外 它不允许我从单独的帐户运行相同的脚本-有时我想这样做。 仅检查进程名称的前14个字符 当然,我可以编写自己的pidfile处理程序,但我认为应该有一种简单的方法。 问题答案: 如果所有用户的脚本都相同,则可以使用一种方法。如果您获得了锁

  • 问题内容: 在ServiceStack网站上列出,它表明ServiceStack可以在Mono上运行,并且可以: XSP mod_mono FastCgi 安慰 这些不同的配置是什么?Mono上的Web Services首选哪种配置? 问题答案: Linux更新 从v4.5.2版本开始, ServiceStack现在支持.NET Core,它比Mono有了显着的性能和稳定性改进,Mono是从共享的

  • 问题内容: 我在想是否存在一种更好/更巧妙的方法来否定Java。实际上,我正在执行以下操作: 但是我认为应该存在一种“美丽”的语法。 有谁知道它是否存在以及其语法如何? 编辑: 美丽,我可能会这样说: 问题答案: 不,没有更好的办法。你的是规范的。

  • 问题内容: 使用PHP(给定URL),如何确定它是否是图像? URL没有上下文-它只是在纯文本文件的中间,或者可能只是一个字符串。 我不希望开销很大(例如,读取URL的内容),因为页面上的许多URL都可以调用此方法。鉴于此限制,识别所有图像并不是必需的,但是我想作一个很好的猜测。 目前,我只是在看文件扩展名,但是感觉应该有比这更好的方法。 这是我目前拥有的: 编辑: 如果对其他人有用,这里是使用E

  • 本文向大家介绍什么是Shell脚本?,包括了什么是Shell脚本?的使用技巧和注意事项,需要的朋友参考一下 Shell脚本是由Unix Shell(是命令行解释器)运行的计算机程序中的命令列表。Shell脚本通常具有描述步骤的注释。Shell脚本执行的不同操作是程序执行,文件操作和文本打印。包装器也是一种Shell脚本,用于创建程序环境,运行程序等。 贝壳类型 Unix中有两种主要的Shell类型

  • 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到当前用户的home目录 第3行:创建一个目录shell_tut 第4行:切换到s