背景
有时候做linux服务器的升级或者程序的升级时,为了方便回滚或者数据的恢复,我们需要备份指定的文件或者目录,一般我们会将文件压缩放到指定目录,同时我们希望恢复时文件可以保留现有的所有权限和属性。
怎么做
压缩命令:
cd /shtest/backupdir && tar -czvpf test.tar.gz /apps/ctestst
恢复数据解压命令:
cd /shtest/backupdir && tar -xzvpf test.tar.gz -C /
上面的命令中, /shtest/backupdir是准备备份压缩文件的目录, test.tar.gz是准备备份的压缩文件的名字, /apps/ctestst是需要备份的目录。所以命令的解析为:
cd /shtest/backupdir && tar -czvpf test.tar.gz /apps/ctestst
进入/shtest/backupdir目录,将/apps/ctestst目录按保留文件原始所有属性的方式达成一个压缩包test.tar.gz。
cd /shtest/backupdir && tar -xzvpf test.tar.gz -C /
进入/shtest/backupdir目录, 将压缩包test.tar.gz里面的文件按保留文件原始所有属性的方式解压到根目录/里面。
注意这里是解压到根目录而不是解压到/apps/ctestst目录,因为我们打压缩包时不是进入对应目录打的,而是直接全目录(cd /shtest/backupdir && tar -czvpf test.tar.gz /apps/ctestst)打的,所以他会自动生成相关目录,我们只能解压到根目录。