tar를 사용하여 전체 centos를 백업하는 동안 오류가 발생 함 ignored tar: /var/spool/postfix/private/defer: socket ignored tar: /var/spool/postfix/private/virtual:

이 명령을 시도하고 있습니다

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명령이 성공적으로 완료되고; 소켓 항목에 대해서만 불평합니다. 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는 성공적이지만 해당 소켓 파일이 무시된다는 경고를 출력합니다.

GNU tar는 실제로 경고를 억제하는 옵션을 제공합니다. 완료하는 데 시간이 오래 걸릴 수있는 find 명령을 실행하지 않는 아래 명령을 사용하여 “소켓 무시 됨”오류를 무시할 수 있습니다.

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

이 링크에는 자세한 내용이 있습니다


답변

소켓은 데몬 프로세스가 서로 통신하기 위해 사용하는 0 레벨 파일입니다. 데몬이 시작 및 중지 될 때 필요에 따라 생성 및 삭제됩니다. 안전하게 무시할 수 있습니다.

당신은 항상 그들을 제거 할 수 있습니다 tar <my_options> 2> >(grep -v 'socket ignored' >&2)