Получение ошибок при резервном копировании целых Centos с помощью tar

10

Я пытаюсь эту команду

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

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

user1865341
источник

Ответы:

14

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

Вы также можете кормить список сокетов tar«S -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) и просто перечислив их в файл.

larsks
источник
я должен исключить /runтакже?
ar2015
стандартная ошибка find / -type s -print > /tmp/sockets-to-excludeдолжна быть куда-то перенаправлена ​​(например, /dev/null), в противном случае найдите жалобы на то, что некоторые файлы, созданные во время поиска, не существуют.
Хавьер Ариас
16

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

GNU tar фактически предоставляет возможность подавления предупреждений. Вы можете игнорировать ошибки "socket ignore", используя приведенную ниже команду, которая позволяет избежать запуска команды find, выполнение которой может занять много времени.

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

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

Аравинт С
источник
9

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

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

Тиффани Уокер
источник
я не понял, ты имеешь в виду, что, игнорируя сокеты, мой tar будет работать нормально, не выходя из системы
user1865341