هل تريد مراقبة ملفات سجل متعددة في وقت واحد (عبر ssh) على نظام التشغيل Windows؟

StackOverflow https://stackoverflow.com/questions/106668

سؤال

لقد استخدمت poderosa (تطبيق طرفي .NET) لمراقبة السجلات على خوادم Linux/solaris المتعددة.لا تتم صيانة هذا التطبيق حاليًا وقد واجهت العديد من المشكلات معه.

أتساءل عما يفعله المستخدمون الآخرون لمراقبة عدة سجلات في الوقت الفعلي (كما هو الحال في ملف السجل tail -f).أود أن أكون قادرًا على تبويب/تتالي عدة ذيول ssh.

شكرًا لك

هل كانت مفيدة؟

المحلول

يمكنك استخدام مدير اتصال المعجون لإضافة علامات تبويب إلى PuTTy.ثم أدخل SSH في الجهاز مرتين ثم قم بالتبديل ذهابًا وإيابًا.

البرنامج التعليمي حول إعداده

نصائح أخرى

يمكنك فقط استخدام ssh لخادم واحد واستخدامه mutitail من هناك لتتبع السجلات الموجودة على جميع الخوادم الأخرى.

SSH إلى أحد الخوادم، قم بتشغيل الشاشة عليه.يمكنك بعد ذلك تقسيم الشاشة إلى نوافذ متعددة، وكل واحدة منها تقوم بذلك

ssh serverX tail -f /path/to/log/file

الميزة العرضية لهذه الطريقة هي أنك لا تحتاج إلى إعادة تشغيل الأطراف في كل مرة تقوم فيها بالاتصال - بدلاً من ذلك، يمكنك فقط إعادة الاتصال بجلسة الشاشة قيد التشغيل.

من باش يمكنك (حفظ في ~/.bashrc أو شيء ما):

function create-follower () {
    local _NAME=$1;
    local _USER=$2;
    local _HOST=$3;
    local _PATH=$4;

    if ! [ "${_NAME}" ]\
    || ! [ "${_USER}" ]\
    || ! [ "${_HOST}" ]\
    || ! [ "${_PATH}" ] ; then
        {   echo "Cannot create log follower." ;
            echo;
            echo "Usage: create-follower NAME USER HOST LOG-FILE";
        } >&2;
        return 1 ;
    fi ;

    eval "function ${_NAME}(){ ssh ${_USER}@${_HOST} tail -f \"${_PATH}\" & }"
}

function activate-followers () {
    if (( $# < 1 )) ; then
        {   echo "You must specify at least one follower to use" ;
            echo ;
            echo "Usage:" ;
            echo "    activate-followers follower1 [follower2 ... followerN]";
        } >&2;
        return 1 ;
    fi ;

    for FOLLOW in "${@}" ; do
        ${FOLLOW} ;
    done ;

    wait;
}

function stop-followers () {
    if [ "$(jobs)" ] ; then
        kill -9 $(jobs | perl -pe 's/\[([0-9]+)\].*/%$1/') ;
    fi ;
}

ومن ثم من الصدفة الخاصة بك، حدد السجلات التي تريد متابعتها:

[dsm@localhost:~]$ create-follower test1 user1 localhost /tmp/log-1.txt
[dsm@localhost:~]$ create-follower test2 user2 otherhost /tmp/log-2.txt
[dsm@localhost:~]$ create-follower test2 user3 remotebox /tmp/log-3.txt

الآن قم بتفعيل المتابعين:

[dsm@localhost:~]$ activate-followers test1 test2 test3

للخروج من استخدام الوظيفة CTRL+C, ولإيقاف العمليات في الخلفية استخدم:

[dsm@localhost:~]$ stop-followers

ملاحظة 1:يفترض هذا أنه تم إعداد مصادقة المفتاح العام لصناديقك.

ملاحظة 2:سيتعين عليك إنهاء كافة المهام التي تم تركها قيد التشغيل بعد إنهاء وظيفة تنشيط المتابعين.قد ترغب في القيام بذلك يدويًا لأن الوظيفة المتوفرة تقوم بقتل القوة الغاشمة على جميع المهام ذات الخلفية

ملاحظة 3:يفترض هذا وجود بيئة عمل تشبه يونكس، والتي يمكنك الحصول عليها عن طريق تثبيت cygwin

من يقول أنك لا تستطيع أن تفعل اللثغة في Shellscript ؛-)

يمكنك الخروج في السجل الجانبي.

أداة Java قمت بإنشائها، قادرة على قراءة ملفات السجل المحلية والبعيدة باستخدام SSH.إنه سهل الاستخدام إلى حد ما.

بعض التوضيحات الأخرى: https://github.com/pschweitz/insidelog/wiki

ما عليك سوى تنزيل الإصدار المتوافق مع نظام التشغيل لديك، أو إصدار jar الأصلي القابل للتنفيذ ضمن Java Runtime (يتطلب Java 8_40 أو أعلى):

https://github.com/pschweitz/insidelog/releases

يمكنك العثور على وثائق كاملة (مضمنة في صفحة Github وفيها أيضًا)

خياران يتبادران إلى ذهني أولاً.

اختر تطبيق SSH المفضل لديك (Putty، ssh in cygwin، إلخ) وقم بتسجيل الدخول إلى الجهاز.
1.SSH لكل سجل (يتم فتح الكثير من النوافذ على جهازك أو علامات التبويب اعتمادًا على تطبيقك)
2.SSH مرة واحدة واستخدامها شاشة.

إذا كنت بحاجة بالفعل إلى رؤية كلا السجلين في نفس الوقت، وكانت علامات التبويب غير واردة، فيمكنك تثبيت برنامج نصي Perl يسمى LogResolveMerge.pl.سيتم دمج سجلين معًا، وتفريغ الإخراج إلى STDOUT.ومع ذلك، سيكون الأمر كثيف الاستخدام للموارد، وإذا كانت نيتك هي تتبع السجلات، فمن المحتمل ألا تكون فعالة للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top