উত্তর:
কেবলমাত্র রুট সুবিধাপ্রাপ্ত প্রোগ্রামগুলি দয়া করে কোনও সিস্টেম বন্ধ করতে পারে। সুতরাং যখন কোনও সিস্টেম একটি সাধারণ উপায়ে বন্ধ হয়ে যায় তখন এটি হয় মূল অধিকার সহ ব্যবহারকারী বা এসপিআই স্ক্রিপ্ট। উভয় ক্ষেত্রেই আপনি লগগুলি পরীক্ষা করে জানতে পারেন। পাওয়ার বাটন প্রেস, ওভারহিটিং বা লো ব্যাটারি (ল্যাপটপ) দ্বারা একটি এসপিআই শাটডাউন হতে পারে। আমি তৃতীয় কারণটি ভুলে গেছি, ইউপিএস সফ্টওয়্যার যখন বিদ্যুৎ সরবরাহ ব্যর্থ হয়, যা যাইহোক একটি সতর্কতা প্রেরণ করবে।
সম্প্রতি আমার একটি সিস্টেম ছিল যা বারবার অনর্থকভাবে বিদ্যুৎ বন্ধ করতে শুরু করেছিল, দেখা গেছে যে এটি প্রচন্ড উত্তাপের সাথে জড়িত ছিল এবং মবোটি কেবলমাত্র বিদ্যুত বন্ধ করার জন্য কনফিগার করা হয়েছিল। সিস্টেমে লগগুলি সংরক্ষণের কোনও সুযোগ ছিল না, তবে ভাগ্যক্রমে সিস্টেমের তাপমাত্রা পর্যবেক্ষণ করে দেখা গেছে যে বিদ্যুত বন্ধ হওয়ার ঠিক আগে এটি বাড়তে শুরু করেছে।
সুতরাং এটি যদি সাধারণ শাটডাউন হয় তবে এটি লগ হবে, যদি এটি একটি অনুপ্রবেশ হয় ... শুভকামনা, এবং যদি এটি একটি শীতল শাটডাউন হয় তবে আপনার পরিবেশকে নিয়ন্ত্রণ এবং পর্যবেক্ষণ করার জন্য আপনার জানার সেরা সুযোগ।
নিম্নলিখিত কমান্ড ব্যবহার করে দেখুন:
শেষ রিবুট এন্ট্রিগুলির তালিকা প্রদর্শন করুন:
last reboot | less
শেষ শাটডাউন এন্ট্রিগুলির তালিকা প্রদর্শন করুন:
last -x | less
বা আরও স্পষ্টভাবে:
last -x | grep shutdown | less
কে এটি করেছে তা আপনি জানেন না। কে এটি করেছে তা যদি আপনি জানতে চান তবে আপনাকে কিছুটা কোড যুক্ত করতে হবে যার অর্থ আপনি পরের বার জানতে পারবেন।
আমি এই সংস্থানটি অনলাইনে খুঁজে পেয়েছি। এটি আপনার পক্ষে কার্যকর হতে পারে:
কে বা কীভাবে আমার সিস্টেমকে বাধা দিয়েছে তা কীভাবে সন্ধান করবেন
last -x shutdown
চেক করার জন্য কয়েকটি জিনিস রয়েছে:
এই কমান্ডটি চালান * এবং আউটপুটটিকে নীচের উদাহরণগুলির সাথে তুলনা করুন:
last -x | head | tac
একটি সাধারণ শাটডাউন এবং পাওয়ার-আপ এর মতো দেখায় (মনে রাখবেন আপনার একটি শাটডাউন ইভেন্ট রয়েছে এবং তারপরে একটি সিস্টেম বুট ইভেন্ট):
runlevel (to lvl 0) 2.6.32- Sat Mar 17 08:48 - 08:51 (00:02)
shutdown system down ... <-- first the system shuts down
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 3)
কিছু ক্ষেত্রে আপনি এটি দেখতে পাবেন (নোট করুন যে শাটডাউন সম্পর্কে কোনও লাইন নেই তবে সিস্টেমটি রানলেভেল 0-এ ছিল যা "থামার অবস্থা"):
runlevel (to lvl 0) ... <-- first the system shuts down (init level 0)
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 2) 2.6.24-... Fri Aug 10 15:58 - 15:32 (2+23:34)
বিদ্যুৎ হ্রাস থেকে অপ্রত্যাশিত শাটডাউনটি এর মতো দেখায় (মনে রাখবেন যে আপনার পূর্ববর্তী সিস্টেমের শাটডাউন ইভেন্ট ব্যতীত একটি সিস্টেম বুট ইভেন্ট রয়েছে):
runlevel (to lvl 3) ... <-- the system was running since this momemnt
reboot system boot ... <-- then we've a boot WITHOUT a prior shutdown
runlevel (to lvl 3) 3.10.0-693.21.1. Sun Jun 17 15:40 - 09:51 (18:11)
সর্বাধিক আকর্ষণীয় লগ বার্তা ফিল্টার করার জন্য একটি বাশ কমান্ডটি হ'ল:
grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
/var/log/messages /var/log/syslog /var/log/apcupsd* \
| grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'
যখন অপ্রত্যাশিত বিদ্যুৎ বন্ধ হয়ে যায় বা হার্ডওয়্যার ব্যর্থতা ঘটে তখন ফাইল সিস্টেমগুলি সঠিকভাবে আনমাউন্ট হবে না তাই পরবর্তী বুটে আপনি এই জাতীয় লগ পেতে পারেন:
EXT4-fs ... INFO: recovery required ...
Starting XFS recovery filesystem ...
systemd-fsck: ... recovering journal
systemd-journald: File /var/log/journal/.../system.journal corrupted or uncleanly shut down, renaming and replacing.
যখন সিস্টেমটি বন্ধ হয়ে যায় কারণ ব্যবহারকারী পাওয়ার বোতামটি চাপলে আপনি এই জাতীয় লগ পাবেন:
systemd-logind: Power key pressed.
systemd-logind: Powering Off...
systemd-logind: System is powering down.
কেবলমাত্র সিস্টেমটি সুশৃঙ্খলভাবে বন্ধ হয়ে গেলে আপনি এই জাতীয় লগ পাবেন:
rsyslogd: ... exiting on signal 15
অতিরিক্ত গরমের কারণে সিস্টেমটি বন্ধ হয়ে গেলে আপনি এই জাতীয় লগ পান:
critical temperature reached...,shutting down
আপনার যদি কোনও ইউপিএস থাকে এবং পাওয়ার এবং শাটডাউনটি নিরীক্ষণের জন্য ডেমোন চালিয়ে যায় তবে অবশ্যই আপনি এটির লগগুলি পরীক্ষা করতে হবে (/ var / লগ / বার্তাগুলিতে নট লগ তবে এপি / আপ / লগ / এপিউসিপিএস-এ apcupsd লগ)
নোট
*: last
এর ম্যান পৃষ্ঠা থেকে এখানে বর্ণনা দেওয়া হল :
last [...] prints information about connect times of users.
Records are printed from most recent to least recent.
[...]
The special users reboot and shutdown log in when the system reboots
or (surprise) shuts down.
আমরা head
সর্বশেষ 10 ইভেন্টগুলি রাখতে ব্যবহার করি এবং আমরা tac
ক্রমটি উল্টাতে ব্যবহার করি যাতে অতি সাম্প্রতিকতম থেকে সাম্প্রতিকতম ইভেন্টের শেষ প্রিন্টগুলি দেখে আমরা বিভ্রান্ত না হই।
tac
কমান্ড ব্যতীত পুনরায় কাজ করা থেকে উপকৃত হতে পারে
এক্সপ্লোর করার জন্য কিছু সম্ভাব্য লগ ফাইলগুলি: (একটি উবুন্টু সিস্টেম পাওয়া গেছে, তবে আমি আশা করব যে তারা বেশিরভাগ লিনাক্স / ইউনিক্স সিস্টেমে উপস্থিত রয়েছে)
/var/log/debug
/var/log/syslog (will be pretty full and may be harder to browse)
/var/log/user.log
/var/log/kern.log
/var/log/boot
আবার এই লগ ফাইলগুলি একটি উবুন্টু সিস্টেমে উপস্থিত রয়েছে, সুতরাং ফাইলের নামগুলি পৃথক হতে পারে। tail
কমান্ড আপনার বন্ধু।
ব্যবহার সহজ করে last
সিস্টেম শাটডাউন এন্ট্রি এবং রান-লেভেল পরিবর্তনের এবং ফিল্টারিং প্রদর্শন করার shutdown
এবং reboot
:
last -x shutdown reboot
cat foo | grep bar
বনাম grep bar foo
সাজানোর পদ্ধতিতে, দেখা যাচ্ছে যে শেষটি নিজেকে ফিল্টার করতে সক্ষম।
আমার একটি ডিবিয়ান 8.৮ এর একইরকম প্রয়োজন ছিল এবং পর্যবেক্ষণ করলাম যে মূলত লগতে কোনও স্পষ্ট এবং স্পষ্ট বার্তা নেই, যা একটু অবাক করার মতো।
মাধ্যমে grep /var/log
, টাইম মেশিন শাট ডাউন হয়েছিল বলতে সঠিক ডেমন শাটডাউন, ইত্যাদি, কিন্তু না প্রাথমিক কারণ দেখাতে হবে।
shutdown[25861]: shutting down for system halt
উল্লিখিত অন্যান্য সমাধানগুলি last -x
খুব বেশি সহায়ক হয়নি।
পড়া /etc/acpi/powerbtn-acpi-support.sh
যা অন্তর্ভুক্ত:
যদি [-x /etc/acpi/powerbtn.sh]; তারপর # এসপিড প্যাকেজ থেকে পুরানো কনফিগার স্ক্রিপ্টের সাথে সামঞ্জস্যতা /etc/acpi/powerbtn.sh এলিফ [-x /etc/acpi/powerbtn.sh.dpkg-bak]; তারপর # এসপিড প্যাকেজ থেকে পুরানো কনফিগার স্ক্রিপ্টের সাথে সামঞ্জস্যতা # যা এখনও প্রায় রয়েছে কারণ এটি অ্যাডমিন দ্বারা পরিবর্তন করা হয়েছিল /etc/acpi/powerbtn.sh.dpkg-bak আর # সাধারণ পরিচালনা / sbin / শাটডাউন -h -P এখন "পাওয়ার বোতাম টিপে" ফাই
লক্ষ্য করুন যে shutdown
কমান্ডের প্যারামিটার হিসাবে একটি স্পষ্ট পাঠ্য দেওয়া হয়েছে । আমি আশা করব যে স্ট্রিংটি শাটডাউন প্রোগ্রামের মাধ্যমে স্বয়ংক্রিয়ভাবে লগ হবে।
যাইহোক, একটি সুস্পষ্ট বার্তা পেতে আমি নীচে (মূল হিসাবে) পাঠ্যটি একটি নতুন /etc/acpi/powerbtn.sh
তৈরি এক্সিকিউটেবলের সাথে রেখেছিchmod a+x /etc/acpi/powerbtn.sh
#! / বিন / SH /etc/acpi/powerbtn.sh এ লগার, সম্ভবত "পাওয়ার বোতাম টিপে" / sbin / শাটডাউন -h -P এখন "পাওয়ার বোতাম টিপে"
এটি এভাবে করা সম্ভবত সংশোধন করার চেয়ে দীর্ঘস্থায়ী পরিবর্তন আনবে /etc/acpi/powerbtn-acpi-support.sh
। পরবর্তী বিকল্পটি সম্ভবত প্যাকেজের পরবর্তী আপগ্রেডের উপর তার প্রভাব হারাবে acpi-support-base
।
উবুন্টু ১৪.০৪ এর চেয়ে বিজ্ঞপ্তি এটি আলাদাভাবে করে ( /etc/acpi/powerbtn.sh
ইতিমধ্যে acpid
প্যাকেজ থেকে পৃথক সামগ্রী রয়েছে )। এছাড়াও, ডেবিয়ান 8 সম্ভবত এটি অন্যভাবে করে। ভেরিয়েন্ট অফার নির্দ্বিধায়।
আর এখন পাওয়ার বাটন টেপা হলে, নিচের মত একটি লাইন দেখা /var/log/messages
, /var/log/syslog
এবং /var/log/user.log
:
logger: in /etc/acpi/powerbtn.sh, presumably Power button pressed
এখন এটি লগের একটি স্পষ্ট বার্তা।
acpi-support-base
এবং acpid
প্যাকেজ বিবেচনা করার পরামর্শ দেওয়ার জন্য @ বিলেক্কিকে ধন্যবাদ । আমি নিজে পরীক্ষা করিনি। আপনি কোন বিতরণ এবং সংস্করণটি এর দ্বারা উপকার পাবেন তা বিশদ দিয়ে বলতে পারেন?
আমার কাছে কেবল একটি আনাড়ি ধারণা আছে তবে এটি আপনার পক্ষে কার্যকর হয়: কমান্ডটি সন্নিবেশ করান last
এবং সমস্ত ব্যবহারকারীর জন্য লগইন সম্পর্কিত তথ্যগুলি পরীক্ষা করে দেখুন। তারপরে, halt
সেই মুহুর্তে লগইন করা হয়েছিল তার জন্য প্রয়োজনীয় অনুমতি নিয়ে ফিল্টার করুন । তারপরে তাদের .bash_history
ফাইলটি পরীক্ষা করে দেখুন যে তারা থামতে প্রবেশ করেছে কিনা।
আমার কেভিএম ভিএম-তে কেবল এই চিপটি (যেখানে আমি আশ্চর্য হয়েছি যে কোনও হোস্ট পুনরায় বুট করা অতিথিদের ক্লিন শাটডাউন করে কিনা), আমি আমার প্রয়োজনীয় জিনিসগুলি খুঁজে পেয়েছি /var/log/auth.log
(একইটি প্রদর্শন করার পাশাপাশি last -x shutdown
)। সেখানে এই লাইনগুলি দেখানো হয়েছে:
Sep 3 23:56:31 Web systemd-logind[531]: Power key pressed.
Sep 3 23:56:31 Web systemd-logind[531]: Powering Off...
Sep 3 23:56:31 Web systemd-logind[531]: System is powering down.
Sep 3 23:55:45 Web systemd-logind[591]: New seat seat0.
Sep 3 23:55:45 Web systemd-logind[591]: Watching system buttons on /dev/input/event0 (Power Button)
Sep 3 23:55:54 Web sshd[805]: Server listening on 0.0.0.0 port 22.
Sep 3 23:55:54 Web sshd[805]: Server listening on :: port 22.
last -x
এই লাইনগুলি দেখায়, লক্ষ্য করুন যে এগুলি সর্বাধিক সাম্প্রতিক-প্রথম ক্রমে মুদ্রিত হচ্ছে (উদাহরণস্বরূপ শেষ লাইনটি প্রথমে পড়ুন, এবং তারপরে উপরে যান), তবে ঘড়ির রিসেটের কারণে (বুট হওয়ার আগে 23:56, 23:55 পরে) পূর্ববর্তী লাইনেও স্পষ্ট, আদেশটি কিছুটা বিচলিত বলে মনে হচ্ছে:
runlevel (to lvl 2) 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
reboot system boot 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
shutdown system down 3.13.0-123-gener Sun Sep 3 23:56 - 23:55 (00:00)
runlevel (to lvl 0) 3.13.0-123-gener Sun Sep 3 23:56 - 23:56 (00:00)
আমার অংশ হিসাবে, হোস্ট বুট করার সময় অতিথিরা পরিষ্কারভাবে শাট ডাউন হয়ে গেছে তা যাচাই করে, আমি কেবল একটি অতিথির মধ্যে (এসএসএস) লগইন করতে পারি এবং হোস্টটি বুট করার সময় সেখানে থাকতে পারি, টার্মিনালে এই লাইনগুলি পেয়ে:
root@Web:~#
Broadcast message from root@Web
(unknown) at 22:25 ...
The system is going down for power off NOW!
Connection to web closed by remote host.
Connection to web closed.
স্ক্রিপ্টের স্ক্রিপ্টের শাটডাউনটি স্ক্রিপ্টের
সমস্ত পরামিতি
ইত্যাদিকে অবশ্যই মূল শাটডাউন এক্সিকিউটেবল বিটকে দিতে হবে: স্ক্রিপ্টটি অবশ্যই এগুলি লগইন করতে পারে
last -x
)
cat /usr/adm/syslog
আমার ক্ষেত্রে এটি ছিল সার্ভারটি বন্ধ করার আপস সফ্টওয়্যার।
/etc/rc.d/7/upsd.boot
/var/log/acpid
: পাওয়ার বাটনটি হিট হয়ে গেছে। অন্য কোনও ধারণাগুলি, এসিপিড একটি ক্লু না দেয় তবে কোথায় সন্ধান করবেন?