rsync
顾名思义,rsync命令用于在本地和远程同步(或复制)文件和目录。rsync的一个重要特性是它采用“增量传输算法”,这意味着它只会同步或复制源到目标的更改,而不是复制整个文件,这最终会减少通过网络发送的数据量。Linux爱好者通常使用rsync命令来管理日常的备份、镜像和恢复活动。它使用类似SSH的远程shell来同步本地机器和远程机器之间的文件,系统中的任何用户都可以使用rsync命令,因为它不需要root或sudo特权。
rsync -zartuvh -e ssh –progress user@example.com:/path /local/path # 以下命令完美的实现了数据同步且文件和文件夹(当前文件夹里所有文件同步完成后)的时间戳同步 rsync -azvhP /home/mac/ root@2.2.2.46:/root/ling/
Syntax of rsync command:
Local Sync: # rsync {options} {Source} {Destination} Remote Sync pull: # rsync {options} <User_Name>@<Remote-Host>:<Source-File-Dir> <Destination> Remote Sync Push: # rsync <Options> <Source-Files-Dir> <User_Name>@<Remote-Host>:<Destination>
rsync 常用选项
-v | 显示rsync过程中详细信息。可以使用”-vvvv”获取更详细信息。 |
-P | 显示文件传输的进度信息。(实际上”-P”=”–partial –progress”,其中的”–progress”才是显示进度信息的)。 |
-q | –quiet:禁默消息输出 |
-a | 归档模式,递归目录,将symlinks复制为symlinks,表示递归传输并保持文件属性。等同于”-rtopgDl”。 |
-r | –recursive:递归到目录中去。 |
-t | –times:保持mtime属性。强烈建议任何时候都加上”-t”,否则目标文件mtime会设置为系统时间,导致下次更新:检查出mtime不同从而导致增量传输无效。 |
-b | –backup :对目标上已存在的文件做一个备份,备份的文件名后默认使用”~”做后缀。 |
-u | –update :仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。 |
-l | –links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。 |
-e | 指定所要使用的远程shell程序,默认为ssh。 |
-z | 传输时进行压缩提高效率。 |
-h | 以人类可读的格式显示输出数字 |
–delete | 以SRC为主,对DEST进行同步。多则删之,少则补之。注意”–delete”是在接收端执行的,所以它是在:exclude/include规则生效之后才执行的。 |
–progress | 显示文件传输的进度信息 |
SCP
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
从本地复制到远程
https://www.runoob.com/linux/linux-comm-scp.html
语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
简易写法
scp [可选参数] file_source file_target
参数说明