UNIX/Linux 如何备份目录和文件

时间:2019-11-20 08:54:06  来源:igfitidea点击:

如何使用dump命令备份系统到磁带库或者远程服务器中?
在使用dump备份文件系统时,如何排除某些目录和文件?
在带库备份时,如何不备份某些目录?

FreeBSD nodump和dump标识

chflags命令按照标志操作数指定的方式修改列出文件的文件标志:

  • nodump:设置nodump标志
  • dump:清除nodump标志

如何查看FreeBSD UFS文件系统上的dump标识

查看/var/cache/squid目录中的dump标识

# ls -ldo /var/cache/squid/

输出示例

drwxr-xr-x  11 root  wheel  - 512 Jun  7 14:51 /var/cache/squid/

在dump备份时,排除/var/cache/squid /目录

执行以下命令:

# chflags nodump /path/to/dir
# chflags nodump /var/cache/squid
# ls -ldo /var/cache/squid

输出示例:

drwxr-xr-x  2 root  wheel  nodump 512 Jun 7 14:51 /var/cache/squid/

删除标志,执行:

# chflags dump /var/cache/squid
# ls -ldo /var/cache/squid

输出示例:

drwxr-xr-x  11 root  wheel  - 512 Jun  7 14:51 /var/cache/squid/

现在,要将/var文件系统全量备份到/dev/sa0磁带,执行:

# /sbin/dump -0uLf /dev/sa0 /var

如果要进行增量备份,执行:

# /sbin/dump -1uLf /dev/sa0 /var

默认情况下,0级备份(全量备份)不能排除文件。

-h选项指定在哪个级别以上才能使用nodump标志。
默认值是1,也就是说默认只有增量备份才能使用nodump标志。

如果我们想全备也可以使用nodump标志。那么语法如下:

# /sbin/dump -h0 -0ulf /dev/sa0 /var

Linux dump程序的d属性

在Linux内核2.5.19及更高版本才可以使用d属性。
设置了d属性的文件或目录不备份。

可以使用chattr命令设置此属性。

查看d属性

要查看文件的属性,使用lsattr命令:

# lsattr -d /path/to/file
# lsattr -d /var/spool/squid

输出示例:

------------------- /var/spool/squid/

设置d属性

使用chattr命令设置d属性,如下所示:

# chattr +d /var/spool/squid
# lsattr -d /var/spool/squid/

输出示例:

------d------------ /var/spool/squid/

要清除d属性,执行:

# chattr +d /var/spool/squid
# lsattr -d /var/spool/squid/

输出示例:

------------------- /var/spool/squid/

要从0级开始备份(全备),例如:

# /sbin/dump -0u -f /dev/st0 /var