linux命令备份文件 linux命令备份文件放当前目录

linux下备份一个目录下所有文件及目录,应该用什么命令?

这里教大家如何用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

linux下备份文件

一、使用tar命令进行备份:

tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下都采用tar进行文件整理和压缩。

/* 把/root整个目录进行压缩备份 */

# tar cvzf /tmp/root_backup_1215.tar.gz /root

那么就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。

说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是

基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。

同时,也很容易把已经打包压缩的文件进行恢复:

/* 从备份文件中进行还原 */

# tar tkvzf root_backup_1215.tar.gz

二、使用cpio备份存档:

cpio (copy in/out) 命令可以建立存档,跟tar不同之处在于,能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。

如果要备份root的文件,使用下列命令:

# find /root | cpio -o /tmp/root_backup_1215.cpio

cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:

# find *.tif | cpio -o /tmp/back.cpio

记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:

# find / -name '*.tif' | cpio -o /tmp/back_tif.cpio

同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:

# cpio -i back_tif.cpio

和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。

cpio命令还有一个优点是可以直接将文件发送给外部源。

例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:

# find /root | cpio -o - /dev/st0

# cpio -i /dev/st0

几种Linux常用备份方法

(1)使用tar命令备份数据的格式如下:

$ tar cvf backup.tar /home/html

上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar.

(2)使用tar命令恢复数据的格式如下:

$ tar xvf backup.tar

上述命令将备份文件backup.tar恢复到当前目录下。

Linux系统怎样备份与还原?

1、在保存备份文件的目录xxx下建立一个文件backup.sh,其内容是:

tar-zcfbin.tar.gz/bin

tar-zcfboot.tar.gz/boot

tar-zcfdev.tar.gz/dev

tar-zcfetc.tar.gz/etc

tar-zcflib32.tar.gz/lib32

tar-zcflib64.tar.gz/lib64

tar-zcflib.tar.gz/lib

tar-zcfopt.tar.gz/opt

tar-zcfsbin.tar.gz/sbin

tar-zcfselinux.tar.gz/selinux

tar-zcfsrv.tar.gz/srv

tar-zcfvar.tar.gz/var

tar-zcfusr.tar.gz/usr

2、在需要备份的时候进入到保存备份内容的目录执行一次命令:shbackup.sh

3、在保存备份文件的目录xxx下建立一个叫restore.sh的文件,其内容如下:

tar-zxf/mnt/xxx/bin.tar.gz

tar-zxf/mnt/xxx/boot.tar.gz

tar-zxf/mnt/xxx/dev.tar.gz

tar-zxf/mnt/xxx/etc.tar.gz

tar-zxf/mnt/xxx/lib32.tar.gz

tar-zxf/mnt/xxx/lib64.tar.gz

tar-zxf/mnt/xxx/lib.tar.gz

tar-zxf/mnt/xxx/opt.tar.gz

tar-zxf/mnt/xxx/sbin.tar.gz

tar-zxf/mnt/xxx/selinux.tar.gz

tar-zxf/mnt/xxx/srv.tar.gz

tar-zxf/mnt/xxx/var.tar.gz

tar-zxf/mnt/xxx/usr.tar.gz

4、如果需要系统恢复,我就用光盘启动,mount原来的根目录为yyy,接着mount保存备份文件的目录为xxx,接着进入到/mnt/yyy,并在此下达命令:sh/mnt/xxx/restore.sh

说明:

(1)、备份和恢复需要1个多小时,这个时间根据你电脑的CPU速度和硬盘转速会有所不同。

(2)、上面备份与恢复没有顾及/home目录和/root目录,因为我的系统主要是给学生做练习用的,那两个目录的内容没有意义。

在实际工作中,可能这两个目录才是最重要的,你可以模仿着别的目录添加到backup.sh和restore.sh文件中去,甚至别的目录都不备份(以便节约备份时间)就备份这两个目录。

(十六)Linux文件备份

1.Linux系统需要备份的数据

/root/目录:

/home/目录:

/var/spool/mail/目录:

/etc/目录:

其他目录:

数据备份的原则: 不要把鸡蛋放在同一个篮子里

2.安装服务的数据

apache需要备份的数据

配置文件

网页主目录

日志文件

mysql需要备份的数据

源码包安装的mysql:/usr/local/mysqld/data/

RPM包安装的mysql:/var/lib/mysql/

3.备份策略

完全备份: 完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的记录(需要更大的硬盘空间和时间)

增量备份: 第一天完全备份,第二天备份当天新增数据,第三天备份当天数据,即每次都是备份新增数据,每次备份后数据要进行压缩(需要较小的硬盘空间恢复麻烦)

差异备份: 第一天完全备份,第二天备份当天新增数据,第三天备份相比原始备份新增数据,即每次都是备份与原始数据相比的新增数据(比完全备份需要的空间小一点,比增量备份恢复容易一点)

1.dump命令

dump [选项] 备份之后的文件名 原文件或目录

选项

-level                    就是我们说的0-9十个备份级别

-f 文件名              指定备份之后的文件名

-u                          备份成功之后,把备份时间记录在/etc/dumpdates文件

-v                          显示备份过程中更多的输出信息

-j                          调用bzib库压缩备份文件,其实就是把备份文件压缩为.bz2格式

-W                        显示允许被dump的分区的备份等级及备份时间

备份分区实例

dump -0uj -f /root/boot.bak.bz2 /boot/        备份命令,先执行一次完全备份,并压缩和更新备份时间

cat /etc/dumpdates                查看备份时间文件

cp install.log /boot/                复制日志文件到boot分区

dump -luj -f /root/boot.bak1.bz2              增量备份/boot分区,并压缩

dump -W                  查询分区的备份时间及备份级别的

备份文件或目录实例

dump -0j /root/etc.dump.bz2 /etc/        完全备份/etc/目录,只能使用0级别进行完全备份,而不再支持增量备份

注意: dump只能针对分区做增量备份,对文件或目录不能进行增量备份

2.restore命令

restore [模式选项] [选项]

模式选项:restore命令常用的模式有一下四种,这四个模式不能混用

-C            比较备份数据和实际数据的变化

-i             进入交互模式,手工选择需要恢复的文件

-t             查看模式,用于查看备份文件中拥有哪些数据

-r             还原模式,用于数据还原

选项

-f            指定备份文件的文件名

比较备份数据和实际数据的变化

mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak

把boot目录中内核镜像文件改个名字

restore -C -f /root/boot.bak.bz2

restore发现内核镜像文件丢失

查看模式

restore -t -f boot.bak.bz2

还原模式

还原boot.bak.bz2分区备份

mkdir boot.test

cd boot.test/

先还原完全备份的数据

restore -r -f /root/boot.bak.bz2

再恢复增量备份的数据

restore -r -f /root/boot.bak1.bz2

还原/etc/目录的备份etc.dump.bz2

restore -r -f etc.dump.bz2

还原etc.dump.bz2备份


分享标题:linux命令备份文件 linux命令备份文件放当前目录
文章源于:http://abwzjs.com/article/dosscoi.html