Belirli bir dizinde tar dosyalarını arayan otomatik bir işlem (1 dakika cron betiği aracılığıyla) dağıtmam gerekiyor. Eğer bir tar dosyası bulunursa, uygun yere bir tartar kalmaz ve ardından tar dosyası silinir.
Katranlı dosyalar otomatik olarak bu sunucuya SSH üzerinden başka bir sunucudan kopyalanır. Bazı durumlarda, tar dosyaları çok fazla dosyayla birlikte oldukça büyüktür.
Çalıştırmayı umduğum sorun: tar dosyasının sunucuya kopyalanması> 1 dakika sürerse ve cron betiği her dakika çalıştırıldığında, .tar.gz dosyasını görmeye ve yapmaya çalışacak tar dosyasını hala yazma sürecinde olmasına rağmen, untar.
Bir dosyanın halihazırda yazılı olup olmadığını veya sadece kısmi bir dosya olup olmadığını sınamak için (bash komutlarıyla) herhangi bir yolu var mı?
Düşündüğüm bir alternatif, dosyanın farklı bir dosya uzantısı (gibi .tar.gz.part
) olarak kopyalanması .tar.gz
ve aktarım tamamlandıktan sonra yeniden adlandırılmasıydı . Ancak, dosyanın önce komut satırında tam olup olmadığını belirlemenin basit bir yolu olup olmadığını anlamaya çalışacağımı düşündüm ... Herhangi bir ipucu?
rsync
, aktarım sırasında geçici bir dosya adı kullanır (varsayılan olarak) ve yalnızca dosya tamamen aktarıldıktan sonra , onu asıl dosya adına yeniden adlandırır.