Назад | Перейти на главную страницу

Получение ошибок при резервном копировании всего centos с помощью tar

Я пробую эту команду

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

и я получаю эту ошибку. Я пробовал дважды

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

что мне нужно сделать, чтобы сделать полную резервную копию

Дело в том, что tar работает успешно, но выводит предупреждение о том, что эти файлы сокетов игнорируются.

GNU tar на самом деле предоставляет возможность подавлять предупреждения. Вы можете игнорировать ошибки «сокет игнорируется», используя приведенную ниже команду, которая позволяет избежать выполнения команды поиска, выполнение которой может занять много времени.

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

Эта ссылка содержит более подробную информацию

Обратите внимание, что ваш tar команда успешно завершается; он просто жалуется на записи сокета. Tiffany предлагает механизм фильтрации этих конкретных сообщений об ошибках, хотя tar все равно выйдет с кодом ошибки.

Вы также можете передать список сокетов в tarс -X возможность исключить их из резервной копии, например:

# 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

Преимущество этого метода в том, что он делает tarкод выхода более полезен (то есть вы можете использовать код выхода, чтобы решить, успешно ли выполнено резервное копирование).

Вы также можете сократить свою командную строку, заменив другую --exclude варианты с одним -X (он же --exclude-from) и просто перечислил их в файле.

Сокеты - это файлы нулевого уровня, которые используются процессами-демонами для связи друг с другом. Они создаются и уничтожаются по мере необходимости при запуске и остановке демонов. Их можно смело игнорировать.

Вы всегда можете избавиться от них с помощью tar <my_options> 2> >(grep -v 'socket ignored' >&2)