tar를 사용하여 전체 centos를 백업하는 동안 오류가 발생 함


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

전체 백업을하려면 어떻게해야합니까

답변:


14

당신의 참고 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) 로 바꾸고 파일에 간단히 나열 하여 명령 줄을 단축 할 수도 있습니다.


나도 제외해야 /run합니까?
ar2015

의 표준 오류를 find / -type s -print > /tmp/sockets-to-exclude어딘가로 리디렉션해야합니다 (예 :) /dev/null. 그렇지 않으면 검색 중에 생성 된 일부 파일이 존재하지 않는 불만을 찾습니다.
Javier Arias

16

사실 tar는 성공적이지만 해당 소켓 파일이 무시된다는 경고를 출력합니다.

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

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

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


9

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

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


나는 이해하지 못했다, U 소켓을 무시함으로써 내 타르가 종료되지 않고
정상적으로
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.