📌  相关文章
📜  从本地复制到远程机器(快速) (1)

📅  最后修改于: 2023-12-03 14:49:25.960000             🧑  作者: Mango

从本地复制到远程机器(快速)

在程序开发过程中,我们经常需要将本地的文件或目录快速复制到远程机器上,以便进行测试或部署。本文将介绍三种常用的方式来实现从本地复制到远程机器的操作。

1. scp命令

scp命令是基于ssh协议的文件复制命令,它能够在本地和远程机器之间进行安全的文件传输。使用scp命令复制文件或目录非常简单,只需要在终端输入如下命令:

scp -r local_file remote_username@remote_ip:remote_folder

其中,

  • -r 表示复制整个目录;
  • local_file 表示要复制的本地文件或目录;
  • remote_username 表示远程机器的用户名;
  • remote_ip 表示远程机器的IP地址;
  • remote_folder 表示要复制到远程机器的目录。

例如,要将本地目录/usr/local/nginx复制到远程机器192.168.1.100的目录/tmp下,只需要执行如下命令:

scp -r /usr/local/nginx root@192.168.1.100:/tmp

需要注意的是,使用scp命令复制文件或目录时,需要保证本地机器和远程机器之间可以通过ssh协议进行连接,并且需要输入远程机器的密码。

2. rsync命令

rsync命令是一个高效的文件同步工具,它能够快速而安全地将本地文件或目录同步到远程机器上。rsync命令比scp命令更加灵活,可以进行增量同步、断点续传等操作。

使用rsync命令复制文件或目录的格式如下:

rsync -avzP local_file remote_username@remote_ip:remote_folder

其中,

  • -a 表示使用归档模式进行同步,即保留文件的各种属性(权限、属主、时间等);
  • -v 表示打印出详细的同步信息;
  • -z 表示使用压缩算法进行同步,可以减少网络带宽的占用;
  • -P 表示显示进度信息。

例如,要将本地目录/usr/local/nginx同步到远程机器192.168.1.100的目录/tmp下,只需要执行如下命令:

rsync -avzP /usr/local/nginx root@192.168.1.100:/tmp

需要注意的是,使用rsync命令复制文件或目录时,需要保证本地机器和远程机器之间可以通过ssh协议进行连接,并且需要输入远程机器的密码。

3. lftp命令

lftp命令是一款支持FTP、SFTP、HTTP等协议的文件传输工具,它能够通过一些高级特性(如多线程传输、断点续传等)实现高效的文件传输。lftp命令使用方式如下:

lftp sftp://remote_username:remote_password@remote_ip
lftp> put local_file remote_folder
lftp> exit

其中,

  • remote_username 表示远程机器的用户名;
  • remote_password 表示远程机器的密码;
  • remote_ip 表示远程机器的IP地址;
  • local_file 表示要传输的本地文件或目录;
  • remote_folder 表示要传输到远程机器的目录。

例如,要将本地目录/usr/local/nginx传输到远程机器192.168.1.100的目录/tmp下,只需要执行如下命令:

lftp sftp://root:password@192.168.1.100
lftp> put /usr/local/nginx /tmp
lftp> exit

需要注意的是,在使用lftp命令传输文件或目录时,需要保证远程机器支持sftp协议,并且需要输入远程机器的用户名和密码。

到此,我们介绍了从本地复制到远程机器的三种常用方式,分别是scp命令、rsync命令和lftp命令。不同的场景需要选择不同的工具来实现文件传输,希望对读者有所帮助。