У меня есть небольшой bash-скрипт, который собирается проверить, была ли резервная копия создана сегодня, а если нет, то копирует всю файловую систему в папку резервных копий:
date=$(date +"%m%d%y")
sudo mkdir -p "/backups/system/$date"
sudo cp -r "/" "/backups/system/$date"
Моя проблема что, когда я вхожу в это, это дает мне следующие ошибки:
cp: error reading ‘/proc/1/task/1/mem’: Input/output error
cp: failed to extend ‘/backups/system/040315/proc/1/task/1/mem’: Input/output error
cp: error reading ‘/proc/1/task/1/clear_refs’: Invalid argument
cp: failed to extend ‘/backups/system/040315/proc/1/task/1/clear_refs’: Invalid argument
Проигнорируйте их. Вы пытаетесь скопировать файлы от /proc
, который и бессмыслен и не будет работать, как Вы видели. Те - в основном файлы во время выполнения vreated ОС. Нет никакой потребности или причины иметь резервные копии таких файлов.
Так, простой подход должен просто проигнорировать ошибки. Можно также остановить их появляющийся путем перенаправления вывода ошибок к /dev/null
:
sudo cp -r / "/backups/system/$date" 2>/dev/null
А более сложный подход должен был бы определить каталоги, которые Вы хотите скопировать. Например:
sudo cp -r /lib /usr /mnt /bin /opt /lib64 /tmp /home /sbin /media /etc /root /boot /var "/backups/system/$date"
Те - те, Вы заботитесь о. Вам, вероятно, не нужно /mnt
или /media
также.
(Который не означает, что можно создать резервную копию их),
Технически все не файлы (я не эксперт). Однако некоторые папки являются особенными в том смысле, что они не реальные папки. /proc
только один из них. Это - виртуальная файловая система, которая содержит информацию о файле во время выполнения. Другими словами, его содержание продолжает изменяться, когда система работает. Вы не должны пытаться создать резервную копию его.
Другие такие папки /sys
, /mnt
, /media
, /run
и /dev
. /sys
как /proc
другая виртуальная файловая система, которые обеспечивают окна в переменные рабочего ядра, таким образом, Вы не хотите пытаться скопировать или восстановить их. /dev
tmpfs, содержание которого создано и удалено динамично udev
, таким образом, Вы также не хотите копировать или восстанавливать его. Аналогично, /run
tmpfs, который содержит переменные о рабочей системе, которым не нужно сохраненный. Этот абзац адаптирован от Резервного копирования Ваша Система/TAR.
В общем копировании /
не хорошая идея.Примечание, /backups/system/$date
также часть /
. Таким образом, можно закончить тем, что пекли резервное копирование, пока королевство не прибывает, или у Вас заканчивается дисковое пространство.
Надеюсь, это поможет