mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-03 12:03:56 +08:00
Merge pull request #13 from YTjungle666/fix/my-default-settings-sysinfo
my-default-settings: 修复 LXC 容器内登录横幅(df 折行报错 / 宿主数值 / CPU 型号)(diy patch)
This commit is contained in:
1 file changed
+78
@@ -0,0 +1,78 @@
|
||||
--- a/my-default-settings/files/etc/profile.d/30-sysinfo.sh
|
||||
+++ b/my-default-settings/files/etc/profile.d/30-sysinfo.sh
|
||||
@@ -57,7 +57,7 @@
|
||||
function storage_info()
|
||||
{
|
||||
# storage info
|
||||
- RootInfo=$(df -h /)
|
||||
+ RootInfo=$(df -P -h /)
|
||||
root_usage=$(awk '/\// {print $(NF-1)}' <<<${RootInfo} | sed 's/%//g')
|
||||
root_total=$(awk '/\// {print $(NF-4)}' <<<${RootInfo})
|
||||
} # storage_info
|
||||
@@ -68,32 +68,31 @@
|
||||
storage_info
|
||||
critical_load=$(( 1 + $(grep -c processor /proc/cpuinfo) / 2 ))
|
||||
|
||||
-# get uptime, logged in users and load in one take
|
||||
-UptimeString=$(uptime | tr -d ',')
|
||||
-time=$(awk -F" " '{print $3" "$4}' <<<"${UptimeString}")
|
||||
-load="$(awk -F"average: " '{print $2}'<<<"${UptimeString}")"
|
||||
-case ${time} in
|
||||
- 1:*) # 1-2 hours
|
||||
- time=$(awk -F" " '{print $3" 小时"}' <<<"${UptimeString}")
|
||||
- ;;
|
||||
- *:*) # 2-24 hours
|
||||
- time=$(awk -F" " '{print $3" 小时"}' <<<"${UptimeString}")
|
||||
- ;;
|
||||
- *day) # days
|
||||
- days=$(awk -F" " '{print $3"天"}' <<<"${UptimeString}")
|
||||
- time=$(awk -F" " '{print $5}' <<<"${UptimeString}")
|
||||
- time="$days "$(awk -F":" '{print $1"小时 "$2"分钟"}' <<<"${time}")
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
-
|
||||
-# memory and swap
|
||||
-mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem")
|
||||
-memory_usage=$(awk '{printf("%.0f",(($2-($4+$6))/$2) * 100)}' <<<${mem_info})
|
||||
-memory_total=$(awk '{printf("%d",$2/1024)}' <<<${mem_info})
|
||||
-swap_info=$(LC_ALL=C free -m | grep "^Swap")
|
||||
-swap_usage=$( (awk '/Swap/ { printf("%3.0f", $3/$2*100) }' <<<${swap_info} 2>/dev/null || echo 0) | tr -c -d '[:digit:]')
|
||||
-swap_total=$(awk '{print $(2)}' <<<${swap_info})
|
||||
+# uptime and load: read /proc directly - in LXC/LXCFS containers the
|
||||
+# uptime/free commands are syscall-based and would show the host values.
|
||||
+_secs=$(cut -d. -f1 /proc/uptime 2>/dev/null)
|
||||
+case "$_secs" in *[!0-9]*|"") _secs=0 ;; esac
|
||||
+_ud=$(( _secs / 86400 )); _uh=$(( _secs % 86400 / 3600 )); _um=$(( _secs % 3600 / 60 ))
|
||||
+if [ "$_ud" -gt 0 ]; then
|
||||
+ time="${_ud}天 $(printf '%02d:%02d' "$_uh" "$_um")"
|
||||
+else
|
||||
+ time="$(printf '%02d:%02d' "$_uh" "$_um")"
|
||||
+fi
|
||||
+load="$(awk '{print $1" "$2" "$3}' /proc/loadavg 2>/dev/null)"
|
||||
+[ -n "$load" ] || load="0.00 0.00 0.00"
|
||||
+
|
||||
+
|
||||
+# memory and swap: read /proc/meminfo directly (same reason as above)
|
||||
+_mt=$(awk '/^MemTotal:/{print $2}' /proc/meminfo)
|
||||
+_mf=$(awk '/^MemFree:/{print $2}' /proc/meminfo)
|
||||
+_mb=$(awk '/^Buffers:/{print $2}' /proc/meminfo)
|
||||
+_mc=$(awk '/^Cached:/{print $2}' /proc/meminfo)
|
||||
+_st=$(awk '/^SwapTotal:/{print $2}' /proc/meminfo)
|
||||
+_sf=$(awk '/^SwapFree:/{print $2}' /proc/meminfo)
|
||||
+memory_usage=$(awk -v t="${_mt:-0}" -v f="${_mf:-0}" -v b="${_mb:-0}" -v c="${_mc:-0}" 'BEGIN{ if (t>0) printf "%.0f", (t-f-b-c)/t*100; else print 0 }')
|
||||
+memory_total=$(( ${_mt:-0} / 1024 ))
|
||||
+swap_usage=$(awk -v t="${_st:-0}" -v f="${_sf:-0}" 'BEGIN{ if (t>0) printf "%.0f", (t-f)/t*100; else print 0 }')
|
||||
+swap_total=$(( ${_st:-0} / 1024 ))
|
||||
|
||||
c=0
|
||||
while [ ! -n "$(get_ip_addresses)" ];do
|
||||
@@ -115,7 +114,7 @@
|
||||
|
||||
display "系统存储" "$root_usage" "90" "1" "%" " of $root_total"
|
||||
if [ -x /sbin/cpuinfo ]; then
|
||||
-printf "CPU 信息: \x1B[92m%s\x1B[0m\t" "$(echo `/sbin/cpuinfo | cut -d ' ' -f -4`)"
|
||||
+printf "CPU 信息: \x1B[92m%s\x1B[0m\t" "$(echo `/sbin/cpuinfo | cut -d ' ' -f 1-7`)"
|
||||
fi
|
||||
echo ""
|
||||
echo ""
|
||||
Reference in new issue
Block a user