Поскольку данные экспорта шифруются, Вы не должны шифровать трафик. Вам, вероятно, не нужен к authentify он ни один (если будет человек в середине, то Ваш пароль будет заботиться об аутентификации, как будто Вы не представлены с устройство, где ключ может быть дешифрован с Вашим паролем, это просто перестанет работать).
Простое решение и это работают по Интернету для экспорта блочного устройства, использует nbd (сетевое блочное устройство). Выполните nbd-сервер на экспортируемом и nbd-клиенте, где Вы хотите использовать его. устройства nbd могут также быть разделены (modprobe nbd max_part=16
).
nbd по одному соединению TCP, таким образом, можно также инкапсулировать его в ssh или openssl (использующий socat), или SOCKS или Прокси HTTP...
Вы можете использовать скрипт
. Он в основном сохраняет все напечатанные на терминале в том, что Script
сеанс .
script makes a typescript of everything printed on your terminal.
It is useful for students who need a hardcopy record of an
interactive session as proof of an assignment, as the typescript file
can be printed out later with lpr(1).
Вы можете запустить сеанс Script
, просто набрав скрипта
в терминале, все последующие команды и их выходы будут Все будет сохранено в файле с именем Teamscript
в текущем каталоге. Вы также можете сохранить результат к другому файлу, просто запустив скрипт
, как:
script output.txt
к выходу из системы экрана
(прекратить сохранение содержимого), просто введите Выход
.
Вот пример:
$ script output.txt
Script started, file is output.txt
$ ls
output.txt testfile.txt foo.txt
$ exit
exit
Script done, file is output.txt
Теперь, если я прочитал файл:
$ cat output.txt
Script started on Mon 20 Apr 2015 08:00:14 AM BDT
$ ls
output.txt testfile.txt foo.txt
$ exit
exit
Script done on Mon 20 Apr 2015 08:00:21 AM BDT
Script
также имеет много вариантов E.g. Бег тихо -q
( - тишина
) без отображения / сохранения сообщений программы, он также может запускать определенную команду -C
( - команда
), а не сеанс, у него также есть много других вариантов. Проверьте Человек-скрипт
, чтобы получить больше идей.
Я тоже столкнулся с этой проблемой и после некоторых поисков пришел к такому решению:
Добавьте в .bash_aliases следующее:
# Execute "script" command just once
smart_script(){
# if there's no SCRIPT_LOG_FILE exported yet
if [ -z "$SCRIPT_LOG_FILE" ]; then
# make folder paths
logdirparent=~/Terminal_typescripts
logdirraw=raw/$(date +%F)
logdir=$logdirparent/$logdirraw
logfile=$logdir/$(date +%F_%T).$$.rawlog
# if no folder exist - make one
if [ ! -d $logdir ]; then
mkdir -p $logdir
fi
export SCRIPT_LOG_FILE=$logfile
export SCRIPT_LOG_PARENT_FOLDER=$logdirparent
# quiet output if no args are passed
if [ ! -z "$1" ]; then
script -f $logfile
else
script -f -q $logfile
fi
exit
fi
}
# Start logging into new file
alias startnewlog='unset SCRIPT_LOG_FILE && smart_script -v'
# Manually saves current log file: $ savelog logname
savelog(){
# make folder path
manualdir=$SCRIPT_LOG_PARENT_FOLDER/manual
# if no folder exists - make one
if [ ! -d $manualdir ]; then
mkdir -p $manualdir
fi
# make log name
logname=${SCRIPT_LOG_FILE##*/}
logname=${logname%.*}
# add user logname if passed as argument
if [ ! -z $1 ]; then
logname=$logname'_'$1
fi
# make filepaths
txtfile=$manualdir/$logname'.txt'
rawfile=$manualdir/$logname'.rawlog'
# make .rawlog readable and save it to .txt file
cat $SCRIPT_LOG_FILE | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > $txtfile
# copy corresponding .rawfile
cp $SCRIPT_LOG_FILE $rawfile
printf 'Saved logs:\n '$txtfile'\n '$rawfile'\n'
}
И в конец вашего .bashrc файла добавьте следующее:
smart_script
После того, как вы это сделаете, команда "script" будет выполняться один раз в каждом сеансе терминала, записывая все в '~/Terminal_typescripts/raw'. Если вы хотите, вы можете сохранить журнал текущей сессии постфактум (в конце сессии), набрав 'savelog' или 'savelog logname' - это скопирует текущий необработанный журнал в '~/Terminal_typescripts/manual', а также создаст читаемый .txt журнал в этой папке. (Если вы забудете это сделать, необработанные файлы журнала все равно будут находиться в своей папке, вам просто придется их найти). Также вы можете начать запись в новый лог-файл, набрав 'startnewlog'.
Будет много ненужных лог-файлов, но вы можете время от времени очищать старые, так что это не большая проблема.
(Based on https://answers.launchpad.net/ubuntu/+source/gnome-terminal/+question/7131 , https://askubuntu.com/a/493326/473790 )
В следующих шагах запустите xrdb ~/.Xressources
после изменения файла ресурсов X -, затем откройте новый терминал, чтобы проверить изменения.
Мышь:Удерживать CtrlЛевая -мышь -щелчок . «Основные параметры» появляется меню. Выберите «Печатать -Все немедленно» и отпустите. Файл XTerm[date]
с содержимое терминала было создано в вашем домашнем каталоге.
Сочетание клавиш:Чтобы привязать действие к CtrlShifty , добавить в свой ~/.Xresources
файл:
XTerm*vt100.Translations: #override\
Ctrl Shift <Key> y: print-immediate()
Установка пути:printFileImmediate
устанавливает префикс файла дампа. Полезно указать путь к файлу дампа. Например, сбросить /home/user/dumps/xt[date]
файлы,
XTerm*printFileImmediate: /home/user/dumps/xt
Сочетание клавиш:Включить в~/.Xresources
:
URxvt.print-pipe: cat > $HOME/scrollback
Привязывается к Ctrl+Печать или Shift+Печать .
Не все из них могут это сделать; проверьте их справочную страницу или параметры меню.
Помимо script
, не зависящим от терминала -решением является использование мультиплексора.
В Tmux,это вопрос запуска его внутренней команды
capture-pane -S - ; save-buffer scrollback-file
Это в .tmux.conf
привязывает его к Ctrl+bCtrl+s:
bind C-s capture-pane -S - \; save-buffer $HOME/scrollback
nhi отлично решит вашу проблему. Этот инструмент автоматически собирает всю потенциально полезную информацию о каждой выполненной команде (, а также о ее выводе ).
С помощью nhi
вы можете легко получить любой сеанс оболочки (или выходные данные терминала )полностью или только часть сеанса оболочки, используя расширенный механизм запросов, предоставляемый nhi
.
Вы можете думать о nhi
как о значительно улучшенном history
.
Примечание:
Я создатель этого инструмента. Если у вас есть вопросы, пожалуйста, не стесняйтесь спрашивать.