Mendapatkan kesalahan saat membuat cadangan seluruh centos dengan tar

10

Saya mencoba perintah ini

tar cvpzf /TEMP_BACKUPS/backup.tgz --exclude=/proc --exclude=/lost+found  --exclude=/tmp --exclude=/TEMP_BACKUPS --exclude=/mnt --exclude=/sys / > /TEMP_BACKUPS/mylog.txt

dan saya mendapatkan kesalahan ini. Saya sudah mencoba dua kali

tar: Removing leading `/' from member names
tar: /dev/log: socket ignored
tar: Removing leading `/' from hard link targets
tar: /selinux/policy: Cannot open: Invalid argument
tar: /var/spool/postfix/public/flush: socket ignored
tar: /var/spool/postfix/public/cleanup: socket ignored
tar: /var/spool/postfix/public/showq: socket ignored
tar: /var/spool/postfix/private/defer: socket ignored
tar: /var/spool/postfix/private/virtual: socket ignored
tar: /var/spool/postfix/private/proxywrite: socket ignored
tar: /var/spool/postfix/private/verify: socket ignored
tar: /var/spool/postfix/private/anvil: socket ignored
tar: /var/spool/postfix/private/lmtp: socket ignored
tar: /var/spool/postfix/private/bounce: socket ignored
tar: /var/spool/postfix/private/relay: socket ignored
tar: /var/spool/postfix/private/scache: socket ignored
tar: /var/spool/postfix/private/retry: socket ignored
tar: /var/spool/postfix/private/error: socket ignored
tar: /var/spool/postfix/private/rewrite: socket ignored
tar: /var/spool/postfix/private/tlsmgr: socket ignored
tar: /var/spool/postfix/private/local: socket ignored
tar: /var/spool/postfix/private/discard: socket ignored
tar: /var/spool/postfix/private/trace: socket ignored
tar: /var/spool/postfix/private/smtp: socket ignored
tar: /var/spool/postfix/private/proxymap: socket ignored
tar: /var/lib/mysql/mysql.sock: socket ignored
tar: /var/www/html/run/wsgi.1458.0.1.sock: socket ignored
tar: /var/www/html/run/wsgi.4861.1.1.sock: socket ignored
tar: /var/www/html/run/wsgi.1178.0.1.sock: socket ignored
tar: /var/www/html/run/wsgi.1179.0.1.sock: socket ignored
tar: /var/run/dbus/system_bus_socket: socket ignored
tar: /var/run/abrt/abrt.socket: socket ignored
tar: /var/run/rpcbind.sock: socket ignored
tar: /var/run/portreserve/socket: socket ignored
tar: /var/run/nscd/socket: socket ignored
tar: Exiting with failure status due to previous errors

apa yang harus saya lakukan untuk membuat cadangan penuh

pengguna1865341
sumber

Jawaban:

14

Perhatikan bahwa tarperintah Anda berhasil diselesaikan; itu hanya mengeluh tentang entri soket. Tiffany menyarankan mekanisme untuk memfilter pesan kesalahan tertentu, meskipun tarmasih akan keluar dengan kode kesalahan.

Anda juga bisa memberi makan daftar soket untuk tar's -Xpilihan untuk memiliki mereka dikeluarkan dari backup, misalnya:

# find / -type s -print > /tmp/sockets-to-exclude
# tar cvpzf /TEMP_BACKUPS/backup.tgz -X /tmp/sockets-to-exclude \
  --exclude=/proc --exclude=/lost+found  --exclude=/tmp \
  --exclude=/TEMP_BACKUPS --exclude=/mnt --exclude=/sys / > /TEMP_BACKUPS/mylog.txt

Keuntungan dari teknik ini adalah membuat tarkode keluar lebih berguna (yaitu, Anda dapat menggunakan kode keluar untuk memutuskan apakah cadangan berhasil diselesaikan).

Anda juga dapat memperpendek baris perintah dengan mengganti --excludeopsi lain dengan satu -X(alias --exclude-from) dan cukup mendaftar di file.

larsks
sumber
haruskah saya mengecualikan /runjuga?
ar2015
kesalahan standar find / -type s -print > /tmp/sockets-to-excludeharus diarahkan ke suatu tempat (misalnya, /dev/null), jika tidak, temukan keluhan bahwa beberapa file yang dibuat selama pencarian tidak ada.
Javier Arias
16

Faktanya adalah tar berhasil, tetapi mencetak peringatan bahwa file-file socket diabaikan

GNU tar sebenarnya menyediakan opsi untuk menekan peringatan. Anda bisa mengabaikan kesalahan "socket ignored" menggunakan perintah di bawah ini yang menghindari menjalankan perintah find yang bisa memakan waktu lama untuk diselesaikan.

tar --warning='no-file-ignored' -cpzf  backup_name.tar.gz  /folder_to_backup

Tautan ini memiliki detail lebih lanjut

Aravinth C
sumber
9

Soket adalah file level nol yang digunakan oleh proses daemon untuk berkomunikasi satu sama lain. Mereka diciptakan dan dihancurkan seperlunya ketika daemon mulai dan berhenti. Mereka dapat dengan aman diabaikan.

Anda selalu dapat menyingkirkan mereka tar <my_options> 2> >(grep -v 'socket ignored' >&2)

Tiffany Walker
sumber
saya tidak mengerti, maksud Anda dengan mengabaikan soket, apakah tar saya akan berjalan dengan baik tanpa keluar
user1865341