borg list
hanya mendukung arsip daftar, barchive, waktu dan id untuk arsip. Namun, ketika saya misalnya melihat saya membutuhkan ruang dan ingin menghapus arsip besar (misalnya karena https://github.com/borgbackup/borg/issues/2870), saya ingin melihat ikhtisar tentang semua ukuran arsip untuk temukan yang terbesar dan berpotensi menghapusnya.
Saya tahu saya dapat borg info
setiap arsip, tetapi ini membutuhkan waktu dan tidak nyaman untuk dilakukan untuk banyak arsip.
Tentu saja, saya hanya tertarik pada "ukuran duplikat" dari "arsip ini".
Tetapi jika Anda mau, Anda juga dapat menjumlahkan nilainya (atau bagaimana Anda melakukannya) dan menampilkan baris "ukuran semua arsip: XY GB" di bagian bawah.
Mungkin Anda perlu men-cache informasi ini entah bagaimana/di suatu tempat, tetapi ini harus dimungkinkan, karena, biasanya, ukuran arsip tidak berubah sehingga cache tidak pernah kedaluwarsa (kecuali arsip dihapus).
Sampai saat ini, infrastruktur yang diperlukan untuk ini tidak ada - saya menambahkannya (ke cabang master) ketika saya menerapkan placeholder "komentar" untuk borg list <repo>
. Sekarang dapat menghitung hal-hal sesuai permintaan dan tidak hanya menampilkan data dari entri manifes, seperti sebelumnya.
Namun, ketahuilah bahwa menghitung apa pun yang perlu membaca seluruh metadata arsip akan lambat, terutama. jika daftar menunjukkan banyak arsip dan/atau repo diakses melalui koneksi yang lambat.
borg info -a '*'
, borg info --last/first x
borg info -a '*'
Menarik bahwa ini mungkin, tetapi sebagian besar lambat.
Namun, ketahuilah bahwa menghitung apa pun yang perlu membaca seluruh metadata arsip akan lambat, terutama. jika daftar menunjukkan banyak arsip dan/atau repo diakses melalui koneksi yang lambat.
Ya, itu sebabnya saya berkata: Tidak bisakah Anda menyimpan fakta ini?
Menarik bahwa ini mungkin, tetapi sebagian besar lambat.
_Ukuran terdeduplikasi_ harus dihitung, dan tidak dapat di-cache — jadi ini akan selalu agak lambat, meskipun #2764 membuatnya lebih cepat.
Berharap untuk fitur ini sendiri, saya menampar ini (secara teknis :wink:) satu baris bersama untuk mendapatkan daftar arsip seperti yang saya inginkan:
printf 'Archive\t\t\t\t\tOrig\tComp\tDedup\n'; printf '%-32.32s\t%s\t%s\t%s\n' $(borg info --json --sort-by name --glob-archives '*' REPO | jq '.archives[] | "\(.name) \(.stats.original_size) \(.stats.compressed_size) \(.stats.deduplicated_size)"' | sed --expression='s/^"//;s/"$//' | numfmt --field='2-4' --to=iec)
Ini menggunakan jq
untuk memformat JSON dan numfmt
dari coreutils
untuk membuat ukuran dapat dibaca manusia. Hasilnya terlihat seperti ini (dipangkas menjadi kumpulan garis yang representatif):
Archive Orig Comp Dedup
hostname-home-20190613-090600 288G 92G 12K
hostname-home-20190613-091013 288G 92G 117K
hostname-home-20190617-005337 220G 61G 6.9M
hostname-home-20190617-022904 288G 92G 16M
hostname-home-20190617-225658 288G 92G 40K
hostname-sysconfig-20190617-023108 12M 3.2M 40K
hostname-sysconfig-20190617-225820 12M 3.2M 32K
hostname-sysconfig-20190618-144623 12M 3.2M 105K
hostname-sysconfig-20190621-224259 13M 3.3M 110K
hostname-system-20190613-081754 300G 97G 20M
hostname-system-20190613-091212 300G 97G 14M
hostname-system-20190618-144635 300G 97G 37M
hostname-system-20190621-224311 308G 98G 4.6M
hostname-system-20190621-230350 308G 98G 617K
Dengan hanya 39 kecepatan arsip tidak masalah, tapi saya rasa melakukannya dengan --last 1
sebagai bagian dari proses pencadangan dan menyimpan ini dalam log terpisah untuk berkonsultasi sesuai permintaan akan menjadi cara untuk menggunakannya dalam praktik.
Komentar yang paling membantu
Berharap untuk fitur ini sendiri, saya menampar ini (secara teknis :wink:) satu baris bersama untuk mendapatkan daftar arsip seperti yang saya inginkan:
Ini menggunakan
jq
untuk memformat JSON dannumfmt
daricoreutils
untuk membuat ukuran dapat dibaca manusia. Hasilnya terlihat seperti ini (dipangkas menjadi kumpulan garis yang representatif):Dengan hanya 39 kecepatan arsip tidak masalah, tapi saya rasa melakukannya dengan
--last 1
sebagai bagian dari proses pencadangan dan menyimpan ini dalam log terpisah untuk berkonsultasi sesuai permintaan akan menjadi cara untuk menggunakannya dalam praktik.