Я хочу отслеживать файл журнала моего приложения, который, однако, работает не локально, а на платформе SaaS и доступен через HTTP и WebDAV. Таким образом, эквивалент tail -f, который работает для URL-адресов, отлично подходит для меня.
PS Если вам известны какие-либо другие инструменты, которые могут отслеживать удаленные файлы через HTTP, это также может помочь. Спасибо
wget -N http://somewhere/something
этот файл для загрузки, только если он новее, чем тот, который вы загружали ранее, или использоватьwget -O - http://somewhere/something
для перенаправления файла на стандартный вывод.Ответы:
Для этого может быть специальный инструмент, но вы также можете сделать это с помощью wget. Откройте терминал и выполните эту команду:
Это будет загружать файл журнала каждые две секунды и сохранять его для
log.txt
добавления вывода к тому, что уже есть (-c
означает продолжить загрузку и-a
означает добавить вывод к указанному имени файла).-o
Перенаправляет сообщения об ошибках/dev/null/
.Итак, теперь у вас есть локальная копия log.txt и вы можете запустить
tail -f
ее:источник
tail -f
это не обновляет изменения файла, если не существует какого-то другого процесса, активно запрашивающего у сервера обновления каталога (простойls
кажется достаточно). Проблема заключаетсяtail -f
в использовании inotify, а inotify, похоже, не работает над davfs2.tail
не зависит от inotify. Он просто читает файл, ищет обратно и снова читает. Если он не работает с davfs, все будет зависеть от того, как работает сам davfs. Предположительно, он обновляет информацию только тогда, когда что-то активно читает каталог и, посколькуtail
файл остается открытым, это не вызывает его. Или что-то вдоль этих линий.Я ответил на тот же вопрос здесь полным сценарием оболочки, который принимает URL в качестве аргумента и
tail -f
все. Вот копия этого ответа дословно:Это сделает это:
Это не очень дружелюбно на веб-сервере. Вы могли бы заменить
true
сsleep 1
менее ресурсоемким.Мол
tail -f
, вам нужно,^C
когда вы закончите смотреть вывод, даже когда вывод сделан.источник
Для достижения этого можно использовать локон с опцией диапазона в сочетании с часами:
Например
Это будет извлекать последние 2000 байтов журнала каждые 30 секунд.
Примечание: для самозаверяющего https используйте опцию --insecure curl
источник