কম্পিউটার টিউটোরিয়াল

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন

আমি বন্ধু এবং পরিবারের কম্পিউটার সমস্যা সমাধানে অনেক সময় ব্যয় করেছি, এবং আমি বলতে চাই যে সকল সমস্যা থেকে উপরে, যে একটি সমস্যা বারবার দেখি সেটি হলো টেম্প ফাইল এবং লগ ফাইল ডিস্ক স্পেস ক্ষয় করে এবং 最終ত সিস্টেমকে স্লো করে দেয়।

টেম্পোরারি ইন্টারনেট ফাইল ফোল্ডার একটি সাধারণ অভিযুক্ত, কিন্তু এটির সহজ সমাধান আছে, কারণ আপনাকে শুধু কন্ট্রোল প্যানেলের Internet Options-এ ফাইলগুলো ডিলিট করার সেটআপ করতে হয়। কিন্তু সেই বিরক্তিকর উইন্ডোজ টেম্প ফোল্ডার, বা সেই সকল অ্যাপ্লিকেশন লগ ফাইল যেগুলো র‍্যান্ডম জাঙ্ক দিয়ে একে ওপর একে বিল্ড আপ হয়ে যায় এবং কখনো ডিলিট হয় না? প্রথমে এগুলো কোথাও সমস্যা করে না, কিন্তু সময়ের সাথে সাথে সেই জমা জাঙ্ক একটি বিশাল গড়ে রূপ নেয় যেটি কোনো উপকারী উদ্দেশ্য সাধন করে না।

ভালোভাবে লেখা অ্যাপ্লিকেশনগুলো প্রয়োজন নেই এমন লগ বা টেম্প ফাইল ডিলিট করে দেয়, কিন্তু বাহিরের অনেক প্রোগ্রাম নিজেদের পরিপূরকভাবে ক্লিন আপ করে না—ফলস্বরূপ বছর পর বছর আপনাকে একটি খুব মেসি কম্পিউটার দিয়ে ছেড়ে দেয়। যেতবু, আপনি যদি যেকোনো নির্দিষ্ট লগ ফোল্ডার জানেন—হয় সেটি উইন্ডোজ টেম্প ফোল্ডার হোক বা অ্যাপ্লিকেশন লগ ফোল্ডার, যেন অ্যান্টিভাইরাস নোটিফিকেশন লগ ফোল্ডার বা এমনকিছু, আপনি নিচের উইন্ডোজ স্ক্রিপ্ট ব্যবহার করতে পারেন সেসব লগ ফাইল নিয়মিত ক্লিন আপ করতে যেগুলো কয়েক দিনের পুরনো।

Windows Script দিয়ে টেম্প ফাইল ক্লিন

আপনি যদি উইন্ডোজ স্ক্রিপ্টিং-এ নতুন হন, তবে আমার লেখা WSH টিউটোরিয়াল দ্রুত একটু দেখুন। উইন্ডোজ স্ক্রিপ্ট দিয়ে অনেক কুল জিনিস করা যায়, যেন নেটওয়ার্ক সেটিংস পরিবর্তন করা বা অ্যান্টিভাইরাস বা ম্যালওয়্যার স্ক্যানিং সফ্টওয়্যার অটোমেটিক্যালি শিডিউল করা।

স্পষ্টত, আপনি যদি একটি ক্লিনআপ রুটিন শিডিউল করতে চান যাতে সেই অ্যাপ্লিকেশন লগ ফাইল বা টেম্পোরারি ফাইল ফোল্ডারগুলো নিয়ন্ত্রণে থাকে, উইন্ডোজ স্ক্রিপ্ট নিঃসন্দেহে সমাধান।

একটি ক্লিনআপ Windows Script লেখা

এই উইন্ডোজ স্ক্রিপ্ট একটি নির্দিষ্ট ডিরেক্টরিতে ফোকাস করবে, এবং সেই পুরো ডিরেক্টরিতে ঘুরে những ফাইল খুঁজে বের করবে যাদের মডিফিকেশন ডেট কিছু দিনের পুরনো। তারপর সেটি সেগুলো ডিলিট করবে। এরপর, স্ক্রিপ্টটি যেকোনো সাবডিরেক্টরির মধ্য দিয়ে যাবে এবং একই চেক ও ক্লিনআপ করবে। জটিল লাগছে? নয়। স্ক্রিপ্টের প্রথম অংশ এরকম দেখাবে:

Option Explicit 
On Error Resume Next 
Dim oFSO, oFolder, sDirectoryPath 
Dim oFileCollection, oFile, sDir 
Dim iDaysOld 
iDaysOld = 3

