完全吸收历史
简要概括
在shell中,可以使用“history -c”命令来清除历史记录。但是,历史记录还会存储在内存中,在注销时会从内存中恢复。因此,当再次登录时,历史记录又会重新显示出来。
命令行
执行下面的脚本将被完全删除。
cat /dev/null > ~/.bash_history && history -c && exit
安智能
目录结构
~/ansible
|- server
|- erase_history.yml
~/scripts
|- server
|- erase_script.sh
Ansible剧本
删除历史记录.yml
---
- name: check firewall setting
hosts: "{{ host | default('network') }}"
gather_facts: no
tasks:
- name: erase history
shell: "cat /dev/null > ~/.bash_history && history -c && exit"
args:
executable: /bin/bash
Bash脚本
擦除历史.sh
#!/bin/bash
HOST=""
usage() {
echo "Usage: erase_history.sh [-n ホスト名] [-h ヘルプ]\nhistoryを初期化する" 1>&2
}
exit_abnormal() {
usage
exit 1
}
call_ansible_script() {
cd ~/ansible/server/
CMD="ansible-playbook erase_history.yml --ask-vault-pass"
ARG=""
if [ ! -z "$HOST" ]; then
ARG="host=$HOST"
fi
ARG="$(echo -e "${ARG}" | sed -e 's/^[[:space:]]*//')"
if [ ! -z "$ARG" ]; then
CMD+=" -e \"$ARG\""
fi
eval ${CMD}
}
while getopts ":n:h" OPT; do
case $OPT in
n) HOST=${OPTARG};;
h) usage
exit 0
;;
:) echo "-$OPTARGはホスト名が必須です"
exit_abnormal;;
esac
done
call_ansible_script
exit 0
以上 (yǐ 直接用法语法句表达