Archwiki спасает положение! Инициализация сессии на tmux странице дает пример.
Тем не менее вместо того, чтобы запустить tmux как tmux
, tmux new -s name
назовет сессию, когда она запустится вместо того, чтобы дать ему число.
У Вас может быть tmux, открытый сессия с предварительно загруженными окнами включением тех деталей в Вашем ~/.tmux.conf:
new -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command
Для запуска сессии с окнами с несколькими панелями (несколько областей) включайте команду splitw ниже neww, который требуется разделить; таким образом:
new -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1
selectp -t 0
открыл бы 2 окна, второе из которых назовут нечто/панелью и разделили бы вертикально в половине (50%) с нечто, работающим выше панели. Фокус был бы в окне 2 (нечто/панель), верхняя область (нечто).
Примечание: Нумеруя для сессий, окна и области запускаются в нуле, если Вы не указали базисный индекс 1 в Вашем .conf
Для управления несколькими сессиями источник разделяет файлы сессии из conf файла:
# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar
Необходимо добавить stdbuf(1)
в Ваш конвейер:
tail -f general.log | stdbuf -oL grep Some_word | tee -a todel.txt
Это установит grep
потоковый режим буферизации stdout для строки, иначе grep
ожидает для получения по крайней мере 4 096 байтов от потока (это - значение по умолчанию на Linux для буферизированного i/o).
С другой стороны, можно также звонить grep
с --line-buffered
:
tail -f general.log | grep --line-buffered Some_word | tee -a todel.txt
Посмотрите Выключают буферизацию в канале и http://www.pixelbeat.org/programming/stdio_buffering/ для подробно объяснений.
Третий должен хорошо работать, предполагая, что у Вас есть доступ для записи файлов в текущем каталоге.
Например: tail -f general.log | grep "Some_word" | tee todel.txt
Это правильно определяется синтаксис мишени. Если это не работает, Вы делаете что-то еще неправильно.
Кроме того, это - хорошая идея поместить Вашу строку поиска в кавычки. Если у Вас есть имя файла, соответствующее Вашей строке поиска в текущем рабочем каталоге, это можно считать аргументом файла вместо строки поиска.
tail -f ... |grep
позволяет тот grep поступление новых строк (-f
опция к tail
). AFAIK grep
не имеет такой опции.
– zhenech
18.11.2013, 09:34
tail -f...
и передайте его по каналу в grep | tee
оборудование, Вы закончили бы в точно сценарии вопроса: grep
ожидал бы более входа прежде, чем обработать его, в то время как tee
не получает ничего вообще. Конечно, если general.log
является достаточно большим, стандартный подход, не изменяя режим буфера вывода к с буфером строки работал бы, но только если Вы это больше, чем размер буфера. И затем необходимо было бы ожидать заполнения grep
буферизуйте снова. Посмотрите unix.stackexchange.com/a/102505/50954
– tkrennwa
25.11.2013, 14:50
grep "my words" > mytextfile.txt
tail -f access.log > last_log.txt
tail -f access.log | grep "IP address" > hacker.log
Это возможно строки, которые Вы ищете, отправляются в stderr вместо stdout, в этом случае заканчивая строку с 2>&1
должен решить проблему:
tail -f general.log | grep Some_word | tee -a todel.txt 2>&1
2>&1
просто мой рефлексивный ответ на этот тип вопроса.
– Matthew Cline
26.11.2013, 02:38
2>&1
на самом деле относится к tee
в этом случае.
– peterph
28.11.2013, 11:56