首先切换到root用户下,执行sudo su
成都创新互联-专业网站定制、快速模板网站建设、高性价比洛龙网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式洛龙网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖洛龙地区。费用合理售后完善,10年实体公司更值得信赖。
并执行cd / 切到跟路径下,再按下面执行操作
执行命令df -h
查看分区磁盘情况,一些没有作用的分区可以不用备份的。比如说mnt,一般都是挂载的光驱文件,还有media等。
使用命令 tar cvpzf backup.tgz --exclude=/data --exclude=/datafile /
还是要根据自己的实际情况来选择舍弃,先分析一下你的各分区大小,在看看备份的路径分区大小够不够。我这里是将不用的datafile和data分区舍弃了,备份的文件名backup.tgz存放路径是“/”路径(因为足够大,就索性全备了)
ps:“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
执行命令后,linux就立即开始了备份作业,备份过程截图备份完成后有如下的一个警告提示,应该是不影响的。
我们来看看备份的最终成果吧,在“/”路径下执行命令:ls -l
可以看到备份的文件backup.tgz了
也可以用命令df -h看看/根目录分区的使用状态,比未备份前少了8%,约7G左右
这里教大家如何用find、xargs和tar命令完成上面的功能。
建立一个测试环境,新建几个文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下来,通过find命令找出指定后缀的文件,为了支持多个后缀文件,find命令用到了正则匹配
# find . -type f -regex ".*\.\(php\|js\|css\)"
./b.js
./a.php
./c.css
-regex后面的参数看起来很复杂,其实很简单,我来做个解释,双引号就不需要解释了吧
.*\.\(php\|js\|css\) 简化一下就是.*.(php|js|css),其实就是对.()|做了下转义而已,开头的.*匹配除换行符外的任意字符(这个懂正则表达式的应该都明白)
找出文件后,就是如何备份这些文件了,tar需要指定源文件,怎么获取find出来的这些文件,并传给tar呢,xargs的作用就来了。看到下面xargs输出的是什么了吧,这个正是tar需要的。
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否备份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
(1)使用tar命令备份数据的格式如下:
$ tar cvf backup.tar /home/html
上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar.
(2)使用tar命令恢复数据的格式如下:
$ tar xvf backup.tar
上述命令将备份文件backup.tar恢复到当前目录下。
Linux dump命令用于备份文件系统。
dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
语法:
dump[-cnu][-0123456789][-b
区块大小][-B区块数目][-d密度][-f设备名称][-h层级][-s磁带长度][-T日期][目录或文件系统]或dump[-wW]
参数:
-0123456789 备份的层级
-b区块大小 指定区块的大小,单位为KB
-B区块数目 指定备份卷册的区块数目
-c 修改备份磁带预设的密度与容量
-d密度 设置磁带的密度,单位为BPI
-f设备名称 指定备份设备
-h层级 当备份层级等于或大于指定的层级时,将不备份用户标示为nodump的文件
-n 当备份工作需要管理员介入时,向所有operator群组中的使用者发出通知
-s磁带长度 备份磁带的长度,单位为英尺
-T日期 指定开始备份的时间与日期
-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等
-w 与-W类似,但仅显示需要备份的文件
-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。
用于备份的Tar
备份工具Tar是以前备份文件的可靠方法,几乎可以工作于任何环境中,Linux老用户一般都信赖它。 Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。tar是从Tape ARchiver备份工具起步的。包含在Linux中的GNU tar工具简便易用,包含了一个用来压缩的选项,且支持不断增加的备份。tar是一个命令行的工具,没有图形界面。使用Konsole或Kvt打开一个终端窗口,接下来是一个简单的备份命令: $tar cvf - /home /temp/backup.tar
这个命令在/tmp目录中创建一个backup.tar的文件,/home目录中所有内容都包含在其中。接下来可以把tar文件拷贝到备份磁盘中。使用简单备份时,如果要使用压缩功能,改为下面命令: $tar czvf - /home /tmp/backup.tgz
上面扩展名. tgz指出这是一个压缩文件。下一个例子可以用来直接备份到一个安装好的Jaz驱动器中,但这样做要确定有足够的空间: $tar czvf /mnt/jaz/backup.tgz - /home
对于一个磁带驱动器,使用设备名称: $tar czvf /dev/st0/backup.tgz - /home
如果有一个备份非常大,可以使用多卷选项。但是,这样做就不能使用压缩。当第一个磁盘或磁带填满后,tar将提示插入另一张: $tar cvMf /dev/st0/5mar2000.tar -home
要恢复备份使用下面的命令,以Jaz磁盘为例: $tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能参数。此外还有很多可选参数,本文不再详述。
表1备份工具tar可以用crontab工具设置成基于时间的有规律地运行。例如,每晚2点把/home目录备份到SCSI磁带驱动器中,只要将下面语句添加到root的crontab中即可: 00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用于备份的Cpio
GNU cpio工具像tar一样从命令提示行启动程序。与tar相比cpio更复杂,但是也更为可靠。因为如果一个tar文件中某处有一个坏块,就不能对备份文件的其它部分进行访问,而使用cpio,只有坏块不能被访问。cpio创建一个称为copy-out mode的备份,备份存档中包含了文件和所有者、时间及访问许可等信息。cpio需要一个假定要备份的文件列表。创建列表的一个最方便的方法就是使用ls命令。例如,要把/home目录备份到SCSI磁带设备中,输入下面的命令: $ls /home | cpio -o /dev/st0
也可以使用find命令。它包括许多选项可以用来消减被存档文件的数量。例如,下面的命令对所有在上一个2 4小时内修改过的文件进行存档: $find /home -mtime 1 -type f -print | cpio -o /dev/st0
copy - in模式把文件从备份存档中解出来。下面的命令会恢复前两个备份例子中的所有文件: $cpio -i /dev/st0
你也可以对cpio的备份进行计划,用crontab工具设置成基于任何时间的有规律地运行。例如,要在每晚2点把/ home目录备份到SCSI磁带驱动器中,把下面的语句添加到root的crontab文件中即可: 00 02 * * * ls /home | cpio -o /dev/st0
实体机无法做快照、如果出现系统异常或者数据损坏、后果严重 、要重做系统、还会造成数据丢失、所以我们可以使用备份和恢复技术。
Linux的备份和恢复很简单、有两种方式:
1、把需要的文件(或者分区)用TAR打包就行、下次需要恢复的时候、再解压开覆盖即可
2、使用dump和restore命令
如果linux上没有dump和restore指令、需要先安装
基本介绍
dump支持分卷和增量备份
通过dump命令在配合crontab可以实现无人值守备份
基本介绍
restore命令用来恢复已备份的文件、可以从dump生成的备份文件中恢复原文件
基本语法