cp проблемы с копированием рута

У меня есть небольшой 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
2
задан 3 April 2015 в 18:14

2 ответа

Проигнорируйте их. Вы пытаетесь скопировать файлы от /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 также.

2
ответ дан 3 April 2015 в 18:14

В Linux все - файл

(Который не означает, что можно создать резервную копию их),

Технически все не файлы (я не эксперт). Однако некоторые папки являются особенными в том смысле, что они не реальные папки. /proc только один из них. Это - виртуальная файловая система, которая содержит информацию о файле во время выполнения. Другими словами, его содержание продолжает изменяться, когда система работает. Вы не должны пытаться создать резервную копию его.

Другие такие папки /sys, /mnt, /media, /run и /dev . /sys как /proc другая виртуальная файловая система, которые обеспечивают окна в переменные рабочего ядра, таким образом, Вы не хотите пытаться скопировать или восстановить их. /dev tmpfs, содержание которого создано и удалено динамично udev, таким образом, Вы также не хотите копировать или восстанавливать его. Аналогично, /run tmpfs, который содержит переменные о рабочей системе, которым не нужно сохраненный. Этот абзац адаптирован от Резервного копирования Ваша Система/TAR.

В общем копировании / не хорошая идея.Примечание, /backups/system/$date также часть /. Таким образом, можно закончить тем, что пекли резервное копирование, пока королевство не прибывает, или у Вас заканчивается дисковое пространство.

Надеюсь, это поможет

7
ответ дан 3 April 2015 в 18:14

Другие вопросы по тегам:

Похожие вопросы: