Rumah  >  Artikel  >  Tutorial sistem  >  Penggunaan lanjutan perintah tar Linux - data sandaran

Penggunaan lanjutan perintah tar Linux - data sandaran

WBOY
WBOYke hadapan
2024-02-12 22:10:02529semak imbas

Terdapat arahan tar yang kuat pada sistem Linux. tar pada asalnya direka untuk membuat sandaran pita (arkib pita), yang boleh menyandarkan fail dan direktori kepada pita dan mengekstrak atau memulihkan fail daripada pita. Kini, kita boleh menggunakan tar untuk menyandarkan data ke mana-mana medium storan. Ia ialah sandaran peringkat fail yang tidak perlu mempertimbangkan jenis sistem fail asas dan menyokong sandaran tambahan.

Linux tar命令高级用法——备份数据

1. Beberapa pilihan biasa

●-z, –gzip: Gunakan alat gzip (de)mampatan, akhiran biasanya .gz

●**-c, –buat: **pembungkusan tar, akhiran biasanya .tar

●**-f, –file=: ** diikuti dengan serta-merta dengan nama fail yang diperoleh selepas pembungkusan atau pemampatan

●**-x, –ekstrak: **Arahan membongkar, sepadan dengan -c

●-p: Kekalkan kebenaran dan sifat asal data sandaran

●**-g: **Fail syot kilat diikuti dengan sandaran tambahan

●**-C: **Nyatakan direktori untuk dinyahmampatkan

●**–kecualikan: **Kecualikan direktori atau fail yang tidak dibungkus, sokong padanan biasa

Lain-lain

●**-X, –exclude-from: **Senaraikan direktori atau fail yang akan dikecualikan dalam fail (gunakan apabila –exclude= lebih banyak)

●**-t, –senarai: **Senaraikan senarai fail dalam arkib sandaran, jangan muncul pada masa yang sama dengan -c, -x

●**-j, –bzip2: **Gunakan alat bzip2 (nyah)mampatan, akhiran biasanya .bz2

●**-P: **Kekalkan laluan mutlak, dan ia juga akan dinyahmampat secara automatik ke laluan mutlak apabila menyahmampat

●**-v: ** (de)proses pemampatan memaparkan proses pemprosesan fail, biasa digunakan tetapi tidak disyorkan untuk fail besar

2. Data sandaran tambahan (laman web)

Banyak sistem (aplikasi atau tapak web) menjana fail statik setiap hari Jika terdapat keperluan untuk sandaran tetap beberapa fail statik yang lebih penting, ia boleh dimampatkan dan disandarkan ke tempat yang ditetapkan melalui pembungkusan tar, terutamanya untuk beberapa jumlah fail yang. adalah agak besar. Dalam kebanyakan kes, anda juga boleh menggunakan pilihan -g untuk melakukan sandaran tambahan.

Sebaik-baiknya gunakan laluan relatif untuk direktori sandaran, iaitu, masukkan direktori akar yang perlu disandarkan

Kaedah contoh khusus adalah seperti berikut.

备份当前目录下的所有文件# tar -g /tmp/snapshot_data.snap -zcpf /tmp/data01.tar.gz .在需要恢复的目录下解压恢复# tar -zxpf /tmp/data01.tar.gz -C .

Pilihan

-g boleh difahami untuk mengambil gambar fail direktori semasa sandaran dan merekodkan maklumat seperti kebenaran dan atribut Jika /tmp/snapshot_data.snap tidak wujud semasa sandaran pertama, ia akan mencipta yang baharu dan membuat a. sandaran penuh. Apabila fail dalam direktori diubah suai, laksanakan perintah sandaran pertama sekali lagi (ingat untuk mengubah suai nama fail arkib seterusnya), dan fail yang diubah suai, termasuk kebenaran dan atribut, akan disandarkan secara berperingkat secara automatik berdasarkan fail syot kilat yang ditentukan oleh - g. Fail yang telah dipindahkan tidak akan disandarkan semula.

Selain itu, sila ambil perhatian bahawa pemulihan di atas adalah "pemulihan pemeliharaan", iaitu, fail dengan nama fail yang sama akan ditimpa dan fail yang telah wujud dalam direktori asal (tetapi tidak dalam fail sandaran) akan tetap dikekalkan. Jadi jika anda ingin memulihkan sepenuhnya fail sama seperti ia disandarkan, anda perlu mengosongkan direktori asal. Jika terdapat fail sandaran tambahan, anda perlu menggunakan kaedah yang sama untuk menyahmampat fail ini secara berasingan dan memberi perhatian kepada pesanan.

