linux磁带备份命令 linux 磁带备份

Linux下数据备份命令scp、rsync和后台运行

scp和rsync 均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速度较快。当小文件众多时,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。可根据需要这俩选其一实现文件复制。

创新互联公司主营雁塔网站建设的网络公司,主营网站建设方案,app软件开发,雁塔h5重庆小程序开发搭建,雁塔网站营销推广欢迎雁塔等地区企业咨询

scp 是secure copy的缩写,scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。

可以实现本地文件复制到远程服务器,也可以将远程文件复制到本地。

rsync 是remote sync的缩写。使用rsync备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已存在的数据和新数据的差异(默认规则是文件大小或修改时间有差异),只有数据不相同时才会把不相同的部分覆盖。在仅作增量数据的copy时比scp灵活。

一般CentOS默认安装rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安装。

单个冒号和双冒号的区别 :使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。

默认情况下,rsync只确保源文件的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持不同,并且不会删除文件。如果要使目标目录成为源目录的镜像副本,则使用--delete选项。可删除只存在目标目录,不存在于源目录的文件。

增量备份算是一个经常使用的场景了。两台服务器之间进行文件定期备份,无需所有文件都copy一遍,仅复制有变动的文件。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest 参数用来指定同步时的基准目录。

上面命令中, --link-dest 参数指定基准目录 /compare/path ,然后源目录 /source/path 跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录 /target/path 。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

一般服务器之间复制文件都比较大,为防止误操作,最好在后台运行。但因为需要和远程服务器之间的ssh通讯多是需要密码的,所以不能直接使用nohup 放置于后台。无论是scp还是rsync都可操作如下:

后台和前台任务的切换

scp不支持断点续传,挂起scp进程可能导致数据缺失。倾向于使用rsync。

如果有其他任务需要使用nohup后台运行,但执行时却忘记了使用nohup,也可参照此方法进行设置。

参考:1. Linux之scp命令及后台运行scp

Linux下磁带管理命令

为什么备份?

一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加。有了备份,你就有了从磁盘故障中恢复的能力。备份还可以帮助你抵御:意外的文件删除/文件或文件系统损坏/服务器完全毁坏,包括由于火灾或其他问题导致的同盘备份毁坏、硬盘或 SSD 崩溃、病毒或勒索软件破坏或删除文件、你可以使用磁带归档备份整个服务器并将其离线存储。

理解磁带文件标记和块大小

每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。同时,磁带设备可以由多种程序打开、写入数据、及关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。

磁带上的数据是如何存储的

