URL এর জন্য লেজ -f সমতুল্য


10

আমি আমার অ্যাপ্লিকেশনটির লগ ফাইলটি পর্যবেক্ষণ করতে চাই যা স্থানীয়ভাবে তবে একটি সাআস প্ল্যাটফর্মে কাজ করে না এবং এইচটিটিপি এবং ওয়েবডিএভিতে প্রকাশিত হয়েছে। সুতরাং, ইউআরএলগুলির জন্য কাজ করে এমন লেজ -f এর সমতুল্য আমার জন্য দুর্দান্ত কাজ করবে।

পিএস যদি আপনি এইচটিটিপি-র মাধ্যমে রিমোট ফাইলগুলি নিরীক্ষণ করতে পারে এমন কোনও সরঞ্জামের কথা জানেন তবে এটি সাহায্যও করতে পারে। ধন্যবাদ


1
এটি কি রিমোট সার্ভারে সরল পাঠ্য বা এইচটিএমএল হিসাবে প্রদর্শিত হবে?
টেরডন

নির্দিষ্ট বিন্যাস সঙ্গে সাধারণ পাঠ: [টাইমস্ট্যাম্প] ERROR_NAME ..... কোনটি আমি তখন, grep মাধ্যমে ফিল্টার অভিপ্রায়
মুখ না খুলিয়া চিবানো

আপনি ব্যবহার করতে পারেন wget -N http://somewhere/something, এটি কেবল তখনই ডাউনলোড করা হবে যদি আপনি আগে ডাউনলোড করেছেন এমন ফাইলের চেয়ে নতুন বা wget -O - http://somewhere/somethingস্টাডআউটে ফাইলটি পুনর্নির্দেশ করতে ব্যবহার করেন।
সপ্তাহে

উত্তর:


11

এটির জন্য একটি নির্দিষ্ট সরঞ্জাম থাকতে পারে তবে আপনি এটি উইজেট ব্যবহার করেও করতে পারেন। একটি টার্মিনাল খুলুন এবং এই আদেশটি চালান:

while(1); do \
    sleep 2; \
    wget -ca -O log.txt -o /dev/null http://yoursite.com/log; \
done

এটি প্রতি দুই সেকেন্ডে লগফাইলটি ডাউনলোড করবে এবং এটি log.txtইতিমধ্যে যা রয়েছে তার আউটপুট সংযোজনে সংরক্ষণ করবে ( -cযার অর্থ ডাউনলোড করা চালিয়ে যাওয়া এবং এর -aঅর্থ প্রদত্ত ফাইলের নামের সাথে আউটপুট সংযোজন করা)। -oত্রুটির বার্তা পুননির্দেশনা /dev/null/

সুতরাং, এখন আপনার কাছে log.txt এর একটি স্থানীয় অনুলিপি রয়েছে এবং tail -fএটিতে চালানো যেতে পারে:

tail -f log.txt 

আমি খুঁজে পেয়েছি যে আমি ওয়েবডিএভি ইন্টারফেসের সাথে সংহত করতে davfs2 ব্যবহার করতে পারি এবং তারপরে নিয়মিত ফাইলের মতো ফাইলটি ব্যবহার করতে পারি। আমি সত্যিই এটি প্রত্যাশা করেছিলাম। কিন্তু আপনার সমাধান আরো সহজ এবং আসলে কাজ করে
মুখ না খুলিয়া চিবানো

আমি দেখতে পেয়েছি যে সমস্ত কিছু "লগ" ফাইলে "লগ.টেক্সট" নয় সংরক্ষণ করা হচ্ছে। Wget হয় -ca -O log.txt -o, / dev / নাল: আমার ক্ষেত্রে এই কাজে yoursite.com/log
yatsek

