ค้นหาไฟล์ที่มีการเว้นวรรคที่แก้ไขใน 60 วันที่ผ่านมาและ tar.gz ในไฟล์ที่มีขนาดไม่ใหญ่กว่านั้นและ 4GB ด้วยวันที่


1

ฉันรักษาไฟล์เซิร์ฟเวอร์ ฉันต้องการสำรองไฟล์ที่มีการเปลี่ยนแปลงในช่วงเวลาหนึ่ง

ก่อนอื่นฉันบีบอัดไฟล์ทุกอย่างเป็นไฟล์ 4GB และสำรองข้อมูลลงแผ่นดีวีดี แต่ 7z ที่ฉันใช้อยู่

7z a -t7z /home/user/myfiles051413_proj.7z /home/share/projects -v4000m -m0=bzip2 -mmt=4

ดูเหมือนจะไม่มีวิธีที่จะซิปไฟล์ที่แก้ไขใน 60 วันที่ผ่านมาและฉันไม่แน่ใจว่าจะส่งผ่านไปยังคำสั่ง sorta เช่นนี้ได้อย่างไร ฉันไม่ต้องการบีบอัดทั้งโฟลเดอร์และสำรองสิ่งที่สำรองไว้แล้ว! (เสียพื้นที่)

tar ดูเหมือนว่าจะทำงานได้ดีกับสิ่งนี้

find /home/share/projects -mtime -60

และการวางคำสั่งลงในคำสั่งก็ใช้งานได้เช่นกัน แต่ช่องว่างให้ปัญหาแก่ฉัน นี่คือคำสั่งที่ฉันพยายามจะทำงาน การค้นหาไฟล์ทั้งหมดที่แก้ไขใน 60 วันที่ผ่านมา จากนั้นทำการบีบอัดไฟล์เหล่านั้นเป็นไฟล์ 4GB

find /home/share/projects/ -mtime -60 | xargs tar -cvML 4194304 -f /home/user/myfiles`date '+%d%m%Y'_proj.tar`

ในขณะนี้มันจะทำงานชั่วขณะหนึ่งแล้วมีไฟล์ขนาดเล็กเพียงไฟล์เดียว มันพิมพ์ไฟล์จำนวนมากบนหน้าจอ!


ฉันได้เล่นกับ -print0

find /home/samba/shares/projects -mtime -60 -type f -print0| xargs tar -cvML 4194304 -f /home/samba/shares/bkup/`date '+%d%m%Y'_proj.tar` -T - --null

ฉันได้รับ tar จำนวนมาก: de: ไม่สามารถ stat: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


หากต้องการแก้ไขปัญหาเกี่ยวกับช่องว่างให้ใช้-print0ตัวเลือกในการค้นหา (และจับคู่ xargs ด้วย -0)
Hennes

คุณกำลังขาดหายไปตัวเลือกในการ-0 xargsนอกจากนี้หากคุณต้องการเพิ่มข้อมูลให้แก้ไขคำถามของคุณ นี่ไม่ใช่กระดานสนทนา หากคุณกำลังจะเพิ่มคำตอบเราคาดหวังให้คำตอบนั้น
Daniel Beck

คำตอบ:


0

คุณมีข้อผิดพลาดในสคริปต์สุดท้ายด้วย -print0

  1. คุณใช้ xargs ไม่ใช่ความคิดที่ดีเพราะมีไฟล์จำนวนมากที่ xargs รัน tar สองครั้งขึ้นไป
  2. คุณใช้สำหรับ tar -T - ตัวเลือก สิทธิ แต่สำหรับสถานการณ์นี้คือ xargs?

เพียงแค่ลบ xargs เพราะมันไม่จำเป็น สิ่งนี้จะดึงไฟล์ทั้งหมดจาก stdin และนำไปใช้เป็นอาร์กิวเมนต์ในตอนท้าย จากนั้นตัวเลือก tar-T จะไม่ได้รับอะไรเลยใน stdin ของเขา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.