Dem*_*nes 2 command-line bash backup cp
我有一个小 bash 脚本要检查系统今天是否已备份,如果没有,则将整个文件系统复制到备份文件夹中:
date=$(date +"%m%d%y")
sudo mkdir -p "/backups/system/$date"
sudo cp -r "/" "/backups/system/$date"
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我输入它时,它给了我这些错误:
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
Run Code Online (Sandbox Code Playgroud)
(这并不意味着您可以备份它们)
从技术上讲,一切都不是文件(我不是专家)。但是,有些文件夹是特殊的,因为它们不是真正的文件夹。/proc只是其中之一。它是一个包含运行时文件信息的虚拟文件系统。换句话说,它的内容随着系统运行而不断变化。您不应该尝试备份它。
其它这样的文件夹/sys,/mnt,/media,/run和/dev。/sys就像/proc是另一个虚拟文件系统,它为正在运行的内核的变量提供窗口,因此您不想尝试备份或恢复它们。/dev是一个 tmpfs,其内容由 动态创建和删除udev,因此您也不想备份或恢复它。同样,/run是一个 tmpfs,它保存有关不需要备份的正在运行的系统的变量。本段改编自Backup Your System/TAR。
一般来说,复制/不是一个好主意。注意,/backups/system/$date也是/. 因此,您可能最终会在王国到来之前烘烤备份,或者您的磁盘空间不足。
希望这可以帮助