@ মিঁচা ডেভফএস 2 এটি ভালভাবে কাজ করে না। আমার ক্ষেত্রে আমি দেখতে পেয়েছি যে tail -fঅন্য কোনও প্রক্রিয়া সক্রিয়ভাবে ডিরেক্টরি আপডেটের জন্য সার্ভারকে জিজ্ঞাসা না করা ব্যতীত ফাইলের পরিবর্তনগুলি আপডেট করে না (একটি সমতল lsযথেষ্ট বলে মনে হচ্ছে)। সমস্যাটি tail -fইনোটিফাইয়ের উপর নির্ভর করে এবং ইনোটিফাই ডেভফএস 2 এর উপর কাজ করে না বলে মনে হয়।
jesjimher

@ জেসজিহির tailইনোটিফাইয়ের উপর নির্ভর করে না। এটি কেবল ফাইলটি পড়ে, পিছনে সন্ধান করে এবং আবার পড়তে পারে। যদি এটি ডেভসগুলির সাথে ভালভাবে কাজ না করে তবে ড্যাভস নিজেই কীভাবে কাজ করে তা হ্রাস পাবে। সম্ভবতঃ, যখন কেবল কোনও কিছু সক্রিয়ভাবে ডিরেক্টরি পড়তে থাকে এবং যেহেতু tailফাইলটি উন্মুক্ত রাখে, এটি ট্রিগার করে না তখন এটি তথ্য আপডেট করে। বা এই লাইন বরাবর কিছু।
টেরডন

যতদূর আমি লেজের কোড বোঝে, এটি নির্ভরতা নয়, তবে এটি উপলব্ধ থাকলে অ্যানোটাইফাই ব্যবহার করে, যদি Inotify সিস্টেমে উপলব্ধ না হয় তবেই ভোটদানের আচরণের অবলম্বন করে। স্পষ্টত অনুরোধ না করে কখন ফাইল বদলেছে তা ডেভসরা জানতে পারে না, অন্য কোনও প্রক্রিয়া ডিরেক্টরি রিফ্রেশের অনুরোধ না করা পর্যন্ত কোনও ইনোটাইফাই ইভেন্ট উত্পন্ন হয় না। পুঙ্খানুপুঙ্খভাবে উপলভ্য থাকলেও, পুচ্ছের কাছে জোর করে জোর দেওয়ার কিছু উপায় থাকলে তা চমৎকার হবে, তবে আমি এই জাতীয় প্যারামিটারটি খুঁজে পাইনি।
jesjimher

3

আমি এখানে একই প্রশ্নের উত্তর একটি সম্পূর্ণ শেল স্ক্রিপ্ট দিয়ে দিয়েছি যা ইউআরএলটিকে তর্কের হিসাবে গ্রহণ করে এবং এটির মতোই tail -f। উত্তরটির ভারব্যাটিকমের একটি অনুলিপি এখানে দেওয়া হয়েছে:


এটি এটি করবে:

#!/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আউটপুটটি সম্পন্ন করার পরেও আউটপুট সম্পন্ন হওয়া দরকার।


0

এটি অর্জনের জন্য ঘড়ির সাথে সংমিশ্রণে রেঞ্জ বিকল্পের সাথে কার্ল ব্যবহার করা যেতে পারে:

রেঞ্জ

এইচটিটিপি ১.১ প্রবর্তিত বাইট-রেঞ্জ। এটি ব্যবহার করে, একটি ক্লায়েন্ট নির্দিষ্ট দস্তাবেজের কেবল এক বা একাধিক উপ-বিভাগ পাওয়ার জন্য অনুরোধ করতে পারে। কার্ল -আর পতাকা সহ এটি সমর্থন করে।

watch -n <interval> 'curl -s -r -<bytes> <url>'

উদাহরণ স্বরূপ

watch -n 30 'curl -s -r -2000 http://yoursite.com/log'

এটি প্রতি 30 সেকেন্ডে লগের শেষ 2000 বাইট পুনরুদ্ধার করবে।

দ্রষ্টব্য: স্ব স্বাক্ষরিত https ব্যবহারের জন্য - সুরক্ষিত কার্ল বিকল্পটি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.