ตรวจสอบว่าไฟล์อยู่ในกระบวนการของการเขียน?
ฉันต้องการปรับใช้กระบวนการอัตโนมัติ (ผ่านสคริปต์ cron 1 นาที) ที่ค้นหาไฟล์ tar ในไดเรกทอรีที่ระบุ หากพบไฟล์ tar ไฟล์นั้นจะถูก untarred ไปยังตำแหน่งที่เหมาะสมจากนั้นไฟล์ tar จะถูกลบ ไฟล์ tar จะถูกคัดลอกไปยังเซิร์ฟเวอร์นี้โดยอัตโนมัติผ่าน SSH จากเซิร์ฟเวอร์อื่น ในบางกรณีไฟล์ tar มีขนาดใหญ่มากพร้อมไฟล์จำนวนมาก ปัญหาที่ฉันคาดว่าจะพบ: หากใช้เวลา> 1 นาทีเพื่อให้คัดลอกไฟล์ tar ไปยังเซิร์ฟเวอร์และสคริปต์ cron ทำงานทุก ๆ นาทีก็จะเห็นไฟล์. tar.gz และลองทำ untar มันแม้ว่าไฟล์ tar ยังอยู่ในขั้นตอนการเขียน มีวิธีใดบ้าง (ผ่านคำสั่ง bash) เพื่อทดสอบว่าไฟล์นั้นกำลังถูกเขียนไปหรือไม่หรือเป็นเพียงไฟล์บางส่วนเท่านั้น? อีกทางเลือกหนึ่งที่ฉันคิดว่าคือการคัดลอกไฟล์เป็นนามสกุลไฟล์อื่น (เช่น.tar.gz.part) แล้วเปลี่ยนชื่อเป็น.tar.gzหลังจากการถ่ายโอนเสร็จสมบูรณ์ แต่ฉันคิดว่าฉันพยายามที่จะคิดออกว่ามีเพียงวิธีการตรวจสอบว่าไฟล์ทั้งหมดที่บรรทัดคำสั่งแรก ... เบาะแสใด ๆ …