修改/etc/profile文件,增加如下内容,可以记录每个用户执行指令到临时文件夹。
#变更bash的环境变量,记录登录用户的操作命令。
export HISTORY_FILE=/tmp/history_$USER
USERNAME=$(who am i | awk -F ' ' '{print $1 $5}')
# 确保 HISTORY_FILE 存在且可写
if [ ! -f "$HISTORY_FILE" ]; then
touch "$HISTORY_FILE"
chmod 600 "$HISTORY_FILE"
fi
# 安全地获取最近一条命令
get_last_command() {
local last_cmd=$(history 1)
if [[ -n "$last_cmd" ]]; then
echo "$last_cmd" | cut -d' ' -f2-
else
echo "No command found"
fi
}
export PROMPT_COMMAND='{
last_cmd=$(get_last_command)
if [[ -n "$last_cmd" ]]; then
echo "$(date "+%Y-%m-%d %H:%M:%S [$USERNAME] ### $last_cmd")" >> "$HISTORY_FILE"
fi
}'
效果: