Отримання помилок під час створення резервного копіювання цілих центів за допомогою дьогтю


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команда успішно виконується; це просто скарги на записи сокета. Тіффані пропонує механізм фільтрації цих конкретних повідомлень про помилки, хоча 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), інакше знайти скарги на те, що деяких файлів, створених під час пошуку, не існує.
Хав'єр Аріас

16

Факт tar є успішним, але видає попередження про те, що ці файли сокетів ігноруються

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

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

У цих посиланнях є детальніше


9

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

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


я не розумів, чи ти маєш на увазі, що ігноруючи сокети, чи буде мій дьоготь нормально працювати без виходу
user1865341
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.