以下の内容はhttps://uncaughtexception.hatenablog.com/entry/2020/02/23/194324より取得しました。


App Service on Linux の Web SSH のコマンド履歴を保存する

はじめに

業務で初めて Angular に触れる機会があり、App Service on Linux で動かすにあたってちょっと苦戦したので、その辺りをまとめようと思ったのですが、 結構めんどくさい問題にあたってしまい、いまだ解決してないので、即席エントリーに変更。

App Service on Linux での SSH ログイン時の話です。 f:id:horihiro:20200223154512p:plain

コマンド履歴を保存してない

Bash のコマンド履歴って、logout 時に ~/.bash_history に書き出されるんですね。知りませんでした。

一方で、App Service on Linux の場合、あまり logout って操作をしないし、そもそも再起動すると、ホーム ディレクトリ (/root) が毎回初期化されるので、ひと工夫しないとコマンド履歴を保持しておくことができません。

やってみたひと工夫を紹介

永続される /home ディレクトリに .bash_history を作って、/root/.bash_histry からシンボリック リンクをはってみました。

あと環境変数 PROMPT_COMMAND を使って、コマンド実行のたびに履歴の Save と Reload をすることで、logout しなくても .bash_history が更新できるようしています。

こんな感じで。

#!/bin/sh
ls /home/.bash_history &>/dev/null || touch /home/.bash_history
ln -s /home/.bash_history /root/.bash_history
echo 'export PROMPT_COMMAND="history -a && history -c && history -r"' >> /root/.bashrc

ただこの設定も再起動するとクリアされます。

スタートアップ コマンド

なので、スタートアップ コマンドを使います。依存症です。
# App Service on Linux をいじる分には便利なんですよ

上のスクリプトの最後に npm start とかの web アプリケーション起動コマンドを追記して完成です。

#!/bin/sh
ls /home/.bash_history &>/dev/null || touch /home/.bash_history
ln -s /home/.bash_history /root/.bash_history
echo 'export PROMPT_COMMAND="history -a && history -c && history -r"' >> /root/.bashrc

# actual startup command
npm start

これでコマンド履歴が記録される設定が、きちんと永続化されるはずです。

お試しあれ。

ではでは。




以上の内容はhttps://uncaughtexception.hatenablog.com/entry/2020/02/23/194324より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14