Linux拷贝服务器文件夹到本地

avatar
作者
筋斗云
阅读量:1

方法1:scp命令

scp命令是用于通过 SSH 协议安全地将文件复制到远程系统和从远程系统复制文件到本地的命令。它是 Secure Copy 的缩写,表示安全拷贝。scp 可以使我们通过网络,把文件从一台电脑拷贝到另一台电脑。

Linux SCP 命令是一种在两个远程节点之间传输文件的便捷且安全的方式,使用 SSH 意味着它享有与 SSH 相同级别的数据加密,因此被认为是跨两个远程主机传输文件的安全方式。

scp 是基于 ssh 的原理来运作的, ssh 会在两台通过网络连接的电脑之间创建一条安全通信的管道, scp 就利用这条管道安全地拷贝文件。

# 举例SSH指令,博主《Linux网络相关命令汇总》这个文章内有ssh命令更详细的内容~ ssh root@10.111.100.10 -p 22

由于执行SSH指令【ssh user@server-ip -p PORT】后,终端就切换到了远程服务器的环境,填写个人路径时查不到,此时的环境已经不再是本地环境,只需要再新建一个终端窗口来执行:

$ scp [option] /path/to/source/file user@server-ip:/path/to/destination/directory

scp命令常用选项:

  • -C - 这会在复制过程中压缩文件或目录
  • -P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口
  • -r - 此选项递归复制目录及其内容
  • -p - 保留文件的访问和修改时间
# 前面地址为源地址,后面地址为目标地址,根据需要改,本地和服务器互相传改变前后位置即可 # root:用户名,10.100.100.10:IP,51:端口号,根据需要改,举例说明如下:  # Linux服务器内部拷贝文件夹source到des scp -r /workspace/source /workspace/des  # Mac拷贝本地文件夹到服务器 scp -rP 51 Users/source root@10.100.100.10:/workspace/des  # Mac拷贝服务器文件夹到本地 scp -rP 51 root@10.100.100.10:/workspace/source /Users/des  # Mac拷贝服务器文件到本地 scp -P 51 root@10.100.100.10:/workspace/data.py /Users/des  # Windows拷贝本地文件到服务器 scp -rP 51 E:\source root@10.100.100.10:/workspace/des # 注意:本地复制到Linux出现No such file or directory:win环境必须用绝对路径

方法2:sftp

1.通过命令行登录服务器:sshuser@server-ip -p PORT

2.本地登录sftp:sftp -PPORT user@server-ip    

3.本地文件推到服务器:put [-r]  local_file_path remote_server_path

4.服务器文件拉到本地:get -r remote_server_files_path 

5.退出sftp:quit

补充:rsync命令

rsync 命令主要用于远程同步文件。它可以同步两个目录,不管它们是否处于同一台电脑。它应该是最常用于“增量备份”的命令了。它就是智能版的 scp 命令。

软件安装:

yum install rsync 

基础用法:

rsync -arv Images/ backups/ # 将Images 目录下的所有文件备份到 backups 目录下 rsync -arv Images/ root@192.x.x.x:backups/ # 同步到服务器的backups目录下 

常用参数:

  • -a 保留文件的所有信息,包括权限,修改日期等;
  • -r 递归调用,表示子目录的所有文件也都包括;
  • -v 冗余模式,输出详细操作信息。

默认地, rsync 在同步时并不会删除目标目录的文件,例如你在源目录中删除一个文件,但是用 rsync 同步时,它并不会删除同步目录中的相同文件。如果向删除也可以这么做:rsync \-arv \--delete Images/ backups/ 。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!