টেল সার্ভার এক্সএমপিতে লগ হয়?


8

সুতরাং আমার কাছে দুটি ফাইল রয়েছে এবং যদি এই ফাইলগুলির যে কোনও একটিতে একটি নতুন লাইন উপস্থিত হয়, আমি সেই লাইনের বিষয়বস্তু সম্বলিত একটি আইএম (পছন্দমত জ্যাবার বা জিটাল্ক) পেতে চাই। আপনারা কি লিনাক্স ডেমন বা এটি করতে পারে এমন কোনও কিছুর জন্য কোনও পরামর্শ আছে?

উত্তর:


14

আপনি যদি ট্রিট সিস্লোগ লগইন করছেন, যখনই কোনও মানদণ্ডের সাথে মিলিত কোনও বার্তা লগ হয়ে যায় মেটালগের একটি কমান্ড কার্যকর করার পক্ষে সমর্থন রয়েছে। অন্যথায়, আপনি tailfলগ ফাইলে নতুন লাইনের জন্য দেখতে ব্যবহার করতে পারেন ।

sendxmpp একটি ছোট Perl স্ক্রিপ্ট (যেমন আপনার প্রিয় বিতরণের জন্য সম্ভবত ইতিমধ্যে একটি প্যাকেজ হিসাবে উপলব্ধ) XMPP বার্তা পাঠাতে হয়

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

#!/bin/sh
echo $* |sendxmpp your-xmpp-id@gmail.com

এবং command = /path/to/script.shmetolog.conf সম্পর্কিত বিভাগে যুক্ত করুন

লেজ ক্ষেত্রে, আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন, অবিচ্ছিন্ন উপায়ে চালান:

tailf /var/log/file-to-watch.log |(while true; do read M; echo $M | sendxmpp recipient@gmail.com; done)

সেন্ডএক্সএমপিকে একটি বৈধ এক্সএমপিপি অ্যাকাউন্ট প্রয়োজন, অ্যাকাউন্টটি কীভাবে ব্যবহার করতে হবে তা কনফিগার করতে ম্যান পৃষ্ঠাটি দেখুন।

(আমার অভিজ্ঞতা থেকে, এক্সএমপিপি-বিতরণ ত্রুটি বার্তাগুলি যদি খুব ঘন ঘন হয়ে থাকে তবে তারা বেশ বিরক্তিকর হয়ে থাকে ...)


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

পার্শ্ব নোট: সমস্যার ক্ষেত্রে, আপনার পাইপের বাফারিং আচরণটি পরীক্ষা করুন! (আপনি যদি নিযুক্ত হন, বার্তাগুলি প্রদর্শিত হওয়ার জন্য grepআপনাকে সম্ভবত --line-bufferedপ্রসারণ যোগ করতে হবে)) বার্তা কেন স্পষ্টভাবে প্রকাশিত হয়েছে বা মোটেও না কেন তা জানার জন্য আমি খুব ভাল সময় ব্যয় করেছি।
কেউ কিছু

2

আমি সেই অল্প অজগর লিপি তৈরি করেছি। আপনি এটি একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করতে পারেন

import xmpp, os, time

login     = 'Your.Login' # @gmail.com
pwd       = 'YourPassword'
recipient = 'YourFriend@gmail.com'
logfile   = "/home/myself/test.log"

def sendmsg(text):
  global login, pwd, recipient
  cnx = xmpp.Client('gmail.com')
  cnx.connect( server=('talk.google.com',5223) )
  cnx.auth(login,pwd, 'botty')
  cnx.send( xmpp.Message( recipient , text ) )

oldsize = newsize = os.path.getsize(logfile)
while True:
  newsize = os.path.getsize(logfile)
  if newsize != oldsize:
    f = open(logfile)
    f.seek(oldsize, os.SEEK_SET)
    s = f.read()
    if s[-1] == '\n':
      sendmsg(s)
      oldsize = f.tell()
    f.close()
  time.sleep(10)

আমি গুগল টকের সাথে এক্সএমপিপি সংযোগের জন্য সেই পৃষ্ঠাতে তথ্য ব্যবহার করেছি ।


এর জন্য কি কোনও পাইথন নির্ভরতা প্রয়োজন বা এক্সএমপিপি বেসের সাথে অন্তর্ভুক্ত?
টম

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