راهنمای کامل ایجاد Cronjob برای حذف خودکار فایل‌ها در لینوکس

برای ایجاد یک cronjob که به طور خودکار هر فایل یا پوشه‌ای را در مسیر مورد نظر شما حذف کند اگر بیشتر از دو روز از زمان ایجاد آن گذشته باشد، می‌توانید از دستور...

انتشار: , زمان مطالعه: 3 دقیقه
راهنمای کامل ایجاد Cronjob برای حذف خودکار فایل‌ها در لینوکس
دسته بندی: سیستم عامل تعداد بازدید: 160

راهنمای کامل ایجاد Cronjob برای حذف خودکار فایل‌ها در لینوکس

برای ایجاد یک cronjob که به طور خودکار هر فایل یا پوشه‌ای را در مسیر /var/www/html/temp/ حذف کند اگر بیشتر از دو روز از زمان ایجاد آن گذشته باشد، می‌توانید از دستور find در همراه با cron استفاده کنید. در اینجا یک نمونه دستور find آورده شده که می‌توانید در cronjob خود قرار دهید:

  1. ابتدا یک اسکریپت shell بسازید که این کار را انجام دهد. اسکریپت ممکن است به صورت زیر باشد:
#!/bin/bash
find /var/www/html/temp/ -type f -mtime +2 -delete
find /var/www/html/temp/ -type d -mtime +2 -exec rm -rf {} +
  • در این اسکریپت، دو خط وجود دارد:

    • خط اول هر فایلی را که بیشتر از دو روز از زمان آخرین تغییر آن گذشته، حذف می‌کند.
    • خط دوم به طور مشابه، هر پوشه‌ای را که بیشتر از دو روز از آخرین تغییر آن گذشته، به طور کامل حذف می‌کند.
  1. اسکریپت را ذخیره کرده و اجازه اجرا به آن بدهید:
chmod +x /path/to/script.sh
  1. برای افزودن این اسکریپت به cronjob، دستور crontab -e را اجرا کنید و خط زیر را به فایل crontab اضافه کنید تا اسکریپت هر روز در نیمه‌شب اجرا شود:
0 0 * * * /path/to/script.sh

این تنظیمات cronjob را به گونه‌ای پیکربندی می‌کند که اسکریپت شما هر روز در ساعت ۰۰:۰۰ (نیمه‌شب) اجرا شود و هر فایل یا پوشه‌ای که عمرش بیشتر از دو روز است را در مسیر مشخص شده حذف کند.

اگر می خواهید فایل هایی حذف شود که عمر آنها بیشتر یا کمتر از دو روز باشد به مثال های زیر توجه کنید :

حذف فایل‌هایی که عمرشان 10 دقیقه است:

#!/bin/bash
find /var/www/html/temp/ -type f -mmin +10 -delete
find /var/www/html/temp/ -type d -mmin +10 -exec rm -rf {} +

حذف فایل‌هایی که عمرشان 1 سال (365 روز) شده است:

#!/bin/bash
find /var/www/html/temp/ -type f -mtime +365 -delete
find /var/www/html/temp/ -type d -mtime +365 -exec rm -rf {} +

حذف فایل‌هایی که عمرشان 1 ماه (حدود 30 روز) است:

#!/bin/bash
find /var/www/html/temp/ -type f -mtime +30 -delete
find /var/www/html/temp/ -type d -mtime +30 -exec rm -rf {} +

حذف فایل‌هایی که عمرشان 1 هفته (7 روز) است:

#!/bin/bash
find /var/www/html/temp/ -type f -mtime +7 -delete
find /var/www/html/temp/ -type d -mtime +7 -exec rm -rf {} +

نکات مهم:

  • در این دستورات، -type f برای فایل‌ها و -type d برای دایرکتوری‌ها استفاده شده است.
  • گزینه -delete فایل‌ها را مستقیماً حذف می‌کند، در حالی که -exec rm -rf {} + برای حذف دایرکتوری‌ها و تمام محتویاتشان به کار می‌رود.
  • -mmin برای دقیقه و -mtime برای روز استفاده می‌شود، که +10 یا +365 نشان دهنده تعداد دقیقه‌ها یا روزهای گذشته از آخرین تغییر فایل یا پوشه است.

شما می‌توانید این اسکریپت‌ها را در سرور لینوکس خود ذخیره کنید و با دسترسی‌های لازم (مثلاً با دستور chmod +x script.sh) اجازه اجرا به آن‌ها بدهید.

 


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)