180GB ile klasörü yeniden adlandırmak riskli mvmi?
Biz bir klasör var /data180GB içerir.
Biz adlandırmak istediğiniz /dataklasörü /BD_FILESile mvkomuta.
Bunu yapmak güvenli mi?
180GB ile klasörü yeniden adlandırmak riskli mvmi?
Biz bir klasör var /data180GB içerir.
Biz adlandırmak istediğiniz /dataklasörü /BD_FILESile mvkomuta.
Bunu yapmak güvenli mi?
Yanıtlar:
Aynı dosya sisteminde kalıyorsa, bir klasördeki adın değiştirilmesi güvenlidir.
Eğer bir bağlanma noktasıysa ( /databana bir bağlama noktası olabilir gibi görünüyor, bunu kontrol edin mount), o zaman verileri basit bir bölümden başka bir şey yapmanız gerekir, mvçünkü mv /data /BD_FILESverileri kök bölüme taşıyacaktır (bu ne olmayabilir) olmasını istersiniz).
Dosya sistemini çıkarmalı, şimdi boş dizini yeniden adlandırmalı, /etc/fstabbu dosya sistemi için yeni konumla güncelleştirmeli ve sonra yeniden adlandırılan konuma dosya sistemini yeniden yüklemelisiniz.
Diğer bir deyişle,
umount /datamv /data /BD_FILES( /BD_FILESvar olmadığı varsayılırsa , bu durumda, önce yoldan çıkarın)/etc/fstab, bağlama noktasını olarak /datadeğiştir/BD_FILESmount /BD_FILESBu, herhangi bir dosyanın kopyalanmasını içermez, sadece dosya sistemi için bağlama noktası görevi gören dizinin adını değiştirir.
Dizinin yeniden adlandırılması yeni bir dosya sistemine taşınmayı içeriyorsa ( başka /databir diskteyken bir diskte olması durumunda , /BD_FILESörneğin işleri daha büyük bir bölüme taşıyorsanız yapılacak genel bir şeydir) , Kopyanın uygun olup olmadığını kontrol edene kadar orijinali olduğu gibi bırakarak verileri kopyalamanızı tavsiye ederim. Bunu ile yapabilirsiniz
rsync -a /data/ /BD_FILES/
örneğin, bunun rsyncne yaptığını ve yapmadığını öğrenmek için el kitabına bakın (örneğin sabit bağlantıları korumaz).
Klasör yeniden adlandırıldıktan sonra, varolan yordamların (klasörü kullanan programlar ve kullanıcılar, yedeklemeler vb.) Ad değişikliğinin farkında olduğundan emin olmanız gerekir.
mvsadece bir renamesistem çağrısı yapmayı beklemesi riski vardır , ancak koşullar nedeniyle kişi dosyaları kopyalayıp orijinali silecektir. Sadece bir renamesistem çağrısı yapıldığından ve mvarkamdan "zekice" bir şey yapmayacağımdan emin olmam gerekirse bir Python kabuğu açıp kullanıyorum os.rename.
mkdir /BD_FILES && mount -M /data /BD_FILES && rmdir /data
rsyncyeniden başlatılabilir olmasıdır.
rsync -aneredeyse tüm meta verileri korur, ancak sabit bağlantıları, ACL'leri veya genişletilmiş özellikleri (buna ekleyin -HAX) korumaz .
renamefarklı davranışları olan farklı komutları vardır. Bunun renamene yapacağından emin olmak istediğinizde komutu kullanmamak için yeterli bir sebep olduğunu düşünüyorum .
Dizindeki her dosyayı yeniden adlandırmıyorsunuz , / içindeki bir dosyayı yeniden adlandırıyorsunuz . O yüzden:
Bu nedenle, kaç dosya veya ne kadar veri olursa olsun bir dizini yeniden adlandırmak önemsizdir.
Sadece yeniden adlandırırsanız (kaynak ve hedef aynı dosya sisteminde), bu sadece bir dizin girişinin yeniden adlandırılmasıdır. Başarılı olur ve dizinin yeni adı vardır veya başarısız olur, bu durumda hiçbir şey değişmez * .
Kaynak ve hedef farklı dosya sistemlerinde ise verilerin kopyalanması gerekir mv. Maksimum dosya boyutu, dosya adlarındaki sınırlamalar vb. Gibi dosya sistemi özelliklerindeki farklılıklar sorunlara neden olabilir. Sorunlardan kaçınmak için önce dosyaları kopyalayın ( cp,, rsync…) ve kopya başarıyla tamamlandıktan sonra, dosyaları orijinal konumundaki kaldırın.
* Ancak bazı köşe vakaları vardır, örneğin adam 2 yeniden adlandırmada HATA bölümünde
Diğerlerinin söylediği gibi, bir klasörü yeniden adlandırmak içerik için doğal bir risk oluşturmaz. Ancak dikkate almak isteyebileceğiniz farklı bir risk türü vardır.
Orijinal konuma başvuran mevcut yordamlar, komut dosyaları, kullanıcı tanımlı kısayollar ve yapılandırmalar bu değişiklikten dolayı bozulabilir ve örneğin yollar bir veritabanında depolanıyorsa, bunları güncellemek büyük bir iş olabilir.
Yapabileceğiniz bir şey, yeni dizin adı için sembolik bir bağlantı yapmaktır, ancak eski adı bir süre yerinde bırakın. Bu size bu değişikliğin etkisini değerlendirmek için zaman verecektir. Eski adı geçici olarak kaldırabilir, herhangi bir sorun olup olmadığını görebilir ve varsa, güncellenmesi gerekenleri anlarken insanların çalışmaya devam edebilmesi için eski adı yeniden oluşturabilirsiniz.
Bir komut böyle bir şeyi yapmalıdır:
ln -s /data /BD_FILES
mv thing1 thing2 ; ln --symbolic ./thing2 thing1. Bu şekilde yeni adı aldım ve symlink'i silerek eskisinin yokluğunu kolayca test edebilirim.
Yeniden adlandırma atomiktir. Tek makul risk, mvher şeyi bir nedenden dolayı kopyalamaya karar vermesi ve bunun yarısına kadar çökmesidir. GNU'nuz varsa mv, mv -Tbu riski ortadan kaldırır.
mv -Tmvbir klasöre taşınmadığını söyler ; bu da bunu yapmayı reddetmesine mkdir()neden olur ve bu da bir klasörü taşıdığında başarısız olmasına neden olur ve bir nedenle kopyalamaya karar verir.
mv -TYıllar önce yüksek lisans tezim üzerinde çalışırken hataları sallamaktaydım . Çok fazla kenar durumunda yanlış şeyi yapardı.
Öte yandan, kök bölümünde 180 GB kullanıcı verileriniz var. Muhtemelen bunu kök bölümünün dışına taşımak istiyorsunuz.
mvile-iseçeneği.