所有的数据使用 tar 以连续磁带存储格式连续地存储。第一个磁带归档会从磁带的物理开始端开始存储(tar #0)。接下来的就是 tar #1,以此类推。

Unix 上的磁带设备名

/dev/rmt/0 或 /dev/rmt/1 或 /dev/rmt/[0-127] :Unix 上的常规磁带设备名。磁带自动倒回。

/dev/rmt/0n :以无倒回为特征,换言之,磁带使用之后,停留在当前状态等待下个命令。

/dev/rmt/0b :使用磁带接口,也就是 BSD 的行为。各种类型的操作系统比如 AIX,Windows,Linux,FreeBSD 等的行为更有可读性。

/dev/rmt/0l :设置密度为低。

/dev/rmt/0m :设置密度为中。

/dev/rmt/0u :设置密度为高。

/dev/rmt/0c :设置密度为压缩。

/dev/st[0-9] :Linux 特定 SCSI 磁带设备名。

/dev/sa[0-9] :FreeBSD 特定 SCSI 磁带设备名。

/dev/esa0 :FreeBSD 特定 SCSI 磁带设备名,在关闭时弹出(如果可以的话)。

磁带设备名示例

/dev/rmt/1cn 指明正在使用 unity 1,压缩密度,无倒回。

/dev/rmt/0hb 指明正在使用 unity 0,高密度,BSD 行为。

Linux 上的自动倒回 SCSI 磁带设备名:/dev/st0

Linux 上的无倒回 SCSI 磁带设备名:/dev/nst0

FreeBSD 上的自动倒回 SCSI 磁带设备名:/dev/sa0

FreeBSD 上的无倒回 SCSI 磁带设备名:/dev/nsa0

如何列出已安装的 scsi 磁带设备?

输入下列命令:

### Linux(更多信息参阅 man) ###

lsscsi

lsscsi -g

### IBM AIX ###

lsdev -Cc tape

lsdev -Cc adsm

lscfg -vl rmt*

### Solaris Unix ###

cfgadm –a

cfgadm -al

luxadm probe

iostat -En

### HP-UX Unix ###

ioscan Cf

ioscan -funC tape

ioscan -fnC tape

ioscan -kfC tape

mt 命令示例

在 Linux 和类 Unix 系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下:

mt -f /tape/device/name operation

设置环境

你可以设置 TAPE shell 变量。这是磁带驱动器的路径名。在 FreeBSD 上默认的(如果变量没有设置,而不是 null)是 /dev/nsa0。可以通过 mt 命令的 -f 参数传递变量覆盖它,就像下面解释的那样。

### 添加到你的 shell 配置文件 ###

TAPE=/dev/st1 #Linux

TAPE=/dev/rmt/2 #Unix

TAPE=/dev/nsa3 #FreeBSD

export TAPE

1:显示磁带/驱动器状态

mt status  ### Use default

mt -f /dev/rmt/0  status ### Unix

mt -f /dev/st0 status ### Linux

mt -f /dev/nsa0 status ### FreeBSD

mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1

你可以像下面一样使用 shell 循环语句遍历一个系统并定位其所有的磁带驱动器:

for d in 0 1 2 3 4 5

do

mt -f "/dev/rmt/${d}" status

done

2:倒带

mt rew

mt rewind

mt -f /dev/mt/0 rewind

mt -f /dev/st0 rewind

3:弹出磁带

mt off

mt offline

mt eject

mt -f /dev/mt/0 off

mt -f /dev/st0 eject

4:擦除磁带(倒带,在支持的情况下卸载磁带)

mt erase

mt -f /dev/st0 erase  #Linux

mt -f /dev/rmt/0 erase #Unix

5:张紧磁带盒

如果磁带在读取时发生错误,你重新张紧磁带,清洁磁带驱动器,像下面这样再试一次:

mt retension

mt -f /dev/rmt/1 retension #Unix

mt -f /dev/st0 retension #Linux

6:在磁带当前位置写入 EOF 标记

mt eof

mt weof

mt -f /dev/st0 eof

7:将磁带前进指定的文件标记数目,即跳过指定个 EOF 标记

磁带定位在下一个文件的第一个块,即磁带会定位在下一区域的第一个块(见图01):

mt fsf

mt -f /dev/rmt/0 fsf

mt -f /dev/rmt/1 fsf 1 #go 1 forward file/tape (see fig.01)

8:将磁带后退指定的文件标记数目,即倒带指定个 EOF 标记

磁带定位在下一个文件的第一个块,即磁带会定位在 EOF 标记之后(见图01):

mt bsf

mt -f /dev/rmt/1 bsf

mt -f /dev/rmt/1 bsf 1 #go 1 backward file/tape (see fig.01)

这里是磁带定位命令列表:

fsf    前进指定的文件标记数目。磁带定位在下一个文件的第一块。

fsfm  前进指定的文件标记数目。磁带定位在前一文件的最后一块。

bsf    后退指定的文件标记数目。磁带定位在前一文件的最后一块。

bsfm  后退指定的文件标记数目。磁带定位在下一个文件的第一块。

asf    磁带定位在指定文件标记数目的开始位置。定位通过先倒带,再前进指定的文件标记数目来实现。

fsr    前进指定的记录数。

bsr    后退指定的记录数。

fss    (SCSI tapes)前进指定的 setmarks。

bss    (SCSI tapes)后退指定的 setmarks。

基本备份命令

让我们来看看备份和恢复命令。

9:备份目录(tar 格式)

tar cvf /dev/rmt/0n /etc

tar cvf /dev/st0 /etc

10:恢复目录(tar 格式)

tar xvf /dev/rmt/0n -C /path/to/restore

tar xvf /dev/st0 -C /tmp

11:列出或检查磁带内容(tar 格式)

mt -f /dev/st0 rewind; dd if=/dev/st0 of=-

### tar 格式 ###

tar tvf {DEVICE} {Directory-FileName}

tar tvf /dev/st0

tar tvf /dev/st0 desktop

tar tvf /dev/rmt/0 foo list.txt

12:使用 dump 或 ufsdump 备份分区

### Unix 备份 c0t0d0s2 分区 ###

ufsdump 0uf /dev/rmt/0  /dev/rdsk/c0t0d0s2

### Linux 备份 /home 分区 ###

dump 0uf /dev/nst0 /dev/sda5

dump 0uf /dev/nst0 /home

### FreeBSD 备份 /usr 分区 ###

dump -0aL -b64 -f /dev/nsa0 /usr

13:使用 ufsrestore 或 restore 恢复分区

### Unix ###

ufsrestore xf /dev/rmt/0

### Unix 交互式恢复 ###

ufsrestore if /dev/rmt/0

### Linux ###

restore rf /dev/nst0

### 从磁带媒介上的第6个备份交互式恢复 ###

restore isf 6 /dev/nst0

### FreeBSD 恢复 ufsdump 格式 ###

restore -i -f /dev/nsa0

14:从磁带开头开始写入(见图02)

### 这会覆盖磁带上的所有数据 ###

mt -f /dev/st1 rewind

### 备份 home ###

tar cvf /dev/st1 /home

### 离线并卸载磁带 ###

mt -f /dev/st0 offline

从磁带开头开始恢复:

mt -f /dev/st0 rewind

tar xvf /dev/st0

mt -f /dev/st0 offline

15:从最后一个 tar 后开始写入(见图02)

### 这会保留之前写入的数据 ###

mt -f /dev/st1 eom

### 备份 home ###

tar cvf /dev/st1 /home

### 卸载 ###

mt -f /dev/st0 offline

16:从 tar number 2 后开始写入(见图02)

### 在 tar number 2 之后写入(应该是 2+1)###

mt -f /dev/st0 asf 3

tar cvf /dev/st0 /usr

### asf 等效于 fsf ###

mt -f /dev/sf0 rewind

mt -f /dev/st0 fsf 2

从 tar number 2 恢复 tar:

mt -f /dev/st0 asf 3

tar xvf /dev/st0

mt -f /dev/st0 offline

关于第三方备份工具

Linux 和类Unix系统都提供了许多第三方工具,可以用来安排备份,包括磁带备份在内,如:

Amanda

Bacula

rsync

duplicity

rsnapshot

Linux dump命令

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 显示需要备份的文件及其最后一次备份的层级,时间与日期。

Linux命令:tar

原单词 tar命令最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar

实物长这样

tar 命令是linux系统中常用的 压缩文件 和 解压缩文件命令

tar 命令的参数 异常之多,咱们只学习满足 压缩文件 和 解压缩文件 命令的参数就可以了

mark style="box-sizing: border-box; background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);"工作中应用于安装软件,搭建应用,部署环境/mark

举例: 将root目录下的 adir目录和a.txt文件 压缩为 test.tar.gz

注意是大写C

如果 不使用-C参数 则默认解压至当前工作目录

举例: 将 test.tar.gz 压缩文件解压到/root目录

-c 建立新的备份文件。

-x 从备份文件中还原文件。

-v 显示指令执行过程。

-f 指定备份文件。

-z 通过gzip指令处理备份文件。(如果解压文件后缀是.tar,没有.gz则不需要使用-z参数)

-C 指定解压到的目录

使用xshell连接linux

在root 目录下 新建 tarTest目录

进入tarTest目录

压缩 /root/lnTest文件夹 和 /root/Centos-7.repo 文件 到 /root/tarTest目录下,压缩文件名为 test.tar.gz

进入/root/tarTest目录

解压test.tar.gz到当前目录(/root/tarTest)

解压test.tar.gz到/root/rmTest目录


本文题目:linux磁带备份命令 linux 磁带备份
URL网址:http://scyanting.com/article/doshpds.html