以上信息用shell脚本写出来
时间: 2023-06-29 18:15:00 浏览: 53
以下是一个示例脚本,它可以获取您所需的信息:
```shell
#!/bin/bash
# 获取Oracle数据库版本和配置信息
ORACLE_HOME=$(echo $ORACLE_HOME)
ORACLE_SID=$(echo $ORACLE_SID)
ORACLE_VERSION=$(echo $ORACLE_HOME | sed "s/.*\///")
echo "Oracle Home: $ORACLE_HOME"
echo "Oracle SID: $ORACLE_SID"
echo "Oracle Version: $ORACLE_VERSION"
echo
# 获取操作系统版本和硬件配置信息
OS_VERSION=$(cat /etc/os-release | grep PRETTY_NAME | cut -d "=" -f 2 | sed 's/"//g')
CPU_NUM=$(lscpu | grep "^CPU(s):" | awk '{print $2}')
MEMORY_TOTAL=$(free -m | awk '/^Mem:/{print $2}')
echo "Operating System: $OS_VERSION"
echo "CPU Number: $CPU_NUM"
echo "Total Memory: $MEMORY_TOTAL MB"
echo
# 获取Oracle LMS进程的内存使用情况
LMS_MEMORY=$(ps -ef | grep ora_lms | grep -v grep | awk '{print $2}' | xargs pmap -d | awk '/^mapped:/{print $4}' | awk '{s+=$1} END {print s}')
LMS_LOCK_COUNT=$(sqlplus -S / as sysdba << EOF
set heading off
set feedback off
SELECT count(*) FROM gv\$lock WHERE type='TM' AND block=1;
exit;
EOF
)
LMS_TRANSACTION_COUNT=$(sqlplus -S / as sysdba << EOF
set heading off
set feedback off
SELECT count(*) FROM gv\$transaction;
exit;
EOF
)
echo "Oracle LMS Process Memory Usage: $LMS_MEMORY KB"
echo "Oracle LMS Lock Count: $LMS_LOCK_COUNT"
echo "Oracle LMS Transaction Count: $LMS_TRANSACTION_COUNT"
echo
# 获取系统日志和警告信息
LOG_FILE="/var/log/messages"
if [ -f "$LOG_FILE" ]; then
echo "System Log File: $LOG_FILE"
echo "Error and Warning Messages:"
grep -i -E "error|warning" $LOG_FILE | tail -n 10
fi
# 检查其他进程或服务是否使用了过多的内存
echo "Top Memory-Consuming Processes:"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 10
```
请注意,这只是一个示例脚本,并且可能需要根据您的具体环境进行调整。