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

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

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

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

scp 没这功能,不过可以用其他工具,比如 rsync,会自动忽略已经同步过的文件。

rsync -av /local/path 192.168.xxx.xxx:/remote/path

1. 前言

linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。

在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说明向您展示如何使用rsync。

本教程适用于Ubuntu系统、Linux Mint系统、Deepin深度Linux系统、Fedora系统、Debian系统、Elementary OS系统、OpenSUSE系统、CentOS系统、RHEL系统,Arch Linux等等GNU Linux发行版。

2. `rsync`介绍

Rsync是一个快速且通用的命令行实用程序,它可以使Windows与Linux之间,Linux与Linux之间传文件或者Linux与MAC OS之间传文件。或从Linux本地文件系统到远程Rsync守护进程之间同步文件和文件夹。它只传输源和目标之间的差异,从而提供快速增量文件传输。

Rsync可以用于镜像数据、增量备份、在Linux系统之间传文件,也可以用于Linux与Windows之间传输文件,还可以替代日常使用的scp、sftp和cp命令,他们一般也用于Linux之间传文件或者Linux与MAC OS之间传文件。

3. 如何安装`Rsync`

rsync实用程序预装在大多数Linux发行版和macOS上。你可以输入以下命令,检查你的系统是否已安装:

查看Rsync版本的输出结果:

如果您的系统上没有安装rsync,您可以使用发行版的包管理器轻松地安装它。

在Ubuntu 或者Debian体系的Linux系统上安装rsync

在CentOS 或者Fedora系统上安装rsync

4. Rsync命令使用语法

在讨论如何使用rsync命令之前,让我们先回顾一下基本语法。

rsync实用程序表达式采用以下形式:

rsync提供了许多选项来控制其行为和功能。最广泛使用的选项是:

-a, --archive, 归档模式, 相当于 -rlptgoD。这个选项告诉rsync递归地同步目录、传输特殊设备和块设备、保存符号链接、修改时间、组、所有权和权限。

-z, --compress. 这个选项将强制rsync在传送文件到目标计算机时压缩数据。仅当到远程计算机的连接很慢时才使用此选项。

-P, 相当于--partial --progress。使用此选项时,rsync将在传输期间显示一个进度条,并保留部分传输的文件。当通过缓慢或不稳定的网络连接传输大文件时,它非常有用。

--delete. 使用此选项时,rsync将从目标位置删除无关文件。它对镜像很有用。

-q, --quiet。如果希望禁用非错误消息,请使用此选项。

-e. 此选项允许您选择不同的远程shell。默认情况下,rsync被配置为使用ssh。

5. 使用Rsync最基本的功能使Linux之间传输文件

要将一个文件从一个本地位置复制到另一个本地位置,可以运行以下命令:

运行该命令的用户必须具有目标位置上的读权限和目标上的写权限。

从目标位置省略文件名将复制具有当前名称的文件。如果您想将文件保存在另一个名称下,请在目标部件上指定新名称:

比如复制filename.zip到目标目录并重新把文件名修改为newfilename.zip

在下面的例子中,我们正在创建一个本地备份我们的网站文件:

如果目标目录不存在,rsync将创建它。

值得一提的是,rsync对后面带有斜杠/的源目录提供了不同的处理。如果在源目录上添加一个尾随斜杠,它将只将目录的内容复制到目标目录。当后面的斜杠被省略时,rsync将把源目录复制到目标目录中。

6. 如何使用Rsync与远程服务器同步文件(包括上传下载)

当使用rsync进行远程传输时,必须同时安装在源机器和目标机器上。rsync的新版本被配置为使用SSH作为默认远程shell。

在下面的例子中,我们将一个目录从本地转移到远程机器:

如果你需要配置2台Linux之间免密码登录,请查看以下教程:

如果你想把数据从远程传输到本地机器,你需要使用远程位置作为一个源:

如果远程主机上的SSH监听的端口不是默认的22端口,那么可以使用-e选项指定端口:

比如远程服务器的SSH端口被修改为1234

当传输大量数据时,建议在屏幕会话中运行rsync命令或使用-P选项:

7. 使用Rsync传送或同步文件时,排除某些文件或者目录

当使用Rsync排除文件或目录时,需要使用它们到源位置的相对路径。

有两个选项可以排除文件和目录。第一个选项是使用--exclude参数,并在命令行中指定要排除的文件和目录。

在下面的例子中,我们排除了位于src_directory中的123和abc目录:

第二个选项是使用--exclude-from参数,并指定要在文件中排除的文件和目录。

vi exclude-file.txt

加入需要排除的文件,比如文件file1.c,目录zcwyou:

8. 总结

在本教程中,您学习了如何使用Rsync在多台Linux之间传输、复制或同步文件和目录。在Rsync用户手册页面上有更多关于Rsync的内容。

如果你有任何问题,请留下你的意见。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11622025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存