因工作的诱因须要在局域网内多台机器文件互传,均为LinuxCentOS系统。此为背景。

scp和rsync均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速率较快。当小文件诸多时,rsync会造成硬碟I/O特别高,而scp基本不影响系统正常使用。可依照须要这俩选其二实现文件复制。

一、scp命令

scp是securecopy的简写,scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令

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

1.从本地复制到远程服务器2.从远程服务器复制到本地二、rsync命令

rsync是remotesync的简写。使用rsync备份数据时wps for linux,不会直接覆盖先前的数据(假如数据早已存在),而是先判别已存在的数据和新数据的差别(默认规则是文件大小或更改时间有差别),只有数据不相同时就会把不相同的部份覆盖。在仅作增量数据的copy时比scp灵活。

通常CentOS默认安装rsync,若使用rsync-v提示找不到命令,可使用yuminstall-yrsync安装。

1.从本地复制到远程服务器2.从远程服务器复制到本地

单个逗号和双引号的区别:使用rsync在远程传输数据前,是须要进行登录认证的,这个过程可使用ssh合同也可以使用rsync合同完成。单引号(:)使用的是ssh合同;双引号(::)使用的是rsync合同。

linux如何备份一个文件_linux 备份文件命令_linux文件解压命令

3.只保留源文件的内容

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

4.增量备份

linux如何备份一个文件_linux文件解压命令_linux 备份文件命令

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

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

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

$rsync-a--delete--link-dest/compare/path/source/path/target/path

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

三、将scp和rsync后台运行

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

后台和前台任务的切换

jobs    //查看任务,返回任务编号n;
bg %n    //将编号为n的任务转后台运行;
fg %n    //将编号为n的任务转前台运行;
Ctrl+z    //挂起当前任务;
Ctrl+c    //结束当前任务。
disown -h %n    //将这个作业忽略HUP信号

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

假如有其他任务须要使用nohup后台运行linux 备份文件命令,但执行时却忘掉了使用nohup,也可参照此方式进行设置。

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

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复