Мне нужно прочитать удаленный файл с журналами с удаленного хоста через SSH. Как это сделать, если у меня есть ssh-доступ к папке журналов?
Зачем делать что-то сложное? Следующее должно работать нормально ..
ssh server "cat /path/to/file"
Если вы хотите пейджинг ..
ssh server "cat /path/to/file" |less
Я использую:
ssh -t user@host "less ~/path/to/log.file"
В -t
заставляет ssh выделить терминал, который позволяет вам взаимодействовать с less
как если бы он выполнялся локально, включая поиск / прокрутку / отслеживание, и все это без потоковой передачи всего удаленного файла на локальный компьютер.
Большинство удобный Я бы сказал sshfs.
Vi, nano, less и т. Д.
Я думаю, вам определенно следует использовать программу на удаленном хосте и открывать файл там, вместо того, чтобы загружать файл и открывать его на стороне клиента / вашей стороне.
Насколько я знаю инструменты редактирования / чтения Linux, такие как vi или less, читают файл построчно, поэтому вам не нужно открывать весь файл журнала, вы просто открываете части и передаете их через ssh как ты читаешь. В других операционных системах есть похожие программы, но я не могу вспомнить ни одного названия.
Однако я не знаю, есть ли способ загрузить файл по частям в клиентское средство чтения по SSH.
Следуя рекомендациям Warner, но учитывая тот факт, что файлы журналов могут быть довольно большими:
ssh server "tail -n 300 /path/to/log" | less
Выдаст вам последние 300 строк, а не весь файл журнала.