উত্তর:
আপনার যদি এক মাসের চেয়ে বেশি ইতিহাসে ফিরে যেতে হয় তবে আপনি কমান্ডটি /var/log/wtmp.1
দিয়ে ফাইলটি পড়তে পারেন last
।
last -f wtmp.1 john
ব্যবহারকারীর জন্য লগইনগুলির পূর্ববর্তী মাসের ইতিহাসটি প্রদর্শন করবে john
।
শেষ লগ আউটপুট পার্স করা খুব ভারী এবং তুলনামূলক সহজ নয়, তাই আমি নির্দিষ্ট তারিখের প্যাটার্নটি সন্ধান করতে সম্ভবত আউটপুটটি গ্রেপ করতে পাইপ করব।
last john | grep -E 'Aug (2[0-9]|30) '
20-30 আগস্ট দেখানোর জন্য। বা এর মতো কিছু:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
ব্যবহারকারীর জন্য 10-30 জুলাই অর্জন করতে john
।
কীভাবে লিনাক্সে নির্দিষ্ট তারিখের জন্য লগইন ইতিহাস নিষ্কাশন করবেন?
25 থেকে 28 / আগস্ট পর্যন্ত সমস্ত ব্যবহারকারীদের লগইন করার একটি উদাহরণ:
last | while read line
do
date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
[[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
awk '{ print $5" "$6" "$7 }'
last
আউটপুট থেকে সংশ্লিষ্ট কলামে তারিখের সময় বের করতে+%s
ডেটটাইমকে যুগের সময় রূপান্তর করতে-ge
এর চেয়ে বড় বা সমান হয়ে দাঁড়ান-le
কম বা সমান জন্য দাঁড়ানোআপনি নির্দিষ্ট ব্যবহারকারীর সাথে এটি করতেও পারেন last <username>
।
last
আউটপুটটি বেশ পঠনযোগ্য বলে গ্রেপ কি ক্লিনার হবে না ?
grep
"15 ই আগস্ট 09:00" থেকে "আগস্ট 25 21:00" তে পারেন?