이 명령을 시도하고 있습니다
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)