Advanced Copy – CP Komutu ve Progress Bar
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYO3kLzX' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
http://mylinuxbook.com/advanced-copy-cp-command/ adresinde cp ve mv komutunun, kopyalama ya da taşıma işlemine ait gidişatı gösteren bir progress bar'a sahip patch'li bir versiyonu var. Aşağıda örnek bir çıktısı olan araç özellikle büyük dosya ve dizin kopyalama işlerinde durumu, ekstra bir araç ya da komuta ihtiyaç duymadan takip edebilmek açısından epey kullanışlı.
1469 files copied so far... 130.2 MiB / 298.7 MiB [|||||||||||||||||||||||||||||------------------------------------] 43.6 % Copying at 23.4 MiB/s (about 0h 0m 31s remaining) BigFolder/automation/delegates/class-list.jpeg 1.5 MiB / 2.0 MiB [|||||||||||||||||||||||||||||||||||||||||||||||------------------] 75.0 %
Aşağıda advanced-copy'nin nasıl kurulup kullanılabileceği ile ilgili notlar mevcut.
İlgili aracın pre-compiled versiyonu bulunuyor; yani download edip paketi açmak yeterli oluyor. Fakat geliştiricisinin önerdiği şekilde kaynak koddan derlemek uyumluluk açısından daha iyi olacaktır.
Aslında kaynak koddan derlemek, GNU coreutils source paketindeki cp ve mv'ye patch geçip yeniden derlemekten ibaret. Bu şekilde sistemde kurulu bulunan default cp ve mv'nin yanı sıra progress bar özelliği olan ikinci cp ve mv binary'lerine sahip oluyorsunuz.
CentOS 6.4 bir sistemde derleme ve kurulum adımları şu şekilde.
Compile işlemini non-root bir kullanıcı ile yapmamız gerekiyor ancak öncelikli olarak (özellikle minimal kurulmuş bir CentOS'unuz varsa,) root kullanıcısı üzerinden gerekli paketleri kuralım:
$ su root -c "yum install gcc patch"
Ardından gnu.org'dan coreutils kaynak kodlarını indirip paketi açıyoruz. (Şu an itibari ile son sürüm coreutils 8.21'dir. Yeni sürüm olup olmadığını kontrol etmenizi öneririm.)
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz $ tar xvJf coreutils-8.21.tar.xz
Sonrasında da coreutils dizinine geçip patch'i download ediyoruz: (Aynı şekilde patch'in yeni sürümü olup olmadığını da kontrol edin.)
$ cd coreutils-8.21 $ wget http://zwicke.org/web/advcopy/advcpmv-0.5-8.21.patch
ve patch'i geçip derleme ve make işlemini yapıyoruz:
$ patch -p1 -i advcpmv-0.5-8.21.patch $ ./configure $ make
Bu şekilde patch'li cp ve mv binary'leri src/ dizininin altında oluşturulur.
Son olarak ilgili binary'leri sistemdeki orjinal cp ve mv ile karışmasın diye isimleri acp ve amv olacak şekilde daha jenerik bir yere kopyalayalım:
$ su root -c "cp src/cp /usr/local/bin/acp; cp src/mv /usr/local/bin/amv"
Ayrıca, default olarak progress bar ile çalıştırılacak şekilde birer de alias ekleyelim:
$ echo "alias acp='/usr/local/bin/acp -g'" >> ~/.bashrc $ echo "alias amv='/usr/local/bin/amv -g'" >> ~/.bashrc $ source ~/.bashrc
Daha detaylı bilgi için http://beatex.org/web/advancedcopy.html adresine göz atabilirsiniz.
Bu yazılar da ilginizi çekebilir:
- Bash History’sine Tarih ve Saat Bilgisi Eklemek
- MySQL Replication durumunu bir script ile check etmek
- Update: openSSL 1.0 TSA Özelliği – 5651’a Uygun Log İmzalamak
- iotop İle Disk Aktivitesini Görüntülemek | I/O Monitoring
- SU Error – su: not running setuid
Yorumlar
Trackbacks
Yorumda bulunun.
Çok yararlı bir bilgi, terminalden korkmayanların başucu bir komut olacak. Teşekkürler.
[Cevapla]
Progress bar ve yarida kalan dosyalarda kaldigi yerden devam etme ozelliklerini cURL de desteklemekte. cURL ile kopyalama islemi yapmak icin :
http://www.omnigia.com/news/content/resuming-file-copy-operation
adersine bakabilirsiniz.
Yalniz birden fazla dosyayi destekleyip desteklemedigini tam olarak bilemiyorum.
[Cevapla]