এই সেকশন ফাইল সিস্টেম ভেরিয়েবল ডিক্লেয়ার করে যেগুলো আপনি ডিরেক্টরি এবং আপনি যে ফাইলগুলো ক্লিন করতে চান সেগুলো অ্যাক্সেস করার জন্য ব্যবহার করবেন। "iDaysOld" ভেরিয়েবল সেট আপ করা স্ক্রিপ্টকে বলে যে আপনি কত পুরনো ফাইল রাখতে চান। এই কেসে, আমি ৩ দিনের চেয়ে নতুন ফাইলগুলো রাখছি।

এরপর আসে অত্যন্ত সহজ ক্লিনআপ সেকশন।

' ***** CLEAR OUT OLD FILES IN LOG FOLDER *****
sDirectoryPath = "C:\Users\Owner\AppData\Local\Temp\" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(sDirectoryPath) 
Set oFileCollection = oFolder.Files 
For each oFile in oFileCollection
 If oFile.DateLastModified < (Date() - iDaysOld) Then 
  oFile.Delete(True) 
 End If 
Next

উপরের সেকশন উইন্ডোজ ফাইল সিস্টেমের সাথে কানেক্ট করে, এবং তারপর আপনি "sDirectoryPath" ভেরিয়েবল দিয়ে যে ডিরেক্টরি ডিফাইন করেছেন সেটির সাথে কানেক্ট করে। এই প্রথম লুপ প্রতিটি ফাইলের মধ্য দিয়ে যায়, মডিফাইড ডেট চেক করে এবং আপনি যে ফাইল}y এর বয়স ডিফাইন করেছেন তার সাথে তুলনা করে। যদি সেটি ৩ দিনের চেয়ে পুরনো হয়, তবে সেটি সেই ফাইলটিতে ডিলিশন অপারেশন করে।

এটি ফাইলগুলোর ওপর ভালো কাজ করে, কিন্তু সাবডিরেক্টরিগুলোর কী? উইন্ডোজ টেম্প ডিরেক্টরির মতো ফোল্ডারগুলোর সকল সাবডিরেক্টরি? স্ক্রিপ্টের এই পরবর্তী সেকশন সব সাবডিরেক্টরির মধ্য দিয়ে যাবে, এবং সেখানে থাকা ফাইলগুলোর ওপর একই ফাইল অপারেশন করবে।

For Each oSubFolder In oSubFolders
 sDirectoryPath = "C:\Users\Owner\AppData\Local\Temp\" & oSubFolder 
 Set oFSO = CreateObject("Scripting.FileSystemObject") 
 Set oFolder = oFSO.GetFolder(sDirectoryPath) 
 Set oFileCollection = oFolder.Files 
 For each oFile in oFileCollection
  If oFile.DateLastModified < (Date() - iDaysOld) Then 
   oFile.Delete(True) 
  End If 
  Next 
  If oSubFolder.Size = 0 Then oSubFolder.Delete(True)
  Set oFSO = Nothing
  Set oFolder = Nothing 
  Set oFileCollection = Nothing 
  Set oFile = Nothing 
Next

শেষে, সাবডিরেক্টরি না থাকার কেসে অবজেক্টগুলো ক্লিয়ার করা ভুলবেন না।

 Set oFSO = Nothing
 Set oFolder = Nothing 
 Set oFileCollection = Nothing 
 Set oFile = Nothing 
 WScript.Quit

এতটুকুই। উপরের স্ক্রিপ্ট যেকোনো ফোল্ডার ক্লিন আপ করবে যা আপনি নিয়মিত ক্লিন রাখতে চান। প্রতিটি ডিরেক্টরির জন্য আলাদা স্ক্রিপ্ট লিখুন যা আপনি ক্লিন রাখতে চান, "sDirectoryPath" সেট করুন সেই ডিরেক্টরিতে যা আপনি ক্লিন রাখতে চান, এবং এটিকে "C:\temp\" বা "c:\vbscripts\"-এর মতো একটি ডিরেক্টরিতে স্টোর করুন। একবার স্ক্রিপ্টগুলো সেট আপ হলে, আপনি সেগুলো শিডিউল করার জন্য প্রস্তুত।

আপনার ক্লিনআপ স্ক্রিপ্ট শিডিউল

আপনার ক্লিনআপ স্ক্রিপ্ট শিডিউল করতে, উইন্ডোজ ৭-এ, Administrative Tools-এ যান এবং Task Scheduler খুলুন।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
Task Scheduler খোলা

Action মেনু আইটেম থেকে Create a Basic Task তৈরি করুন।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
Basic Task তৈরি

