Історія башів для віддалених хостів


1

Я хочу мати переваги пошуку команд історії bash, але працюючи над кількома хостами, на які я ssh. Однак у мене немає домашнього каталогу на більшості віддалених програм через політику безпеки, тому його немає ~/.bash_history. export HISTFILE=/tmp/blahне працює для поточного сеансу. Навіть якби у мене був файл, він повинен синхронізуватися через кілька віддалених файлів через якийсь локальний файл.

Рішення, мабуть, має виглядати так:

Через .ssh/configабо aliasабо якось виконати щось навколо кожної команди ssh, наприклад

scp .remote-history user@remote:/tmp/history
ssh user@remote
scp user@remote:/tmp/history .remote-history.add
cat .remote-history.add >> .remote-history

якщо тільки не існує інструменту, який робить щось подібне.

Відповіді:


0

Цей сценарій (remote_run) повинен робити все, що ви хочете. це можна зробити набагато красивіше, але ...

https://gist.github.com/wwalker/c2677ec6dfef31cdaecad855e3f4df60

Виконайте це так:

remote_run remote_hostname

Коли ви вийдете, він буде замінено (тому не має двох одночасних віддалених_руків до того самого хоста або останнього виграшу, чия історія збережена) ваш локальний файл ~ / .bash_history-remote_hostname

#!/bin/bash
# version 0.0.1

LOCALHISTFILE=/tmp/$USER.history.$$;
read -d '' RUN << EOF
export HISTFILE=$LOCALHISTFILE;
export HISTTIMEFORMAT='%F %T - '
bash -i;
awk '{print \"HIST \"\$0}' \$HISTFILE;
EOF
ssh $1 "cat > $LOCALHISTFILE" < ~/.bash_history-$1
ssh -t $1 "$RUN" | tee /tmp/$USER-remote-history
grep '^HIST ' /tmp/$USER-remote-history | sed -e 's/^HIST //' -e 's/^M//' > ~/.bash_history-$1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.