উত্তর:
একসাথে একাধিক বাশ দৃষ্টান্ত বন্ধ করার সময়, একটি রেস শর্ত রয়েছে যা ইতিহাস সাফ হওয়ার কারণ হতে পারে। এটি ঘটে কারণ ব্যাশ ইতিহাস ফাইলটি লেখার সময় কোনও লকিং ব্যবহৃত হয় না।
চেট রেমি (বর্তমান ব্যাশ রক্ষণাবেক্ষণকারী) এই সমস্যাটির শর্তগুলির একটি ভাল সংক্ষিপ্তসার দিয়েছে :
বর্তমান (বাশ-৪.৩-ডিভেল) কোডটি কোনও ত্রুটি (lib / readline /istfile.c: ইতিহাস_ডো_রাইট ()) ধরে ধরে এই জাতীয় কিছু কাজ করে:
- নতুন নামকরণ (হিস্টফাইল, হিস্টফিল ~)
- O_CREAT | O_TRUNC দিয়ে ফাইল খুলুন
- সমস্ত ইতিহাসের ডেটা ধরে রাখতে যথেষ্ট ম্যালোক বাফার
- ইতিহাসের সমস্ত প্রবেশপত্র একটি লিখিত (2) কলে কল করুন
- ফাইল বন্ধ করুন
- লিঙ্কমুক্ত (হিস্টফিল ~)
বাশ -২.২ কোড হিস্ট্রি ফাইলটিকে ব্যাকআপ না করে ব্যতীত একইভাবে কাজ করে। আপনার কনফিগারেশনের মতো হিস্টপেন্ড সেট করা নেই, ধরে নিলে প্রতিটি শেল একই কাজ করে।
ইতিহাসের ফাইলটি শূন্য দৈর্ঘ্যের শেষ পর্যন্ত বেশ কয়েকটি উপায় রয়েছে: ম্যালোক ব্যর্থ হতে পারে, বা লেখাগুলি ব্যর্থ হতে পারে। বাশ -২.২-এ, সেই মুহুর্তে কাটা ইতিহাসের ফাইল সম্পর্কে কিছু করতে খুব দেরী। ব্যাশ -৩.৩ এ পূর্ববর্তী ইতিহাস ফাইলটি পুনরুদ্ধার করা হবে।
বাগ-ব্যাশের এই মেলিং তালিকার থ্রেডে সমস্যা, সম্ভাব্য সমাধান এবং এর আশেপাশের উদ্বেগগুলির একটি শালীন আলোচনা রয়েছে।
আরও কিছু সম্ভাবনা রয়েছে:
HISTSIZE
বা HISTFILESIZE
0 তে সেট করা হয়েছিলhistory-size
0 তে সেট করা হয়েছিল> "$HISTFILE"
বা অনুরূপ)পরবর্তী ক্ষেত্রে, আপনি এটি পরীক্ষা করে দেখতে চাইতে পারেন যে কেউ আপনার অ্যাকাউন্টে অ্যাক্সেস করছে না এবং তাদের ট্র্যাকগুলি অপরিশোধিত উপায়ে লুকানোর চেষ্টা করছে। কটাক্ষপাত last
, /var/log/auth
(অথবা /var/log/secure
সেন্টওএস / rhel দিকে) এবং আপনি এটি আছে যদি, কোনো প্রক্রিয়া অ্যাকাউন্টিং এবং / অথবা নিরীক্ষণ সফটওয়্যার ইনস্টল করা।
আমি কীভাবে দুর্ঘটনাক্রমে আমার বাশের ইতিহাস মুছলাম:
আমি আমার নিজস্ব বিকল্প টার্মিনাল রিডলাইন স্ক্রিপ্ট প্রথম নীতিগুলি থেকে রোল করছি: https://tiswww.cwru.edu/php/chet/readline/rluserman.html
এবং তারপরে এটি একটি টার্মিনালে পরীক্ষা করে নেওয়া। জিএনইউ রিডলাইনের একটি ইতিহাসের আকার এবং ইতিহাস সংরক্ষণের নির্দেশাবলী অন্তর্নির্মিত রয়েছে, তাই হিস্টের আকারটি ডিফল্ট করা যেতে পারে এবং এভাবে আপনার সমস্ত ইতিহাস উড়িয়ে দেওয়া হয়।
স্মৃতিতে রেখে গেলে ইতিহাস পুনরুদ্ধার:
আপনি যদি এটি পুনরায় বুট করার আগে ধরেন, বা ক্লিয়ারিংয়ের আগে যদি কোনও টার্মিনাল খোলা রেখে দেওয়া হয়, আপনি স্মৃতিতে আপনার ইতিহাসটি সন্ধান করতে সক্ষম হতে পারেন। history | cut -c 8- > histback_user1.txt
খোলা রেখে এবং প্রতিটি ব্যবহারকারীর জন্য সমস্ত টার্মিনাল চালান । যদি এটি আপনার বর্ধিত ইতিহাসের সাথে কোনও ফাইল তৈরি করে তবে আপনি এটির ~/.bash_history
সাথে প্রতিস্থাপন করতে পারেন histback_user1.txt
। এছাড়াও সম্প্রতি সিস্টেমে লগইন করা সমস্ত ব্যবহারকারীর ইতিহাসের পাশাপাশি রুটের ইতিহাসও পরীক্ষা করে দেখুন। বহু পরিস্থিতিতে দুর্ঘটনাক্রমে বাশ ইতিহাস মুছে ফেলা সহজ, সুতরাং আপনি যদি ইতিহাসের কোনও ক্ষতি না হওয়ার বিষয়ে নিশ্চিত হতে চান তবে আপনার একটি দৈনিক ব্যাকআপ স্ক্রিপ্ট দরকার।
>.bash_history
। হয়তো কেউ আপনার অ্যাকাউন্টে ছিল এবং তার লেজগুলি গোপন করার চেষ্টা করেছিল। (আপনার সিস্টেমের উপর নির্ভর করে) এর সাথে অস্বাভাবিক লগইন বারlast
অনুসন্ধান/var/log/auth.log
করুন।