অনলাইন ব্যবহারকারীদের দেখানোর জন্য শেল স্ক্রিপ্ট


2

আমি জানি এটি একটি অপেশাদার প্রশ্ন। আমাকে একটি বাশ শেল স্ক্রিপ্ট লিখতে হবে যা এসএসএইচ সার্ভারে এই মুহুর্তে কতজন ব্যবহারকারী অনলাইনে রয়েছেন তা গণনা করা উচিত। আমার একাধিক লগইন উপেক্ষা করে ব্যবহারকারীর নাম এবং তারা লগ ইন করা জায়গাটি দেখাতে হবে।

ধন্যবাদ।


শেল মানে লিনাক্স শেল? কোন লিনাক্স শেল? "সার্ভারে অনলাইন এটিএম", লোকেরা কীভাবে আপনার সার্ভারে লগ ইন করে (এসএসএস, টেলনেট, এফটিপি, ইত্যাদি)? এটি জিনিস পরিবর্তন করতে পারে।
নার্ডওয়ালার

লিনাক্স শেল, বাশ শেল, এসএসএইচ লগগুলি, আমি rWo দিয়ে চেষ্টা করেছি তবে এটি একাধিক লগইন দেখায়
প্যাট্রিক জেলেনা

1
আপনি যদি প্রতিটি লগইনের অবস্থানটি দেখানোতে আগ্রহী হন তবে সম্ভবত আপনাকে একাধিক লগইন উপেক্ষা করে পুনর্বিবেচনা করা প্রয়োজন; যদি আমি হোস্ট বি এবং হোস্ট সি উভয় থেকে এস হোস্টের মাধ্যমে সংযুক্ত হয়ে থাকি তবে আপনি প্রতিটি হোস্টের কাছ থেকে একবার দুবার আমাকে লগ ইন হিসাবে প্রদর্শিত করতে পারেন বা কিছু তথ্য ফেলে দিতে পারেন।
অ্যারন মিলার

হ্যাঁ, এটি সমস্ত হোস্টকে দেখায়, এজন্য আমাকে একাধিক লগইন উপেক্ষা করে প্রথম হোস্টটি দেখাতে হবে, সকলকেই নয়।
প্যাট্রিক জেলেনা

উত্তর:


1

এটি হোম ওয়ার্কের মতো গন্ধ তবে ওহ ভাল:

#!/bin/bash

users=$(users | xargs -n1 | sort -u)
for u in $users; do
    w -h | awk '{print $1 " " $3}' | grep -m1 $u
done

ব্যাখ্যা:

প্রথমে আমরা "ব্যবহারকারী" কমান্ডের সাহায্যে লগইন করা ব্যবহারকারীদের একটি তালিকা তৈরি করি এবং প্রতিটি লাইনে একটি (xargs -n) লাগিয়ে এবং নকলগুলি (বাছাই করা - ইউ) দিয়ে বাছাই করে নকলগুলি ফিল্টার আউট করি।

ডাব্লু -h সমস্ত লগইন করা ব্যবহারকারীর একটি তালিকা মুদ্রণ করে, আমরা পাইপ করি যে কেবল মাত্র কাঙ্ক্ষিত ক্ষেত্রগুলি (1 এবং 3) মুদ্রণের মাধ্যমে, গ্রেপের মাধ্যমে ফলাফলটি পাইপ করে আমরা প্রতিটি লুপের পুনরাবৃত্তির জন্য অনুসন্ধান করছি এমন ব্যবহারকারীকে সমস্ত ফিল্টার করার জন্য to -ম 1 প্রথম ম্যাচের পরে এটি থামার বিষয়টি নিশ্চিত করে, আপনি তার পরিবর্তে 'হেড -1' দিয়ে পাইপও করতে পারেন।


0

wকমান্ডটি ব্যবহার করুন , যা দেখায় কে লগ ইন হয়েছে এবং তারা কী করছে।

mike@magisterial $ w
 12:00:25 up 239 days, 22:40, 18 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
john    pts/1    xx.yy.74.10    09:29    1:34m  0.59s  0.02s sshd: john [priv]
jane    pts/3    xx.yy.74.10    09:44    2:05m  0.38s  0.01s sshd: jane [priv]
mike    pts/4    xx.yy.74.10    09:45    1:10m  0.21s  0.21s -bash

আপনার ক্ষেত্রে, কেবল এসএসএস লগইনগুলি ফিরতে গ্রেপ দিয়ে আউটপুট ফিল্টার করুন:

w | grep 'sshd:'

john    pts/1    xx.yy.74.10    09:29    1:34m  0.59s  0.02s sshd: john [priv]
jane    pts/3    xx.yy.74.10    09:44    2:05m  0.38s  0.01s sshd: jane [priv]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.