Występują błędy podczas tworzenia kopii zapasowej całego centos za pomocą tar

10

Próbuję tego polecenia

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

i otrzymuję ten błąd. Próbowałem dwa razy

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

co muszę zrobić, aby wykonać pełną kopię zapasową

użytkownik1865341
źródło

Odpowiedzi:

14

Pamiętaj, że Twoje tarpolecenie kończy się powodzeniem; po prostu narzeka na wpisy gniazd. Tiffany sugeruje mechanizm odfiltrowywania tych konkretnych komunikatów o błędach, chociaż tarnadal wychodzi z kodem błędu.

Można też karmić listę gniazd do tar„s -Xopcji, aby je wykluczyć z kopii zapasowej, np:

# 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

Zaletą tej techniki jest to, że sprawia tar, że kod wyjścia jest bardziej przydatny (to znaczy, możesz użyć kodu wyjścia, aby zdecydować, czy kopia zapasowa zakończyła się powodzeniem).

Możesz także skrócić swój wiersz poleceń, zastępując inne --excludeopcje jednym -X(aka --exclude-from) i po prostu umieszczając je w pliku.

Larsks
źródło
powinienem również wykluczyć /run?
ar2015
standardowy błąd find / -type s -print > /tmp/sockets-to-excludepowinien zostać gdzieś przekierowany (np. /dev/null), w przeciwnym razie znajdź skargi, że niektóre pliki utworzone podczas wyszukiwania nie istnieją.
Javier Arias,
16

Faktem jest, że tar jest udany, ale wypisuje ostrzeżenie, że te pliki gniazd są ignorowane

GNU tar faktycznie zapewnia opcję tłumienia ostrzeżeń. Możesz zignorować błędy „gniazdo zignorowane” za pomocą poniższego polecenia, co pozwala uniknąć wykonywania polecenia find, którego wykonanie może zająć dużo czasu.

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

Ten link zawiera więcej szczegółów

Aravinth C
źródło
9

Gniazda to pliki o zerowym poziomie, które są używane przez procesy demonów do komunikowania się ze sobą. Są tworzone i niszczone w razie potrzeby, gdy demony zaczynają się i kończą. Można je bezpiecznie zignorować.

Zawsze możesz się ich pozbyć tar <my_options> 2> >(grep -v 'socket ignored' >&2)

Tiffany Walker
źródło
nie rozumiem, czy masz na myśli to, że ignorując gniazda, moja smoła będzie działać
poprawnie