เขียน shell Script รัน Linux ลบไฟล์ backup ที่อายุเกิน 7 วัน

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

เขียน shell Script รัน Linux ลบไฟล์ backup ที่อายุเกิน 7 วัน

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

เขียน shell Script รัน Linux ลบไฟล์ backup ที่อายุเกิน 7 วัน ใช้ได้กับ FreeBSD

โค้ด: เลือกทั้งหมด

nano rotate.sh 
ตั้งชื่อไฟล์เป็น rotate.sh

โค้ด: เลือกทั้งหมด

#!/bin/bash

find /home/*/backups/ -maxdepth 1 -type f -mtime +7 -delete
อธิบายคำสั่ง ค้นหาไฟล์ ใน folder /home/*/backups/ ทุกไฟล์
-maxdepth 1 คือไม่รวม folder ย่อย
- ค้นหาไฟล์ที่อายุเกิน 7 วัน และ ลบไฟล์นั้น

กำหนดให้รับไฟล์ rotate.sh ได้

โค้ด: เลือกทั้งหมด

chmod +x rotate.sh 
คำสั่งรัน FreeBSD

โค้ด: เลือกทั้งหมด

sh rotate.sh 
คำสั่งรัน บน Ubuntu

โค้ด: เลือกทั้งหมด

./rotate.sh 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: เขียน shell Script รัน Linux ลบไฟล์ backup ที่อายุเกิน 7 วัน

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้าต้องการค้นหาเฉพาะ ไฟล์ .gz
ให้ใช้ คำสั่งดังนี้

โค้ด: เลือกทั้งหมด

find /home/*/backups/ -maxdepth 1  -name "*.gz" -type f -mtime +7 -delete
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: เขียน shell Script รัน Linux ลบไฟล์ backup ที่อายุเกิน 7 วัน

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ประยุคต์ คำสั่ง หา folder ของ user ที่อยู่ในระบบ
สร้างไฟล์ .sh
ค้นหา user ที่อยู่ใน

โค้ด: เลือกทั้งหมด

/usr/local/directadmin/data/users/* 
แล้วเอาชื่อ user ไปค้นหาไฟล์ของ user นั้นที่อยู่ใน

โค้ด: เลือกทั้งหมด

/home/${USER}/backups 
แล้วลบไฟล์ backups ที่อายุเกิน 7 วันออกไป
โค้ดที่ใช้

โค้ด: เลือกทั้งหมด

for USER in $(cat /usr/local/directadmin/data/users/*/users.list | sort | uniq); do
	echo "${USER}";
	find /home/${USER}/backups -name "*.tar.gz" -type f -mtime +7 -delete
done;

ถ้าต้องการให้ script รันอัตโนมัต สามารถดูได้ตามวิธีนี้ crontab-cron-job


ปัญหาที่อาจเจอได้ตอนเขียน script นี้
Error line 3: $'\r': command not found
แนวทางแก้ไข
viewtopic.php?f=27&t=83317&p=246451#p246451
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 66