У меня было подобное требование приблизительно шесть месяцев назад. Прежде всего, потому что я работал через SSH весь день. Как был уже предложен, используйте экран GNU. Ее довольно ужасное (по моему скромному мнению), прямо после установки его. Однако! Это высоконастраиваемо через .screenrc файл. Существует много учебных руководств онлайн, которые предоставляют код, который можно вырезать и вставить для получения его, как Вам нравится.
Я пошел, насколько соединить несколько сценариев для установки такой среды - MALiCE - 'Моя Потрясающая Среда программирования Linux'. Его доступное на GitHub здесь:
Это также документирует сочетания клавиш партий, а также образец .muttrc и .screenrc файлы - которые являются установкой для работы с вещами как Gmail.
Отметьте не прекрасный, но это может сэкономить Вам некоторое время и усилие взглянуть на некоторые файлы конфигурации и сценарии. Существует сильная предвзятость энергии.
Я также рекомендовал бы программы, такие как cmus (основанный на тексте медиаплеер - довольно хороший) и дурак (почтовый клиент - снова настроенный через текстовый файл .muttrc). Существуют также основанные на тексте клиенты IRC и хотите верьте, хотите нет, основанные на тексте видеодекодеры, которые превратят видео в ASCII - немного экстремального значения, но каждый к их собственному.
Если Вы не хотите рабочего стола вообще затем существует число вариантов. Например, Вы могли установить slackware, который, если я помню правильно начальные загрузки к интерфейсу командной строки. Необходимо стараться изо всех сил запускать GUI.
tee
управляйте данными записей к выходному файлу, поскольку это получает его, но scp
копирует файл сразу и только копирует его однажды. Так как каждая команда в конвейере работает одновременно (или почти так), Вы только получаете некоторых (или не) пакетный вывод в файл capture.txt, прежде чем файл будет скопирован scp
.
Существует пара способов сделать то, что Вы, кажется, хотите сделать.
Если Вы хотите скопировать несколько пакетов с tcpdump
, и затем передайте файл удаленному хосту после того, как он заканчивается, можно использовать -c
опция завершиться tcpdump
после того, как это получает то количество пакетов. Разделите Ваш scp
команда от конвейера с помощью полу двоеточия, таким образом, это выполняется после tcpdump
и tee
завершенные команды:
tcpdump -l -c 10 | tee /tmp/capture.txt; scp /tmp/capture.txt root@remotehost:/tmp
Или, если Вы хотите видеть пакеты в режиме реального времени и также скопировать их в в реальном времени, Вы могли бы использовать tee
для вывода пакетов к/dev/tty, таким образом, Вы видите их и их, передают их по каналу в ssh
команда, которая пишет им в файл на удаленном хосте:
tcpdump -l | tee /dev/tty | ssh root@remotehost "cat > /tmp/capture.txt"
Отметьте это без -c
опция здесь, tcpdump будет работать, пока Вы не уничтожите ее.
Если бы Вы хотели пакеты, сохраненные в локальном файле capture.txt, а также удаленном, то Вы могли использовать несколько tee
команды:
tcpdump -l | tee /tmp/capture.txt | tee /dev/tty | ssh root@remotehost "cat > /tmp/capture.txt"
Не гарантируется, что мишень закончила писать capture.txt, когда scp читает его. То, что Вы могли сделать, использовать stdout мишени и передать его по каналу через ssh как это:
tcpdump -l -X -i eth1 -n tcp port <port> | tee capture.txt | \
ssh root@10.3.3.227 'cat > /home/checker/capture.txt'
Я думаю, что проблема здесь состоит в том, что файл Вы копируете через scp
копируется в момент вовремя и не непрерывно, таким образом, Вы заканчиваете с фрагментом содержания того файла на сервере 10.3.3.227.
Попробуйте это вместо этого:
$ sudo tcpdump -l -X -i eth1 -n <tcp port> | tee capture.txt | \
ssh root@10.3.3.227 'cat > /home/checker/capture.txt