টার্মিনাল সেশনে আমি কীভাবে সমস্ত ইনপুট এবং আউটপুট লগ করব?


46

টার্মিনালের মাধ্যমে করা সমস্ত কাজের লগ আমি কীভাবে রাখব? উদাহরণস্বরূপ, আমি টার্মিনালের মাধ্যমে ডাটাবেসে সমস্ত কাজকর্মের রেকর্ড চাই।


এটি sudo মধ্যে নির্মিত হয়।
উইলহেম ইরেসমাস

আমি আমার উত্তর যুক্ত করেছি যা আপনি পর্যালোচনা করতে পারেন
মনসুর আলী

উত্তর:


66

আপনি যখন লগ ফাইল রেকর্ডিং শুরু করতে প্রস্তুত হন, টাইপ করুন:

script screen.log

এখন, আপনি স্ক্রিপ্টটি থামানোর আগ পর্যন্ত টার্মিনালের সমস্ত ইনপুট এবং আউটপুট স্ক্রিন.লগে সংরক্ষণ করা হবে। আপনার হয়ে গেলে, কেবল টাইপ করুন:

exit

আপনার স্ক্রিন.লগ ফাইল স্থানীয় ডিরেক্টরিতে সঞ্চয় করা হবে। আপনি যদি এটি পুনর্নির্দেশ করতে চান তবে একটি নিখুঁত পথের নাম ব্যবহার করুন ~/screen.log। এটি আপনি যা খুঁজছেন ঠিক তা করবে।

উত্স: উবুন্টু গাইড - টার্মিনাল কমান্ডগুলি লগ কিভাবে করবেন


হাই, উত্তর দেওয়ার জন্য ধন্যবাদ। তবে আমি যদি নিম্নলিখিত ক্রমিকটি ব্যবহার করে শেল থেকে মাইএসকিএল ডাটাবেসে লগইন করি তবে এই কাজ করবে: - ১) স্ক্রিপ্ট স্ক্রিন.লগ 2) মাইএসকিএল-ইউ <ইউজার> -পি <ডাটাবেস> 3) ডাটাবেসে 4) কিছু প্রস্থান; আমি দেখতে পাচ্ছি যে ফাইলটি স্ক্রিন.লগ তৈরি হয়েছে তবে এতে ডাটাবেসের লগ নেই। আমি ফাইলটি asap ভাগ করব। ধন্যবাদ
অঙ্কিত

2
এটি "স্ট্যান্ডার্ড ইনপুট" (সাধারণত আপনার কীবোর্ড) থেকে পাঠানোর এবং স্ট্যান্ডার্ড আউটপুট (সাধারণত আপনার টার্মিনাল উইন্ডো) থেকে লেখার সাথে কাজ করা উচিত। সুতরাং এটিতে মাইএসকিএল কমান্ড-লাইন ক্লায়েন্ট অন্তর্ভুক্ত করা উচিত। ম্যান পেজ ( man script) এমনকি vi(সম্পাদক) উল্লেখ করেছে ...
ইজজি

10

আপনি Asciinema চেষ্টা করতে পারেন । কেবল একটি রেকর্ডিং তৈরি করার পাশাপাশি আপনি এটি ভাগ করে নেওয়ার এবং আপনার ব্লগ, নিবন্ধে বা একটি সম্মেলনের আলোচনায় প্লেয়ারকে এম্বেড করার ক্ষমতা পাবেন।


6

প্রতিটি শেল কমান্ড লগ করার জন্য আমার সিসলগ ব্যবহার করার আরও ভাল উপায় আছে এটি লিনাক্স বিতরণে ভিন্ন হতে পারে তবে পদ্ধতি একই থাকবে

আপনার কয়েকটি পদক্ষেপ অনুসরণ করতে হবে:

পদক্ষেপ # 1 (সিসলগ পরিষেবা তৈরি করুন)

# vim /etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

পদক্ষেপ # 2 (বাশার্ক খুলুন এবং নীচে কমান্ড লিখুন)

# vim /root/.bashrc

# Enable CLI Logging by Mansur 08-12-2016 
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

স্টে # 3 (সিস্লগ পরিষেবা পুনরায় চালু করুন)

# /etc/init.d/rsyslog

এখানে একটি লগ নমুনা:

ডিসেম্বর 7 22:13:00 বৈধতা বিডি 2 মহাসান: মূল @ এক্সপোর্ট [13291]: লেজ -f /var/log/mysql/mysql.log [0]
ডিসেম্বর 7 22:13:09 বৈধতা বিডি 2 মাহসান: মূল @ রফতানি [13291]: এলএস -এলএইচ [0]
ডিসেম্বর 7 22:13:27 বৈধতা বিডি 2 মাহসান: রুট @ এক্সপোর্ট [13291]: টাচ টেস্ট কমান্ড [0]

কৌতুকপূর্ণ কৌশল!
টম এইচ

হাই মনসুর, আপনি দয়া করে ব্যাখ্যা করতে পারেন আপনি এই আদেশগুলি দিয়ে কী করছেন, এটি বোঝা মুশকিল, কমপক্ষে আমার কাছে।
জেসার 11

পদক্ষেপ 1-এ আমি কমান্ড লগিংয়ের জন্য একটি পরিষেবা নামকরণ করছি যা প্রক্রিয়া দ্বারা এটিতে লগ প্রেরণের জন্য ব্যবহৃত হবে "স্থানীয় 6" লগিংয়ের জন্য পরিষেবার জন্য শেষ পয়েন্ট হবে দ্বিতীয় ধাপে আমি আসলে জিনিসগুলি সেট করছি যা "PROMPT_COMMAND = 'RETRN_VAL = $? " এই অংশটি ব্যবহারকারীর ইনপুটটি রেকর্ড করবে এবং "লগার-পি লোকাল 6.debug" এটি লগ ফাইলটিকে পরিষেবাতে প্রেরণ করবে যা সাহায্যের সিসলোগ প্রক্রিয়া সহ লগের ডেটা রেকর্ড করে
মনসুর আলী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.