Могу ли я подключиться к http-ресурсу?
Есть ли способ привязать ресурс, такой как http://someserver.com/logs/server.log?
Это то, что я бы сделал для локального файла.
tail -F /var/logs/somefile.log
Я хотел бы что-то похожее на файл для доступа по протоколу http
3 ответа
Я написал простой сценарий bash для получения содержимого URL каждые 2 секунды и сравнения с локальным файлом
output.txt
затем добавьте разницу в тот же файл
Я хотел транслировать журналы расширения AWS в моем конвейере Jenkins
while true; do comm -13 --output-delimiter="" <(cat output.txt) <(curl -s "$URL") >> output.txt; sleep 2; done
не забудьте создать пустой файл
output.txt
файл сначала
: > output.txt
просмотреть трансляцию:
tail -f output.txt
Лучшее решение:
Я нашел лучшее решение, используя wget здесь:
while true; do wget -ca -o /dev/null -O output.txt "$URL"; sleep 2; done
/questions/588093/kak-vklyuchit-vse-metodyi-http-na-http-servere-apache/588110#588110
Это сделает это:
#!/bin/bash
file=$(mktemp)
trap 'rm $file' EXIT
(while true; do
# shellcheck disable=SC2094
curl --fail -r "$(stat -c %s "$file")"- "$1" >> "$file"
done) &
pid=$!
trap 'kill $pid; rm $file' EXIT
tail -f "$file"
Это не очень дружелюбно на веб-сервере. Вы могли бы заменить true
с sleep 1
быть менее ресурсоемким.
подобно tail -f
, вам нужно ^C
когда вы закончите смотреть вывод, даже когда вывод сделан.
Я пытаюсь htail
( https://github.com/vpelletier/htail) и, похоже, справляется со своей задачей довольно хорошо.
Вы можете использовать скрипт из https://stackoverflow.com/a/1102346/401005 если вы можете запускать скрипты php. Вы должны добавить flush();
после echo
,
Когда используешь curl --no-buffer http://the/url
у вас должен быть подходящий выход
Если вы хотите тип программы дозорного, как мне нужно (обновлять только когда вы отвечаете)
#!/bin/bash
while true; do
echo "y to curl, n to quit"
read -rsn1 input
if [ "$input" = "y" ]; then
curl $1
elif [ "$input" = "n" ]; then
break
fi
done
Тогда беги curlTail.sh http://wherever
Ты получишь
18:02:44] $: ~ \> curlTail.sh http://wherever
y to curl, n to quit
Когда вы нажмете "у", он свернется, а затем снова предложит вам.