Berikut menunjukkan contoh yang lebih komprehensif, keperluannya ialah:

●Sandarkan direktori /tmp/data, tetapi kecualikan direktori cache dan fail sementara

●Memandangkan direktori agak besar (>4G), fail sandaran mesti dibahagikan kepada fail sandaran penuh (contohnya, setiap fail sandaran boleh sehingga 1G)

●Kekalkan semua kebenaran fail dan atribut, seperti kumpulan pengguna dan kebenaran membaca dan menulis

# cd /tmp/data

Buat sandaran penuh

# rm -f /tmp/snapshot_data.snap

# tar -g /tmp/snapshot_data.snap -zcpf – –exclude=./cache ./ | split -b 1024M – /tmp/bak_data$(date -I).tar.gz_

Selepas membelah, nama fail akan diikuti dengan aa, ab, ac,..., dan arkib sandaran terakhir di atas akan disimpan sebagai

bak_data2014-12-07.tar.gz_aa

bak_data2014-12-07.tar.gz_ab

bak_data2014-12-07.tar.gz_ac

Sandaran tambahan

Ia boleh menjadi arahan yang sama seperti sandaran penuh, tetapi perlu diingat bahawa jika anda membuat sandaran beberapa kali sehari, ia boleh menyebabkan nama fail pendua, yang akan menyebabkan

Pelaksanaan sandaran, kerana pemisahan masih akan dinamakan bermula dari aa, ab Jika jumlah penjanaan fail (pengubahsuaian) dalam sehari tidak terlalu besar, maka adalah disyorkan untuk tidak menambah bahagian tambahan

.

Pemprosesan pisah: (Jika ia mesti dipecah, tambahkan masa yang lebih terperinci pada nama fail seperti $(tarikh +%Y-%m-%d_%H))

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-07.tar.gz –exclude=./cache ./

Tambahan rizab pada hari berikutnya

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-08.tar.gz –exclude=./cache ./

Proses pemulihan

Pulihkan fail arkib sandaran penuh

Anda boleh memilih sama ada hendak mengosongkan direktori /tmp/data/ dahulu

# cat /tmp/bak_data2014-12-07.tar.gz_* |

Pulihkan fail arkib sandaran tambahan

$ tar –zxpf /tmp/bak_data2014-12-07.tar.gz -C /tmp/data/

$ tar –zxpf /tmp/bak_data2014-12-08.tar.gz -C /tmp/data/

Pastikan untuk memulihkan dalam susunan kronologi Peraturan nama fail berikut juga boleh menggunakan borang kad bebas di atas

Jika anda memerlukan sandaran biasa, seperti sandaran penuh sekali seminggu dan sandaran tambahan sekali sehari, anda boleh menggabungkannya dengan crontab.

3. Sandarkan sistem fail

Terdapat banyak cara untuk membuat sandaran sistem fail, seperti cpio, rsync, dump, tar Berikut adalah contoh membuat sandaran keseluruhan sistem Linux melalui tar.

Pertama sekali, terdapat beberapa direktori dalam Linux (CentOS di sini) yang tidak perlu disandarkan, seperti /proc, /lost+found, /sys, /mnt, /media, /dev, /proc, /tmp . Jika anda membuat sandaran ke pita/ Anda tidak perlu risau sangat tentang dev/st0, kerana saya membuat sandaran ke direktori /backup setempat, jadi saya juga perlu mengecualikan beberapa NFS atau direktori yang dipasang storan rangkaian.

Buat fail senarai pengecualian

# vi /backup/backup_tar_exclude.list

/sandaran

/proc

/hilang+dijumpai

/sys

/mnt

/media

/dev

/tmp

$ tar -zcpf /backup/backup_full.tar.gz -g /backup/tar_snapshot.snap –exclude-from=/backup/tar_exclude.list /

4.Perhatian

Apabila menggunakan tar untuk menyandarkan data atau sistem fail, anda perlu mempertimbangkan sama ada untuk memulihkan pada sistem asal atau sistem baharu yang lain.

●sandaran tar sangat bergantung pada atribut atime fail,

●Pengguna yang mempunyai fail ditentukan berdasarkan ID pengguna Pemulihan merentas mesin perlu mempertimbangkan bahawa pengguna yang sama mempunyai USERID yang sama

●Cuba untuk tidak menjalankan proses lain semasa proses sandaran dan pemulihan, kerana ini boleh menyebabkan data tidak konsisten

●Fail sambungan lembut dan keras boleh dipulihkan seperti biasa

Atas ialah kandungan terperinci Penggunaan lanjutan perintah tar Linux - data sandaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lxlinux.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam