লেজ-এফ বীপ করার কোনও উপায় আছে কি?


23

নতুন ডেটা এলে (ফাইলটিতে একটি নতুন লাইন যুক্ত করা হয়) তৈরি করার tail -Fবা lessবীপ করার কোনও উপায় আছে (টার্মিনালে ঘণ্টাটি বাজান)। অথবা লিনাক্স বা ম্যাক এ করার জন্য অন্য কোনও ইউনিক্স ইউটিলিটি রয়েছে।

উত্তর:


13

একটি ধারণা স্থানান্তর হ'ল আউটপুট tailমাধ্যমে পাইপ দেওয়া sedএবং বেল / নিউলাইন দিয়ে নতুন লাইনটি প্রতিস্থাপন করা।

আপনি যদি tailএকটি এক্স-উইন্ডোর মধ্যে ব্যবহার করেন তবে সম্ভবত একটি সহজ সমাধান রয়েছে । উইন্ডোর সামগ্রী পরিবর্তিত হলে (ফ্লিকার, বেল, যাই হোক না কেন) আপনি সেখানে একটি ক্রিয়া সম্পাদন করতে পারেন।


4
নিউলাইনটি প্রতিস্থাপন করবেন না, লাইনের শেষে যুক্ত করুন।
কেভিন

@ নীল, এই sedআইডিয়া উজ্জ্বল তবে এটিকে কাজ করার জন্য আমি যথেষ্ট ' সেড ' জানি না, দেখে মনে হচ্ছে যে আমি রেজিস্টেপ্টে নিয়মিতভাবে নিউলাইনগুলি ক্যাপচার করতে পারি না (যা আমি অভ্যস্ত), আমার ধারণা আমার সেড বলতে হবে আগত স্ট্রিম লাইনের দ্বারা রেখার দ্বারা ব্যাখ্যা করবেন না।
আলী

5
@ অলি আসলে, সেড লাইনে এক এক করে কাজ করে এবং আপনি সরাসরি নতুন লাইনগুলি দেখতে পাবেন না। প্রতিটি লাইনের শেষে sed -e $'s/$/\a/'একটি $'\a'(ksh / bash / zsh সিনট্যাক্সে বেল চরিত্র) যুক্ত করে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

ধন্যবাদ @ গিলিস, মনোযোগের মতো কাজ করেছেন (ম্যাকের উপরেও)! sedরেজেক্সট আমার নিষ্পাপ চোখের কাছে কিছুটা বিশ্রী।
আলী

1
@ গিলস: লক্ষ করুন যে $'...'বাক্য গঠনটি সর্বজনীন নয়। উদাহরণস্বরূপ, [t] csh এটি সমর্থন করে না।
কিথ থম্পসন

13

আপনি যদি জিএনইউ ব্যবহার করেন screen, আপনি এটিটি লেজের সাথে উইন্ডোটি "দেখার" জন্য সেট করতে পারেন এবং এটি আপনাকে আপনার স্ট্যাটাস বারে বা আপনার টার্মক্যাপের সংজ্ঞায়িত বেল দ্বারা সতর্ক করবে যে সেই উইন্ডোটিতে নতুন আউটপুট রয়েছে।

http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor


সম্পাদনা: কেবল ম্যাক ওএস এক্স উল্লেখ করার পরে এটি কেবল যুক্ত করতে হয়েছিল

কেবল মজাদার জন্য, আপনি যদি বিশেষ কোনও কিছু সন্ধান করতে থাকেন তবে sayআপনি যে ফাইলটি দেখছেন তা পড়তে আপনি ম্যাক ওএস এক্স এর আদেশটি ব্যবহার করতে পারেন । শুধু পেতে logtail, হুকুম থেকে:

http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/

এবং এটি কোনও স্ক্রিপ্টে ব্যবহার করুন:

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say ding
        echo "$output" && say ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done

ধন্যবাদ @ টিম,, screenশো এবং সতর্কতা (আমি অনুমান করি যে আমি এটিরও ঘণ্টা বাজতে পারি) কেবলমাত্র একবার। ঘটে যাওয়া প্রতিটি নতুন ইভেন্টের জন্য নয় (উপলব্ধ প্রতিটি নতুন লাইনের জন্য নয়)
আলী

