我不知道正确的术语,这可能是我在超级用户上找不到相关问题的原因。
我有一个备份脚本,可以将我的 Linux 服务器同步到远程位置。我的系统不是很大,因此备份所有内容是有意义的。但是,有些路径备份毫无意义,例如 /proc/*。
所以我将其排除在流程之外:
rsync -avzh -e "ssh -p 1234" --exclude="/proc" --exclude="/tmp" /
但我猜想 Linux 中还有更多这样的路径。是否有一个包含所有带有“虚拟”文件的 Linux 路径的列表?
答案1
这可能因系统而异,取决于分布、安装的软件和配置。
在终端窗口中输入mount
或。cat /etc/mtab
不是以 开头是/dev/*
指各种虚拟文件系统。此单行代码会过滤掉所有以上述模式开头的行:mount | grep -Ev '^/dev/'
。
示例输出:
$ mount | grep -Ev '^/dev/'
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=215485,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=310348k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1245520k)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
答案2
rsync
有一个选项-x
(又名--one-file-system
),它可以做很多你想要的事情:
rsync -ax / <somewhere>
这将备份根文件系统中存在的所有内容,但跳过单独安装的所有内容,包括/proc
、、等。它还将跳过任何已安装的 CD、SD 卡、网络驱动器等/dev
。/run
如果您的发行版使用 tmpfs,/tmp
那么它也会跳过该步骤,否则您仍需要手动执行该操作。同样,如果您的发行版不使用 udev,那么您也需要手动跳过该步骤/dev
。
相反,如果您/home
生活在单独的分区上,那么您需要单独备份它,因为-x
也会跳过它。