Я пробую эту команду
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)