তারপর, রিকারিং শিডিউল সেট আপ করুন যখন আপনি সেটি ডিরেক্টরি ক্লিন করতে চান। আমার কেসে, আমি রবিবার দুপুরে আমার ক্লিনআপ স্ক্রিপ্ট চালাই যখন আমি সাধারণত লগড ইন থাকি এবং কম্পিউটারে কাজ করি। স্ক্রিপ্টগুলো ব্যাকগ্রাউন্ডে চলে।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
রিকারিং শিডিউল সেটিংস

আপনাকে প্রতিটি উইন্ডোজ স্ক্রিপ্টের জন্য একটি শিডিউলড টাস্ক তৈরি করতে হবে যেগুলো আপনি লিখেছেন ইনডিভিডুয়াল লগ বা টেম্প ডিরেক্টরি ক্লিন আপ করার জন্য।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
টাস্ক সেটআপ

Task Schedule-এ তৈরি করার পর আপনার স্ক্রিপ্ট টেস্ট করতে, শুধু "Action"-এ ক্লিক করুন এবং তারপর "Run"।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
টাস্ক ম্যানুয়ালি রান করা

আপনাকে দেখতে মেলবে সেই লগ বা টেম্প ফোল্ডারে থাকা সকল ফাইল যা কয়েক দিনের পুরনো (অথবা আপনি আপনার স্ক্রিপ্টে যেভাবে সেট করেছেন) সেগুলো অটোমেটিক্যালি ডিলিট হয়ে যাচ্ছে। আমার কেসে, আমি সপ্তাহে একবার আমার উইন্ডোজ টেম্প ফোল্ডার ক্লিন করি। এই স্ক্রিপ্ট চালানোর পর, আমি দেখলাম ফোল্ডারে ৪৫ টি ফাইল থেকে মাত্র ২০ টি লেটেস্ট ফাইল বাকি থাকলো—সাবডিরেক্টরিগুলোর ফাইলসহ।

Windows Script দিয়ে লগ ও টেম্প ফাইল নিয়ন্ত্রণে রাখুন
ক্লিনআপ ফলাফল: ৪৫ থেকে ২০ ফাইল

কম্পিউটার মেইনটেইন করা আসলেই কষ্টকর—এবং সেটি আরো কঠিন হয়ে যায় যখন সিস্টেম এবং সকল অ্যাপ্লিকেশন লগ ফাইলে লিখতে থাকে বা উইন্ডোজ টেম্প ফোল্ডারে জাঙ্ক টেম্প ফাইল জমা দিয়ে থাকে। এই স্ক্রিপ্ট বিশেষ করে সে আইটি টেকের জন্য উপকারী যারা নিয়মিত ব্যাচ জব বা স্ক্রিপ্ট সার্ভারে চালান যা প্রতিবার নতুন লগ ফাইল তৈরি করে। একটি উইন্ডোজ স্ক্রিপ্ট নিয়মিত পুরনো লগ ফাইল ক্লিন আপ করানোর মাধ্যমে, আপনি উপরের মত WSF ফাইল লিখতে পারবেন যা সেই লগ ডিরেক্টরিগুলো সুন্দর ও ক্লিন রাখবে—আপনি যেসব লগ ফাইলের ইতিহাস রাখতে চান সেগুলো রাখবেন, কিন্তু যেসব খুব পুরনো আর দরকার নেই সেগুলো ক্লিন করে ফেলবেন।

আপনি কি এই স্ক্রিপ্টের জন্য কিছু ক্রিয়েটিভ ব্যবহার চিন্তা করতে পারেন? আপনি কি টেম্প ফোল্ডার এবং লগ ফাইল ম্যানুয়ালি ক্লিন করেন—এবং এইরকম একটি স্ক্রিপ্ট আপনার কাজ বাঁচাতে পারে? একবার ট্রাই করুন এবং কমেন্ট সেকশনে আপনার মতামত ও ফিডব্যাক শেয়ার করুন!

ছবির ক্রেডিট: Crane at Junk Yard via Shutterstock

  1. উইন্ডোজ ১০ থেকে টেম্পোরারি ফাইল দক্ষতার সাথে রিমুভ করুন পারফরম্যান্স বুস্ট করতে

  2. Windows Disk Cleanup দিয়ে দ্রুত ফ্রি ডিস্ক স্পেস: ধাপে ধাপে গাইড

  3. উইন্ডোজ ফোল্ডার ও ফাইল পাসওয়ার্ড দিয়ে সুরক্ষিত করার নিরাপদ পদ্ধতি

  4. উইন্ডোজ ১১-এ টেম্পোরারি ফাইল ক্লিন আপ: ধাপে ধাপ গাইড