動態

詳情 返回 返回

motd - 動態 詳情

展示類似這種登錄信息
image.png

對於docker來説,登錄有兩種方式,一種是ssh登錄,一種是docker exec命令進入。利用現有的motd機制,只能對於ssh 登錄有效。motd機制介紹如下,以ubunt系統為例:
/etc/motd 文件裏添加靜態內容,所見既所得。
/etc/update-motd.d/ 目錄下面添加一些腳本,該目錄下文件以文件名開頭數字順序執行:
image.png
如果想對docker exec命令進入也生效,必須採用shell配置的方式,
比如添加 /etc/profile裏,或者添加到 ~/.bashrc 裏
source /etc/damodel_motd.sh

另,一種shell藝術字
apt update && apt install -y figlet
shell字體顏色設置:https://blog.csdn.net/yetugeng/article/details/89978787

cat /etc/damodel_motd.sh

#!/bin/bash
text=`figlet welcome to DaModel`
echo -e "\033[1;47;31m ${text} \033[0m"

printf "
"
echo -e "\033[7;1;34m 目錄説明: \033[0m
"
printf "╔══════════════════════╦══════════╦═════╦═════════════════════════════════════════════════════════════════════════╗
"
printf "║目                  錄║名      稱║速 度║説明                                                                     ║
"
printf "╠══════════════════════╬══════════╬═════╬═════════════════════════════════════════════════════════════════════════╣
"
printf "║/                     ║系  統  盤║一 般║實例關機數據會丟失,會隨保存鏡像一起保存。                               ║
"
printf "╠══════════════════════╬══════════╬═════╬═════════════════════════════════════════════════════════════════════════╣
"
printf "║/root/workspace/      ║本地數據盤║ 快  ║實例關機數據會丟失,可存放讀寫IO要求高的數據。但不會隨保存鏡像一起保存。 ║
"
printf "╠══════════════════════╬══════════╬═════╬═════════════════════════════════════════════════════════════════════════╣
"
printf "║/root/shared-storage/ ║網      盤║ 慢  ║可以實現多實例間的文件同步共享,不受實例開關機和保存鏡像的影響。         ║
"
printf "╚══════════════════════╩══════════╩═════╩═════════════════════════════════════════════════════════════════════════╝
"

if [[ -n "$MOUNT_INFO" ]]; then
    if [[ -f "/etc/mount_info.sh" ]]; then
            /etc/mount_info.sh
    fi
else
    echo "未掛載雲磁盤"
fi

printf "
"
printf "
"

if test -f "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"; then
  cfs_quota_us=$(cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us)
  cfs_period_us=$(cat /sys/fs/cgroup/cpu/cpu.cfs_period_us)
  if [ $cfs_quota_us -ge $cfs_period_us ];then
      cores=$((cfs_quota_us / cfs_period_us))
  else
      cores=0.$((cfs_quota_us * 10 / cfs_period_us))
  fi
  printf "CPU :%s 核心
" ${cores}

  limit_in_bytes=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
  memory="$((limit_in_bytes / 1024 / 1024 / 1024)) GB"
  printf "內存:%s
" "${memory}"
else
  cores=$(cat /sys/fs/cgroup/cpu.max | awk '{print $1/$2}')
  printf "CPU :%s 核心
" ${cores}

  limit_in_bytes=$(cat /sys/fs/cgroup/memory.max)
  memory="$((limit_in_bytes / 1024 / 1024 / 1024)) GB"
  printf "內存:%s
" "${memory}"
fi

if type nvidia-smi >/dev/null 2>&1; then
  gpu=$(nvidia-smi -i 0 --query-gpu=name,count --format=csv,noheader)
  printf "GPU :%s
" "${gpu}"
fi

echo ""
echo -e  "\033[1;31m                            🔥🔥🔥💣 注意: 💣🔥🔥🔥  \033[0m "
echo -e "\033[7;1;31m 1.系統盤較小請將大的數據存放於本地數據盤或網盤中,重置系統時本地數據盤和網盤中的數據不受影響。 \033[0m "
echo -e "\033[7;1;31m 2./root/workspace/下內容,釋放實例時不保存,製作鏡像時也不保存。\033[0m "
echo -e "\033[7;1;31m 3.用户在創建雲磁盤時可以選擇是否隨實例釋放,如果有重要數據建議不要勾選'隨實例釋放'。\033[0m "

Add a new 評論

Some HTML is okay.