1
আমি ম্যাকের জন্য একটি উদাহরণ যুক্ত করেছি যা আপনাকে ফাইলটি পড়তে পারে। আপনি লগটেলের লিনাক্স সংস্করণ ইনস্টল করে এবং beepপরিবর্তে কমান্ডটি ব্যবহার করে লিনাক্সের জন্য এটি পরিবর্তন করতে পারেন say
টিম কেনেডি

শান্ত! এটি সৃজনশীল, যদিও আমার ক্ষেত্রে আমি স্ক্রিনের দিকে না তাকিয়ে কোনও লগ ফাইল নিরীক্ষণ করতে সক্ষম হতে বীপটি ব্যবহার করছি। এবং প্রকৃত বীপ একটি ভয়েস চেয়ে ভাল হতে পারে।
আলী

1
এটি করার জন্য পর্দার আদেশও ব্যবহার করতে পারে exec। ম্যানপেজের উদাহরণটি !:sed -n s/.*Error.*/\007/pহ'ল যে উইন্ডোটিতে প্রতিবার "ত্রুটি" প্রদর্শিত হবে একটি ঘণ্টা প্রেরণ করবে।
আর্জেজ

একই জিনিস টিমাক্সের ক্ষেত্রে প্রযোজ্য।
0xC0000022L

10

আপনি মাল্টিটেল ব্যবহার করতে পারেন । এটি একটি বর্ধিত লেজ যা নিয়মিত প্রকাশের ম্যাচে কমান্ড কার্যকর করতে সহায়তা করে।

উদাহরণস্বরূপ নীচের কমান্ডটি একটি শব্দ বাজায় এবং প্রতিবার কোনও মার্টিন উত্স প্যাকেট লগ করলে একটি এক্সমিসেজ উইন্ডো খুলবে ।

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages

4

ঠিক রেকর্ডের জন্য, যেমন @ নীল পরামর্শ দিয়েছে আমি প্রতিটি লাইনে sedএকটি যুক্ত bellকরতে ব্যবহার করছি ।

sed@Gilles দ্বারা উপলব্ধ লাইন

sed -e $'s/$/\a/' 

আমার ম্যাকের সাথে কাজ করে (আমি আমার টার্মিনাল \ পছন্দসমূহ \ অগ্রণীতে "শ্রুতিমধুর বেল" এবং "ভিজ্যুয়াল বেল" সক্ষম করেছি)।


লক্ষণীয় বিষয় হ'ল $'...'এস্কেপ সিকোয়েন্সগুলি কেবল বাশ-একটি জিনিস।
এম্পেটাম্যাচাইন

@ এমফেটামাচিন ধন্যবাদ, আমি নিজেও একজন ব্যাশ ব্যবহারকারী হয়ে থাকাকালীন, আপনি বা অন্যরা অন্যান্য সংস্করণেও কাজ করতে পারে এমন সংস্করণ যুক্ত করতে পারলে ভাল লাগবে।
আলী

আমিও একজন ব্যাশ ব্যবহারকারী, তবে আমি আস্তে আস্তে শিখছি কী হবে এবং অন্যান্য শেলগুলিতে কী কাজ করবে না।
অ্যাম্ফেটাম্যাচিন

1

এই পৃষ্ঠাটি খুঁজে পাওয়া অন্য যে কোনও ব্যক্তির জন্য, আমি tcsh ব্যবহার করছি এবং এটি কাজ করে বলে মনে হচ্ছে:

tail -f changingfile | sed -e 's/.*/& \a/'

আমাকে সিড সিনট্যাক্স মানে কি জিজ্ঞাসা করবেন না ...


1
আমি নিজেকে সাহায্য করতে পারি না, আমাকে জিজ্ঞাসা করতে হবে, আপনি কি অভিব্যক্তির ব্যাখ্যাটি ব্যাখ্যা করতে পারেন?
আশ্বানি আগরওয়াল

0

আপনি চেষ্টা করতে পারেন konsoleযা কোনও প্রদত্ত ট্যাবে নতুন ক্রিয়াকলাপ (বা নীরবতা) সম্পর্কে সতর্কতা দেয়।


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