怎么用脚本获取启动环境

wen 实用脚本 2

本文目录导读:

怎么用脚本获取启动环境

  1. 获取系统启动参数(Boot Parameters)
  2. 获取环境变量(Environment Variables)
  3. 获取服务/守护进程启动环境
  4. 获取 Docker/容器启动环境
  5. 获取程序启动时的运行环境
  6. 通用的启动环境检测脚本

“启动环境”这个说法在不同场景下含义不同,你可能指的是以下几种情况之一,我根据最常见的需求整理了对应的脚本获取方法:

获取系统启动参数(Boot Parameters)

Linux (Bash)

# 查看内核启动参数
cat /proc/cmdline
# 获取特定参数(如 quiet, splash)
cat /proc/cmdline | grep -o '\b\w+\b' | while read param; do
    echo "启动参数: $param"
done
# 格式化输出
awk '{for(i=1;i<=NF;i++) print "Param " i ": " $i}' /proc/cmdline

Windows (PowerShell)

# 查看启动配置数据
bcdedit /enum
# 获取当前启动项参数
Get-CimInstance -Namespace root\wmi -Class MSBootConfig | Select-Object -ExpandProperty BootConfigData
# 通过 WMI 获取
(Get-WmiObject -Class Win32_ComputerSystem).BootupState

获取环境变量(Environment Variables)

Linux/Mac (Bash)

# 所有环境变量
env
printenv
# 特定环境变量
echo $PATH
echo $HOME
echo $SHELL
# 写入日志文件
env > /tmp/startup_env.log

Windows (PowerShell)

# 所有环境变量
Get-ChildItem Env:
# 特定变量
$env:Path
$env:USERPROFILE
# 导出到文件
Get-ChildItem Env: | Out-File C:\startup_env.log

获取服务/守护进程启动环境

Linux (Systemd)

# 查看特定服务的环境
systemctl show sshd.service | grep -i environment
# 查看服务状态和启动参数
systemctl status sshd.service
# 查看所有服务的环境
systemctl show-environment

Linux (SysVinit)

# 查看 init 配置文件
cat /etc/inittab
# 查看 rc 脚本环境
cat /etc/rc.conf

获取 Docker/容器启动环境

# 查看容器启动时的环境变量
docker inspect <container_name> | jq '.[].Config.Env'
# 查看当前运行的进程环境
cat /proc/1/environ | tr '\0' '\n'
# 查看 Docker Compose 环境
docker-compose config

获取程序启动时的运行环境

Python 脚本

import os
import sys
# 所有环境变量
for key, value in os.environ.items():
    print(f"{key}: {value}")
# Python 路径
print(f"Python路径: {sys.path}")
# 当前工作目录
print(f"工作目录: {os.getcwd()}")

Node.js 脚本

// 环境变量
console.log(process.env);
// 启动参数
console.log(process.argv);
// 工作目录
console.log(process.cwd());

通用的启动环境检测脚本

Linux 综合检测脚本

#!/bin/bash
echo "=== 系统启动信息 ==="
echo "内核参数: $(cat /proc/cmdline)"
echo "启动时间: $(who -b)"
echo "运行级别: $(runlevel)"
echo -e "\n=== 关键环境变量 ==="
echo "PATH: $PATH"
echo "HOME: $HOME"
echo "SHELL: $SHELL"
echo "USER: $USER"
echo "LANG: $LANG"
echo -e "\n=== 系统信息 ==="
echo "主机名: $(hostname)"
echo "内核版本: $(uname -r)"
echo "架构: $(uname -m)"
# 写入文件
env > /tmp/environment_dump_$(date +%Y%m%d_%H%M%S).log

请告诉我你具体想获取哪类启动环境,我可以给你更精确的脚本:

  • A. 系统启动参数(kernel boot params)
  • B. Shell 环境变量
  • C. 服务/守护进程启动环境
  • D. 容器/云环境启动配置
  • E. 程序启动时的运行环境
  • F. 其他(请说明)

抱歉,评论功能暂时关闭!