Windows কম্পিউটারে বিভিন্ন Software, Browser, Installer এবং Operating System কাজ করার সময় Temporary File তৈরি করে। এসব File সাধারণত সাময়িক ব্যবহারের জন্য তৈরি হলেও অনেক ক্ষেত্রে কাজ শেষ হওয়ার পরও Temp Folder-এ থেকে যায়। ফলে ধীরে ধীরে C Drive-এর Storage কমে যাওয়া, Software Cache বড় হওয়া এবং Low Disk Space Warning দেখা দিতে পারে।
Windows-এর Storage Sense দিয়ে স্বয়ংক্রিয়ভাবে অপ্রয়োজনীয় Temporary File পরিষ্কার করা যায়। তবে নির্দিষ্ট বয়সের File মুছে ফেলা, একাধিক Temp Folder Scan করা, কত Storage খালি হয়েছে তার Log রাখা এবং নিজের Schedule অনুযায়ী Cleanup চালানোর জন্য Python Automation ব্যবহার করা যেতে পারে।
Python Script দিয়ে Temp File Delete করার সময় বিশেষ সতর্কতা প্রয়োজন। ভুল Folder Path, অসুরক্ষিত Recursive Delete অথবা বর্তমানে ব্যবহৃত File জোর করে মুছে ফেললে Software Crash, Installation Failure বা Data Loss হতে পারে।
এই নির্দেশিকায় Windows 10 ও Windows 11-এ নিরাপদ Python Temp Cleaner Script তৈরি, Dry Run করা, Log File রাখা এবং Task Scheduler দিয়ে স্বয়ংক্রিয়ভাবে চালানোর সম্পূর্ণ নিয়ম দেওয়া হয়েছে।
Temp Files কী?
Temporary Files হলো অস্থায়ী Data, যা Windows বা কোনো Software নির্দিষ্ট কাজ সম্পন্ন করার সময় তৈরি করে।
এগুলোর মধ্যে থাকতে পারে:
• Software Cache
• Installer Temporary File
• Browser Temporary Data
• Crash Report
• Update Extraction File
• Log File
• Thumbnail Cache
• Session Data
• Temporary Download
• Editing Software Cache
সব Temp File অপ্রয়োজনীয় নয়। কোনো Software বর্তমানে ব্যবহার করছে এমন Temporary File Delete করার চেষ্টা করলে সেটি ব্যবহারাধীন থাকায় Windows সাধারণত Permission Error দেখাতে পারে। কিছু ক্ষেত্রে জোর করে Delete করলে চলমান কাজ নষ্ট হতে পারে।
Windows-এর Built-in Storage Sense ব্যবহার করবেন নাকি Python?
সাধারণ ব্যবহারকারীর জন্য প্রথমে Windows Storage Sense ব্যবহার করা নিরাপদ। Storage Sense System Drive-এর Temporary File এবং নির্ধারিত সময়ের পুরোনো Recycle Bin Item স্বয়ংক্রিয়ভাবে পরিষ্কার করতে পারে। Default Configuration-এ Downloads এবং Cloud File ব্যবহারকারী আলাদাভাবে নির্বাচন না করলে সাধারণত মুছে ফেলা হয় না।
Python Automation ব্যবহার উপযোগী যখন:
• নির্দিষ্ট কয়েকটি Folder পরিষ্কার করতে হবে
• শুধু নির্দিষ্ট দিনের চেয়ে পুরোনো File Delete করতে হবে
• Cleanup Report সংরক্ষণ করতে হবে
• Custom Schedule প্রয়োজন
• একাধিক Computer-এ একই Script চালাতে হবে
• Software Development Environment-এর Cache নিয়ন্ত্রণ করতে হবে
• Dry Run করে আগে File List দেখতে হবে
Windows Storage Sense ও Python Script একসঙ্গে ব্যবহার করলে একই ধরনের Cleanup বারবার চলতে পারে। তাই কোন Tool কোন Folder পরিচালনা করবে, তা আগে নির্ধারণ করুন।
Python Script চালানোর আগে গুরুত্বপূর্ণ সতর্কতা
নিচের প্রস্তুতি ছাড়া Automation চালাবেন না:
• গুরুত্বপূর্ণ Data Backup রাখুন
• Script-এর Target Folder নিজে পরীক্ষা করুন
• প্রথমে Dry Run Mode ব্যবহার করুন
• Downloads, Documents বা Desktop Target করবেন না
• Windows, System32 বা Program Files পরিষ্কার করবেন না
• Symbolic Link বা Junction অনুসরণ করবেন না
• বর্তমানে ব্যবহৃত File Skip করুন
• নির্দিষ্ট দিনের চেয়ে পুরোনো File Delete করুন
• Log File তৈরি করুন
• Administrator Mode শুধু প্রয়োজন হলে ব্যবহার করুন
একটি ভুল Recursive Delete Command পুরো Folder Tree মুছে ফেলতে পারে। Python-এর Official Documentation-ও Recursive Directory Removal-কে ঝুঁকিপূর্ণ Operation হিসেবে বিবেচনা করে এবং Path সঠিকভাবে যাচাই করার গুরুত্ব দেখায়।
কোন Temp Folder পরিষ্কার করা যায়?
Windows User Temp Folder সাধারণত:
%TEMP%
অথবা:
C:\Users\UserName\AppData\Local\Temp
Windows System Temp Folder সাধারণত:
C:\Windows\Temp
User Temp Folder পরিষ্কার করতে সাধারণত Administrator Permission লাগে না। Windows Temp Folder-এর কিছু File Delete করতে Administrator Permission প্রয়োজন হতে পারে।
সবচেয়ে নিরাপদ পদ্ধতি হলো প্রথমে শুধু বর্তমান User-এর Temp Folder Target করা।
Python ইনস্টল আছে কি না পরীক্ষা করুন
Command Prompt খুলে লিখুন:
python –version
কাজ না করলে চেষ্টা করুন:
py –version
Python Install থাকলে Version দেখা যাবে।
Python Install না থাকলে Python-এর Official Installer ব্যবহার করুন। Installation-এর সময় Add Python to PATH Option চালু করলে Command Prompt থেকে Python চালানো সহজ হয়।
Temp Folder Path Python-এ কীভাবে পাওয়া যায়?
Python-এর tempfile Module Current Operating System অনুযায়ী Default Temporary Directory শনাক্ত করতে পারে।
উদাহরণ:
import tempfile
print(tempfile.gettempdir())
Windows-এ এটি সাধারণত বর্তমান User-এর Temp Folder দেখাবে।
Environment Variable থেকেও নেওয়া যায়:
import os
print(os.environ.get(“TEMP”))
তবে tempfile.gettempdir() ব্যবহার করলে Operating System অনুযায়ী Path নির্ধারণ করা সহজ হয়।
নিরাপদ Temp Cleaner Script
নিচের Script শুধু নির্দিষ্ট দিনের চেয়ে পুরোনো File ও খালি Folder Delete করবে। এটি Symbolic Link অনুসরণ করবে না এবং Locked File Skip করবে।
temp_cleaner.py নামে File তৈরি করে Codeটি Paste করুন:
import argparse
import logging
import os
import tempfile
import time
from pathlib import Path
def format_size(size_bytes: int) -> str:
“””Convert bytes into a readable size.”””
units = [“B”, “KB”, “MB”, “GB”, “TB”]
size = float(size_bytes)
for unit in units:
if size < 1024 or unit == units[-1]:
return f"{size:.2f} {unit}"
size /= 1024
return f"{size_bytes} B"
def is_safe_temp_path(path: Path) -> bool:
“””Allow only the current user’s resolved temp directory.”””
try:
expected = Path(tempfile.gettempdir()).resolve()
actual = path.resolve()
return actual == expected
except OSError:
return False
def clean_temp_folder(
target: Path,
older_than_days: int,
dry_run: bool = True,
) -> tuple[int, int, int]:
“””
Delete files older than the selected age.
Returns:
deleted_files, deleted_dirs, freed_bytes
“””
if not is_safe_temp_path(target):
raise ValueError(
f”Unsafe target rejected: {target}. ”
“This script only allows the current user’s temp folder.”
)
cutoff = time.time() – (older_than_days * 24 * 60 * 60)
deleted_files = 0
deleted_dirs = 0
freed_bytes = 0
for root, dirs, files in os.walk(target, topdown=False, followlinks=False):
root_path = Path(root)
for filename in files:
file_path = root_path / filename
try:
if file_path.is_symlink():
logging.warning(“Skipped symbolic link: %s”, file_path)
continue
stat = file_path.stat()
if stat.st_mtime > cutoff:
continue
logging.info(
“%s file: %s (%s)”,
“Would delete” if dry_run else “Deleting”,
file_path,
format_size(stat.st_size),
)
if not dry_run:
file_path.unlink()
deleted_files += 1
freed_bytes += stat.st_size
except FileNotFoundError:
logging.info(“Already removed: %s”, file_path)
except PermissionError:
logging.warning(“Permission denied or in use: %s”, file_path)
except OSError as exc:
logging.warning(“Could not process %s: %s”, file_path, exc)
for dirname in dirs:
dir_path = root_path / dirname
try:
if dir_path.is_symlink():
logging.warning(“Skipped directory link: %s”, dir_path)
continue
if any(dir_path.iterdir()):
continue
logging.info(
“%s empty directory: %s”,
“Would delete” if dry_run else “Deleting”,
dir_path,
)
if not dry_run:
dir_path.rmdir()
deleted_dirs += 1
except FileNotFoundError:
pass
except PermissionError:
logging.warning(“Permission denied: %s”, dir_path)
except OSError:
# The folder may no longer be empty or may be locked.
pass
return deleted_files, deleted_dirs, freed_bytes
def main() -> None:
parser = argparse.ArgumentParser(
description=”Safely clean old files from the current user’s temp folder.”
)
parser.add_argument(
“–days”,
type=int,
default=7,
help=”Delete files older than this number of days. Default: 7″,
)
parser.add_argument(
“–delete”,
action=”store_true”,
help=”Actually delete files. Without this option, dry run is used.”,
)
parser.add_argument(
“–log”,
default=”temp_cleanup.log”,
help=”Log file path. Default: temp_cleanup.log”,
)
args = parser.parse_args()
if args.days < 1:
raise ValueError("--days must be at least 1.")
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | %(levelname)s | %(message)s",
handlers=[
logging.FileHandler(args.log, encoding="utf-8"),
logging.StreamHandler(),
],
)
target = Path(tempfile.gettempdir())
dry_run = not args.delete
logging.info("Target folder: %s", target)
logging.info("Files older than %s day(s)", args.days)
logging.info("Mode: %s", "DRY RUN" if dry_run else "DELETE")
deleted_files, deleted_dirs, freed_bytes = clean_temp_folder(
target=target,
older_than_days=args.days,
dry_run=dry_run,
)
logging.info("Processed files: %s", deleted_files)
logging.info("Processed empty directories: %s", deleted_dirs)
logging.info(
"%s storage: %s",
"Potentially recoverable" if dry_run else "Freed",
format_size(freed_bytes),
)
if __name__ == "__main__":
main()
এই Script-এর প্রধান নিরাপত্তা ব্যবস্থা
Scriptটি:
• শুধু বর্তমান User Temp Folder গ্রহণ করে
• অন্য Path Reject করে
• প্রথম অবস্থায় Dry Run চালায়
• Symbolic Link Skip করে
• Locked File Skip করে
• নির্দিষ্ট বয়সের চেয়ে নতুন File রাখে
• File Delete করার আগে Size Log করে
• শুধু খালি Folder Remove করে
• Permission Error-এ বন্ধ না হয়ে পরবর্তী File পরীক্ষা করে
Python-এর pathlib Module File ও Directory Path যাচাই, File শনাক্ত এবং unlink বা rmdir Operation পরিচালনা করতে ব্যবহার করা যায়। Recursive Directory Removal-এর জন্য shutil.rmtree থাকলেও ভুল Path দিলে পুরো Directory Tree মুছে যেতে পারে। তাই সাধারণ Temp Automation-এ প্রতিটি Item আলাদাভাবে যাচাই করা তুলনামূলক নিরাপদ।
Dry Run কী এবং কেন জরুরি?
Dry Run Mode-এ Script কোনো File Delete করে না। শুধু কোন File Delete করা হতো তার List দেখায়।
Scriptটি Option ছাড়া চালালে Dry Run হবে:
python temp_cleaner.py
অথবা:
py temp_cleaner.py
Defaultভাবে এটি ৭ দিনের চেয়ে পুরোনো File পরীক্ষা করবে।
৩০ দিনের পুরোনো File দেখতে:
python temp_cleaner.py --days 30
Output এবং temp_cleanup.log File পরীক্ষা করুন।
কোনো গুরুত্বপূর্ণ বা অপ্রত্যাশিত File দেখলে Script-এর Target বা Age পরিবর্তন করুন।
সত্যি File Delete করার নিয়ম
Dry Run Result ঠিক থাকলে:
python temp_cleaner.py --days 7 --delete
৩০ দিনের পুরোনো File Delete করতে:
python temp_cleaner.py --days 30 --delete
নিরাপত্তার জন্য ৭ দিনের পরিবর্তে ১৪ বা ৩০ দিন ব্যবহার করা যেতে পারে। খুব নতুন Temp File Delete করলে চলমান Software বা Pending Installer প্রভাবিত হতে পারে।
Log File অন্য Location-এ রাখতে:
python temp_cleaner.py --days 14 --delete --log "D:\Logs\temp_cleanup.log"
Log Folder আগে তৈরি করে রাখুন।
Script কীভাবে File-এর বয়স নির্ধারণ করে?
Script File-এর Last Modified Time পরীক্ষা করে।
Cutoff Time হিসাব:
বর্তমান সময় − নির্বাচিত দিনের সংখ্যা
উদাহরণ:
• --days 7 মানে ৭ দিনের বেশি পুরোনো File
• --days 14 মানে ১৪ দিনের বেশি পুরোনো File
• --days 30 মানে ৩০ দিনের বেশি পুরোনো File
কিছু Software পুরোনো File আবার ব্যবহার করতে পারে। তাই শুধু File Age দেখেই সব ধরনের Application Cache Delete করা নিরাপদ নয়। Scriptটি শুধু সাধারণ User Temp Folder-এর জন্য ব্যবহার করুন।
কেন Creation Time-এর পরিবর্তে Modified Time ব্যবহার করা হয়েছে?
Windows-এ File Copy বা Extract করলে Creation Time পরিবর্তিত হতে পারে। Last Modified Time অনেক ক্ষেত্রে Fileটি সর্বশেষ কখন পরিবর্তিত হয়েছে তার বেশি কার্যকর ধারণা দেয়।
তবে কোনো File দীর্ঘদিন পরিবর্তিত না হলেও Software সেটি ব্যবহার করতে পারে। সে কারণে Locked File Skip করা এবং Conservative Age Limit ব্যবহার করা জরুরি।
Locked File Delete না হলে সমস্যা কি?
না। Windows বা চলমান Software কোনো Temp File ব্যবহার করলে PermissionError বা OSError দেখা দিতে পারে।
Scriptটি এসব File Skip করে Log-এ লিখবে:
Permission denied or in use
এগুলো Force Delete করার চেষ্টা করবেন না। Computer Restart করার পর পরবর্তী Scheduled Run-এ Fileটি Delete হতে পারে।
Windows Temp Folderও পরিষ্কার করতে চাইলে
C:\Windows\Temp পরিষ্কার করতে Administrator Permission প্রয়োজন হতে পারে। তবে User Temp Script-এর Target Validation ইচ্ছাকৃতভাবে শুধু বর্তমান User Temp Folder অনুমোদন করে।
System Temp-এর জন্য আলাদা Script ব্যবহার করলে Path Hard-code এবং কঠোর Allowlist প্রয়োজন।
উদাহরণ:
ALLOWED_PATHS = {
Path(tempfile.gettempdir()).resolve(),
Path(r"C:\Windows\Temp").resolve(),
}
তারপর Target Path Allowlist-এর মধ্যে আছে কি না পরীক্ষা করতে হবে।
তবে সাধারণ ব্যবহারকারীর জন্য C:\Windows\Temp Automation না করাই নিরাপদ। Windows Storage Sense বা Temporary Files Settings ব্যবহার করুন।
একাধিক Temp Folder Target করা কি নিরাপদ?
শুধু পরিচিত ও যাচাই করা Folder ব্যবহার করলে সম্ভব।
উদাহরণ:
• Current User Temp
• নির্দিষ্ট Software-এর Official Cache Folder
• নিজের Application-এর Temporary Export Folder
• নিজের তৈরি Build Cache Folder
নিচের Folder Automation দিয়ে পরিষ্কার করবেন না:
• Downloads
• Desktop
• Documents
• Pictures
• Program Files
• ProgramData
• AppData সম্পূর্ণ
• Windows
• System32
• WinSxS
• Windows Installer
• Browser Profile সম্পূর্ণ
• OneDrive Sync Folder
প্রতিটি Software Cache-এর নিজস্ব Cleanup Option থাকলে সেটিই ব্যবহার করা ভালো।
খালি Folder কেন আলাদাভাবে Delete করা হয়েছে?
File Delete করার পর অনেক Empty Directory থেকে যেতে পারে। Scriptটি Bottom-up Order-এ Folder Scan করে, যাতে আগে File এবং Subfolder Process হয়, তারপর Empty Parent Folder Remove করা যায়।
কোনো Folder খালি না থাকলে Script সেটি Delete করবে না।
os.walk-এ topdown=False ব্যবহার করার কারণ
Directory Tree নিচ থেকে ওপরে Process না করলে Parent Folder-এর ভেতরে Child Folder থাকা অবস্থায় Parent Delete করা যায় না।
topdown=False ব্যবহার করলে:
১. ভেতরের File Process হয়
২. Child Folder পরীক্ষা হয়
৩. শেষে Parent Folder পরীক্ষা হয়
এটি Empty Folder Removal-এর জন্য উপযুক্ত।
Symbolic Link Skip করা কেন জরুরি?
Symbolic Link বা Junction অন্য Folder-এর দিকে নির্দেশ করতে পারে। Script Link Follow করলে Target Temp Folder-এর বাইরের File ভুল করে Process হতে পারে।
এ কারণে Script:
• followlinks=False ব্যবহার করে
• File Link Skip করে
• Directory Link Skip করে
• Target Folder Resolve করে যাচাই করে
এই নিরাপত্তা ব্যবস্থা না থাকলে Recursive Cleanup ঝুঁকিপূর্ণ হতে পারে।
shutil.rmtree কেন ব্যবহার করা হয়নি?
shutil.rmtree একটি সম্পূর্ণ Directory Tree Recursiveভাবে Delete করতে পারে। Python Documentation অনুযায়ী এটি শক্তিশালী Directory Removal Function এবং ভুল Path ব্যবহার করলে বড় ক্ষতি হতে পারে।
Temp Folder-এর ভেতরের সব Directory একবারে Remove না করে এই Script:
• প্রতিটি File আলাদাভাবে যাচাই করে
• File Age পরীক্ষা করে
• Locked File Skip করে
• শুধু Empty Directory Remove করে
ফলে Cleanup ধীর হতে পারে, কিন্তু নিয়ন্ত্রণ বেশি থাকে।
Script Test করার নিরাপদ পদ্ধতি
প্রথমে আসল Temp Folder নয়, একটি Test Folder তৈরি করে Logic পরীক্ষা করা ভালো।
উদাহরণ:
C:\TempCleanerTest
এখানে কিছু Dummy File তৈরি করুন। তারপর Script-এর Allowlist সাময়িকভাবে Test Folder-এর জন্য পরিবর্তন করুন।
Testing শেষ হলে আবার শুধু tempfile.gettempdir() Allow করুন।
Production Script-এ Arbitrary Command-line Folder Input না রাখাই নিরাপদ। এতে ভুল Path দেওয়ার ঝুঁকি কমে।
Test File তৈরি করার Python Code
Test Folder তৈরি করতে:
from pathlib import Path
test_folder = Path(r"C:\TempCleanerTest")
test_folder.mkdir(exist_ok=True)
for number in range(1, 6):
file_path = test_folder / f"test_{number}.tmp"
file_path.write_text("Temporary test file", encoding="utf-8")
print("Test files created.")
তবে এই Test Folder মূল Script-এর নিরাপদ Allowlist-এ না থাকলে Cleaner সেটি Reject করবে।
Batch File দিয়ে Script চালান
Task Scheduler-এ Command সহজ করতে run_temp_cleaner.bat নামে File তৈরি করুন:
@echo off
cd /d "C:\Scripts\TempCleaner"
py temp_cleaner.py --days 14 --delete --log "C:\Scripts\TempCleaner\temp_cleanup.log"
exit /b %errorlevel%
Folder Structure:
C:\Scripts\TempCleaner\temp_cleaner.py
C:\Scripts\TempCleaner\run_temp_cleaner.bat
Path-এর মধ্যে Space থাকলে Double Quote ব্যবহার করুন।
Batch File Double-click করে পরীক্ষা করুন। Script ঠিকভাবে চললে পরে Task Scheduler-এ যোগ করুন।
Python Executable Path খুঁজুন
Command Prompt-এ লিখুন:
where python
অথবা:
where py
Output-এ Python Launcher বা Executable Path দেখা যাবে।
Task Scheduler-এ Python Directly ব্যবহার করতে চাইলে এই Path প্রয়োজন হতে পারে।
Task Scheduler দিয়ে Auto-clean Schedule করুন
Windows Task Scheduler নির্দিষ্ট সময় বা Event অনুযায়ী Program ও Script চালাতে পারে।
ধাপ ১: Task Scheduler খুলুন
১. Start Menu খুলুন।
২. Task Scheduler লিখুন।
৩. Task Scheduler App চালু করুন।
ধাপ ২: নতুন Task তৈরি করুন
১. ডান পাশ থেকে Create Task নির্বাচন করুন।
২. General Tab-এ Name দিন:
Python Temp Auto Cleaner
৩. Description লিখুন:
Deletes old files from the current user's Temp folder and creates a cleanup log.
৪. Run only when user is logged on নির্বাচন করলে Testing সহজ হয়।
৫. System Temp পরিষ্কার না করলে Run with highest privileges সাধারণত প্রয়োজন নেই।
ধাপ ৩: Trigger তৈরি করুন
১. Triggers Tab খুলুন।
২. New চাপুন।
৩. Begin the task থেকে On a schedule নির্বাচন করুন।
৪. Daily অথবা Weekly নির্বাচন করুন।
৫. উপযুক্ত সময় দিন।
৬. Enabled চালু রাখুন।
৭. OK চাপুন।
সাধারণ Computer-এর জন্য Weekly Schedule যথেষ্ট।
ধাপ ৪: Action তৈরি করুন
Batch File ব্যবহার করলে:
১. Actions Tab খুলুন।
২. New চাপুন।
৩. Action থেকে Start a program নির্বাচন করুন।
৪. Program/script-এ লিখুন:
C:\Scripts\TempCleaner\run_temp_cleaner.bat
৫. Start in-এ লিখুন:
C:\Scripts\TempCleaner
৬. OK চাপুন।
Python Directly চালাতে Program/script-এ Python Executable এবং Add arguments-এ Script Option দেওয়া যায়।
উদাহরণ:
Program/script:
C:\Users\UserName\AppData\Local\Programs\Python\Python313\python.exe
Add arguments:
"C:\Scripts\TempCleaner\temp_cleaner.py" --days 14 --delete --log "C:\Scripts\TempCleaner\temp_cleanup.log"
Start in:
C:\Scripts\TempCleaner
নিজের Computer-এর Python Path ব্যবহার করুন।
ধাপ ৫: Conditions সেট করুন
Conditions Tab-এ:
• Laptop হলে Start the task only if the computer is on AC power রাখতে পারেন
• Computer ঘুমিয়ে থাকলে Wake the computer to run this task প্রয়োজন অনুযায়ী নির্বাচন করুন
• Network Connection এই Script-এর জন্য প্রয়োজন নেই
ধাপ ৬: Settings সেট করুন
Settings Tab-এ:
• Allow task to be run on demand চালু করুন
• Run task as soon as possible after a scheduled start is missed চালু করতে পারেন
• If the task fails, restart every Option প্রয়োজন অনুযায়ী দিন
• If the task is already running, Do not start a new instance নির্বাচন করুন
একই Script-এর একাধিক Instance একসঙ্গে চলা এড়ানো ভালো।
Task পরীক্ষা করুন
১. Task Scheduler Library খুলুন।
২. Python Temp Auto Cleaner Task খুঁজুন।
৩. Right-click করুন।
৪. Run নির্বাচন করুন।
৫. Last Run Result পরীক্ষা করুন।
৬. temp_cleanup.log File খুলুন।
৭. Temp Folder ও C Drive Space পরীক্ষা করুন।
Last Run Result 0x0 হলে সাধারণত Task সফল হয়েছে।
Task Scheduler কাজ না করলে
নিচের বিষয়গুলো পরীক্ষা করুন:
• Python Path সঠিক কি না
• Script Path সঠিক কি না
• Start in Folder দেওয়া আছে কি না
• Batch File Manualভাবে চলছে কি না
• Log Folder বিদ্যমান কি না
• User Account-এর Permission আছে কি না
• Task History Enabled কি না
• Computer Schedule-এর সময় বন্ধ ছিল কি না
• Argument-এর Quote সঠিক কি না
Task Scheduler থেকে Relative Path এড়িয়ে Absolute Path ব্যবহার করুন।
Administrator Permission কখন লাগবে?
শুধু বর্তমান User Temp Folder পরিষ্কার করলে সাধারণত Administrator Permission লাগে না।
Administrator Permission প্রয়োজন হতে পারে যদি:
• C:\Windows\Temp Target করেন
• অন্য User-এর Temp Folder পরিষ্কার করেন
• Protected System Location Target করেন
• Permission-restricted File থাকে
যত কম Permission দিয়ে Script চলে, নিরাপত্তা তত ভালো। অপ্রয়োজনীয়ভাবে Highest Privileges ব্যবহার করবেন না।
Recycle Bin-এ পাঠাবেন নাকি Permanently Delete করবেন?
Path.unlink() ব্যবহার করলে File সাধারণত Recycle Bin-এ না গিয়ে সরাসরি Delete হয়।
Temp File-এর ক্ষেত্রে এটি গ্রহণযোগ্য হতে পারে। কিন্তু Dry Run ছাড়া Script চালানো উচিত নয়।
Recycle Bin-এ পাঠাতে Third-party Library ব্যবহার করতে হতে পারে। তবে Automation-এর জন্য অতিরিক্ত Dependency ও Recycle Bin Growth তৈরি হতে পারে।
Conservative Age Limit এবং Log File রাখাই বেশি ব্যবহারিক।
কত দিনের পুরোনো Temp File Delete করা ভালো?
সাধারণ ব্যবহার অনুযায়ী:
• ১ দিন: বেশি Aggressive
• ৩ দিন: সতর্কতার সঙ্গে ব্যবহারযোগ্য
• ৭ দিন: সাধারণ Cleanup
• ১৪ দিন: তুলনামূলক নিরাপদ
• ৩০ দিন: খুব Conservative
Computer-এ Software Installation, Video Editing বা Development কাজ বেশি হলে ১৪ বা ৩০ দিন ব্যবহার করা ভালো।
Script Defaultভাবে ৭ দিন ব্যবহার করে। প্রয়োজনে Default Value ১৪ করতে পারেন।
প্রতি কত দিন পর Script চালাবেন?
সাধারণ ব্যবহার:
• Weekly: অধিকাংশ ব্যবহারকারীর জন্য যথেষ্ট
• Daily: প্রচুর Temporary File তৈরি হলে
• Monthly: হালকা ব্যবহার হলে
• Startup: সাধারণত প্রয়োজন নেই
• Login: প্রতিবার চালালে অপ্রয়োজনীয় Disk Activity হতে পারে
Weekly Schedule এবং ১৪ দিনের Age Limit একটি ভারসাম্যপূর্ণ Configuration।
C Drive Space আগে ও পরে Log করা
Script-এ Disk Space Measurement যোগ করা যায়।
Import List-এ shutil যোগ করুন:
import shutil
Cleanup-এর আগে:
before = shutil.disk_usage(target)
logging.info("Free space before: %s", format_size(before.free))
Cleanup-এর পরে:
after = shutil.disk_usage(target)
logging.info("Free space after: %s", format_size(after.free))
logging.info(
"Actual free-space increase: %s",
format_size(max(0, after.free - before.free)),
)
Python-এর shutil.disk_usage Function Drive-এর Total, Used ও Free Storage Byte হিসেবে ফেরত দেয়।
Script Email বা Notification পাঠাতে পারে কি?
সম্ভব, তবে প্রথম Version-এ File Cleanup ও Logging সীমিত রাখা ভালো।
Windows Notification, Email বা Telegram Alert যোগ করলে:
• Credential নিরাপদে রাখতে হবে
• Network Error Handle করতে হবে
• Sensitive Path Log না করার বিষয় বিবেচনা করতে হবে
• Password Source Code-এ Hard-code করা যাবে না
প্রথমে Local Log এবং Task Scheduler Result ব্যবহার করুন।
JSON Report তৈরি করা
Cleanup Result Machine-readable Format-এ রাখতে JSON File ব্যবহার করা যায়।
উদাহরণ:
import json
from datetime import datetime
report = {
"run_time": datetime.now().isoformat(),
"deleted_files": deleted_files,
"deleted_directories": deleted_dirs,
"freed_bytes": freed_bytes,
"dry_run": dry_run,
}
with open("temp_cleanup_report.json", "w", encoding="utf-8") as file:
json.dump(report, file, indent=2)
এটি Dashboard বা Admin Panel-এর সঙ্গে ব্যবহার করা যেতে পারে।
কোন File Extension Delete করা হবে তা সীমিত করা
আরও Conservative Script চাইলে শুধু নির্দিষ্ট Extension Delete করুন।
উদাহরণ Allowlist:
ALLOWED_EXTENSIONS = {
".tmp",
".temp",
".log",
".bak",
}
File Process করার আগে:
if file_path.suffix.lower() not in ALLOWED_EXTENSIONS:
continue
তবে অনেক Temporary File-এর Extension নাও থাকতে পারে। তাই Extension Filter ব্যবহার করলে সব অপ্রয়োজনীয় File পরিষ্কার হবে না।
Extension-এর চেয়ে Folder Allowlist, File Age এবং Dry Run বেশি গুরুত্বপূর্ণ।
নির্দিষ্ট File বাদ দেওয়া
কিছু File Name Preserve করতে:
EXCLUDED_NAMES = {
"important-session.tmp",
"active-install.log",
}
Process করার আগে:
if file_path.name.lower() in EXCLUDED_NAMES:
logging.info("Excluded file: %s", file_path)
continue
নির্দিষ্ট Subfolder বাদ দিতে:
EXCLUDED_DIRS = {
"MyImportantApp",
}
os.walk-এর সময় dirs List থেকে সরিয়ে দিন:
dirs[:] = [
name for name in dirs
if name not in EXCLUDED_DIRS
]
Exclusion Name Software অনুযায়ী নির্ধারণ করুন।
Maximum Delete Limit যোগ করুন
ভুল Configuration-এ অতিরিক্ত File Delete ঠেকাতে Maximum Limit রাখা যায়।
উদাহরণ:
MAX_FILES_PER_RUN = 5000
MAX_BYTES_PER_RUN = 5 * 1024 * 1024 * 1024
File Process-এর সময়:
if deleted_files >= MAX_FILES_PER_RUN:
logging.warning(“Maximum file limit reached.”)
return deleted_files, deleted_dirs, freed_bytes
if freed_bytes >= MAX_BYTES_PER_RUN:
logging.warning(“Maximum size limit reached.”)
return deleted_files, deleted_dirs, freed_bytes
এতে একটি Run-এ অতিরিক্ত বড় Cleanup থেমে যাবে।
Free Space কম হলেই Script চালানো
শুধু C Drive Free Space নির্দিষ্ট সীমার নিচে গেলে Cleanup চালানো যায়।
উদাহরণ:
import shutil
usage = shutil.disk_usage(“C:\\”)
free_gb = usage.free / (1024 ** 3)
if free_gb > 20:
logging.info(“Cleanup skipped. Free space is %.2f GB.”, free_gb)
return
এতে ২০GB-এর বেশি Free Space থাকলে Script Cleanup Skip করবে।
তবে পুরোনো Temp File নিয়মিত পরিষ্কার করতে চাইলে এই Condition প্রয়োজন নেই।
Storage Sense এবং Python Script-এর পার্থক্য
Storage Sense:
• Windows Built-in
• সাধারণ ব্যবহারকারীর জন্য সহজ
• System Drive পরিচালনা করে
• Temporary Files ও Recycle Bin Cleanup করতে পারে
• Downloads আলাদাভাবে Configure করতে হয়
• Code Maintenance লাগে না
Python Automation:
• Custom Folder ও Rule ব্যবহার করা যায়
• File Age নির্বাচন করা যায়
• Detailed Log রাখা যায়
• Dry Run করা যায়
• Custom Reporting সম্ভব
• ভুল Code হলে Data Loss হতে পারে
• Python ও Task Scheduler Setup লাগে
শুধু C Drive-এর সাধারণ Temporary File পরিষ্কার করতে Storage Sense যথেষ্ট হতে পারে। Custom Business বা Technical Workflow-এর জন্য Python বেশি নমনীয়।
Temp File Delete করলে PC Speed বাড়বে কি?
Temp Cleanup-এর প্রধান সুবিধা হলো Storage খালি করা।
সম্ভাব্য সুবিধা:
• C Drive Free Space বাড়ে
• Low Disk Space Warning কমে
• কিছু Installer Error কমতে পারে
• Application Cache Corruption সমস্যা কমতে পারে
• Backup Size কমতে পারে
তবে Temp File Delete করলে:
• CPU দ্রুত হবে না
• RAM বাড়বে না
• GPU Performance বাড়বে না
• Game FPS উল্লেখযোগ্যভাবে বাড়বে না
• দুর্বল HDD ঠিক হবে না
Computer Slow হলে Startup App, RAM, Storage Health, Malware ও Temperatureও পরীক্ষা করুন।
Temp Folder-এর সব File Delete করা কি নিরাপদ?
সব সময় নয়।
ঝুঁকি হতে পারে:
• Pending Installation ব্যর্থ হওয়া
• Unsaved Application Session হারানো
• Software Cache পুনরায় তৈরি হওয়া
• First Launch ধীর হওয়া
• Log Data হারানো
• চলমান Software Error
সেই কারণে Scriptটি:
• পুরোনো File নির্বাচন করে
• নতুন File রেখে দেয়
• Locked File Skip করে
• Dry Run দেয়
• Log রাখে
Computer Restart-এর পর Cleanup চালালে চলমান Temp File কম থাকে।
Task Scheduler Trigger হিসেবে Startup ব্যবহার করবেন কি?
Startup Trigger-এ Script চালালে:
• Windows Boot ধীর হতে পারে
• Startup Software-এর Temp File ব্যবহারের সঙ্গে Conflict হতে পারে
• Permission ও Profile Path সমস্যা হতে পারে
Weekly Schedule বা User Login-এর কিছু সময় পরে Delay দিয়ে চালানো ভালো।
Task Scheduler-এ Delay Option থাকলে ৫–১৫ মিনিট Delay ব্যবহার করা যায়।
Sleep বা Shutdown-এর সময় চালানো উচিত কি?
Shutdown Script হিসেবে Temp Cleanup চালালে Shutdown বিলম্বিত হতে পারে। Force Shutdown হলে Log অসম্পূর্ণ হতে পারে।
নির্দিষ্ট Weekly Time বা On Idle Trigger বেশি উপযোগী।
Antivirus Script Block করলে
File Delete করা Script Antivirus-এর কাছে সন্দেহজনক মনে হতে পারে।
সমাধান:
• Script নিজে Review করুন
• Official Python ব্যবহার করুন
• Arbitrary Folder Input রাখবেন না
• Script Digitally Sign করার বিষয় বিবেচনা করুন
• Antivirus পুরোপুরি বন্ধ করবেন না
• শুধু বিশ্বস্ত Script Folder-এর জন্য সীমিত Exclusion বিবেচনা করুন
• Event Log ও Antivirus History পরীক্ষা করুন
Script EXE বানানোর আগে Source Code Version ব্যবহার করা বেশি স্বচ্ছ।
Python Script EXE করা কি প্রয়োজন?
না। Task Scheduler সরাসরি Python Script চালাতে পারে।
EXE করলে সুবিধা:
• Target PC-তে Python দরকার নাও হতে পারে
• Distribution সহজ হতে পারে
অসুবিধা:
• Antivirus False Positive
• File Size বড়
• Code Update কঠিন
• Source Review কম সহজ
• Packaging Tool Dependency
নিজের Computer-এর জন্য .py Script ব্যবহার করাই সহজ।
Cleanup Script Disable করার নিয়ম
Task Scheduler খুলে:
১. Task Scheduler Library নির্বাচন করুন।
২. Python Temp Auto Cleaner খুঁজুন।
৩. Right-click করুন।
৪. Disable নির্বাচন করুন।
সম্পূর্ণ সরাতে Delete নির্বাচন করতে পারেন।
Script File Delete করার আগে Scheduled Task Disable করুন।
Cleanup Undo করা যাবে কি?
Path.unlink() দিয়ে Delete করা File সাধারণত Recycle Bin-এ যায় না। তাই সহজ Undo নেই।
Recovery-এর সম্ভাবনা বাড়াতে:
• ভুল Cleanup হলে Drive ব্যবহার বন্ধ করুন
• নতুন File Copy করবেন না
• Recovery Software অন্য Drive থেকে চালান
• Backup পরীক্ষা করুন
এই কারণেই Dry Run বাধ্যতামূলকভাবে আগে চালানো উচিত।
যেসব কাজ করা উচিত নয়
• shutil.rmtree(tempfile.gettempdir()) দিয়ে পুরো Temp Folder Delete করা
• User Input থেকে যেকোনো Folder Path গ্রহণ করা
• Path Validation ছাড়া Recursive Delete করা
• followlinks=True ব্যবহার করা
• Windows বা System32 Target করা
• Downloads Folder Auto-delete করা
• Age Filter ছাড়া সব File মুছে ফেলা
• Permission Error এড়াতে Force Delete Tool ব্যবহার করা
• Dry Run ছাড়া Scheduled Task চালু করা
• Log File না রাখা
• Administrator Permission অপ্রয়োজনীয়ভাবে ব্যবহার করা
• Business Computer-এ Backup ছাড়া Deploy করা
দ্রুত Setup Checklist
Python Script তৈরির আগে:
• Python Version পরীক্ষা করুন
• গুরুত্বপূর্ণ Data Backup নিন
• User Temp Folder Path দেখুন
• Script Folder তৈরি করুন
• Conservative Age Limit নির্বাচন করুন
Script Test করতে:
• python temp_cleaner.py চালান
• Dry Run Output পরীক্ষা করুন
• Log File পড়ুন
• অপ্রত্যাশিত File আছে কি না দেখুন
• তারপর –delete ব্যবহার করুন
Automation চালু করতে:
• Batch File তৈরি করুন
• Manualভাবে Batch File চালান
• Task Scheduler-এ Weekly Trigger দিন
• Absolute Path ব্যবহার করুন
• Start in Folder দিন
• Overlapping Run বন্ধ করুন
• প্রথম Scheduled Run-এর Log পরীক্ষা করুন
নিরাপদ Configuration:
• শুধু Current User Temp
• ১৪ দিনের পুরোনো File
• Weekly Schedule
• Dry Run দিয়ে Initial Test
• Symbolic Link Skip
• Locked File Skip
• Log File Enabled
• Maximum Delete Limit
শেষ কথা
Python দিয়ে Temp Files Auto-clean Automation তৈরি করলে Windows-এর Temporary Folder নিয়মিত পরিষ্কার রাখা এবং C Drive-এর Storage নিয়ন্ত্রণ করা সহজ হয়। তবে File Deletion Automation অত্যন্ত সতর্কতার সঙ্গে তৈরি করতে হয়।
সবচেয়ে নিরাপদ পদ্ধতি হলো শুধু বর্তমান User-এর Temp Folder Target করা, নির্দিষ্ট দিনের চেয়ে পুরোনো File নির্বাচন করা, Symbolic Link Skip করা এবং প্রথমে Dry Run চালানো। Script ঠিকভাবে কাজ করছে নিশ্চিত হওয়ার পর Task Scheduler দিয়ে Weekly Schedule করা যেতে পারে।
সাধারণ ব্যবহারকারীর জন্য Windows Storage Sense যথেষ্ট হতে পারে। কিন্তু Detailed Log, Custom Age Rule, Storage Report এবং নির্দিষ্ট Cleanup Policy দরকার হলে Python Automation বেশি কার্যকর।
Downloads, Documents, Windows, System32, Program Files বা সম্পূর্ণ AppData Folder কখনো এই ধরনের Automatic Cleanup Script-এর Target করবেন না। একটি ছোট Path Validation Error বড় Data Loss ঘটাতে পারে।

