当前位置: 首页 > 科技观察

如何在Linux上将文件-文件夹复制到远程系统?

时间:2023-03-15 23:29:00 科技观察

将文件从一台服务器复制到另一台服务器,或者从本地复制到远程是Linux管理员的日常工作之一。我认为没有人会反对,因为无论您身在何处,这都是您日常运营的一部分。有很多方法可以处理这个任务,让我们尝试概括一下。你可以选择你喜欢的方法。当然,查看其他命令也可以在其他地方为您提供帮助。我已经在自己的环境中测试了所有命令和脚本,因此您可以在日常工作中直接使用它们。通常每个人都倾向于scp因为它是文件复制的本机命令之一。但是本文中列出的其他命令也非常有用,建议您尝试一下。使用以下四种方法可以轻松完成文件复制。scp:在网络上的两台主机之间复制文件,它使用ssh进行文件传输,并使用相同的认证方式,具有相同的安全性。rsync:是一种快速且优秀的多用途文件复制工具。它可以在本地、通过远程shell在其他主机之间或使用远程rsync守护程序进行复制。pscp:是一个将文件并行复制到多个主机的程序。它提供了诸如为scp配置免密传输、将输出保存到文件和超时控制等功能。prsync:也是一个将文件并行复制到多个主机的程序。它还提供诸如为ssh配置免密传输、将输出保存到文件和超时控制等功能。方式一:如何在Linux上使用scp命令将文件/文件夹从本地系统复制到远程系统?scp命令允许我们将文件/文件夹从本地系统复制到远程系统。我将从本地系统复制output.txt文件到2g.CentOS.com远程系统上的/opt/backup文件夹。#scpoutput.txtroot@2g.CentOS.com:/opt/backupoutput.txt100%24682.4KB/s00:00从本地系统复制两个文件output.txt和passwd-up.sh到远程系统2g.在CentOs.com的/opt/backup文件夹下。#scpoutput.txtpasswd-up.shroot@2g.CentOS.com:/opt/backupoutput.txt100%24682.4KB/s00:00passwd-up.sh100%8770.9KB/s00:00来自本地系统将shell-script文件夹复制到远程系统2g.CentOs.com的/opt/back文件夹下。这将与shell-script文件夹中的所有文件一起复制到/opt/back。#scp-r/home/daygeek/2g/shell-script/root@:/opt/backup/output.txt100%24682.4KB/s00:00ovh.sh100%760.1KB/s00:00passwd-up.sh100%8770.9KB/s00:00passwd-up1.sh100%70.0KB/s00:00server-list.txt100%230.0KB/s00:00方法二:如何使用scp命令将文件/文件夹复制到多个远程系统的Linux和shell脚本?如果要将同一个文件复制到多个远程服务器,则需要创建一个如下所示的小shell脚本。此外,还需要将服务器添加到server-list.txt文件中。确保添加成功后,每个服务器应该单独一行。最终,您想要的脚本如下所示:#file-copy.sh#!/bin/shforserverin`moreserver-list.txt`doscp/home/daygeek/2g/shell-script/output.txtAfterroot@$server:/opt/backupdone完成后,设置file-copy.sh文件的可执行权限。#chmod+xfile-copy.sh然后运行脚本完成复制。#./file-copy.shoutput.txt100%24682.4KB/s00:00output.txt100%24682.4KB/s00:00使用以下脚本将多个文件复制到多个远程服务器。#file-copy.sh#!/bin/shforserverin`moreserver-list.txt`doscp/home/daygeek/2g/shell-script/output.txtpasswd-up.shroot@$server:/opt/backupdone下面的结果显示两个文件都被复制到两个服务器。#./file-cp.shoutput.txt100%24682.4KB/s00:00passwd-up.sh100%8770.9KB/s00:00output.txt100%24682.4KB/s00:00passwd-up.sh100%8770.9KB/s00:00使用下面的脚本将一个文件夹递归复制到多个远程服务器。#file-copy.sh#!/bin/shforserverin`moreserver-list.txt`doscp-r/home/daygeek/2g/shell-script/root@$server:/opt/backupdone的输出以上脚本。#./file-cp.shoutput.txt100%24682.4KB/s00:00ovh.sh100%760.1KB/s00:00passwd-up.sh100%8770.9KB/s00:00passwd-up1.sh100%70.0KB/s00:00server-list.txt100%230.0KB/s00:00output.txt100%24682.4KB/s00:00ovh.sh100%760.1KB/s00:00passwd-up.sh100%8770.9KB/s00:00passwd-up1.sh100%70.0KB/s00:00server-list.txt100%230.0KB/s00:00方法三:如何使用pscp命令Linux将文件/文件夹复制到多个远程系统?pscp命令允许我们将文件直接复制到多个远程服务器。使用下面的pscp命令将单个文件复制到远程服务器。#pscp.pssh-H2g.CentOS.com/home/daygeek/2g/shell-script/output.txt/opt/backup[1]18:46:11[SUCCESS]2g.CentOS.com使用下面的pscp命令将多个文件复制到远程服务器。#pscp.pssh-H2g.CentOS.com/home/daygeek/2g/shell-script/output.txtovh.sh/opt/backup[1]18:47:48[SUCCESS]2g.CentOS.com使用以下pscp命令递归地将整个文件夹复制到远程服务器。#pscp.pssh-H2g.CentOS.com-r/home/daygeek/2g/shell-script//opt/backup[1]18:48:46[SUCCESS]2g.CentOS.com使用如下pscp命令使用以下命令将单个文件复制到多个远程服务器。#pscp.pssh-hserver-list.txt/home/daygeek/2g/shell-script/output.txt/opt/backup[1]18:49:48[成功]2g.CentOS.com[2]18:49:48[成功]2g.Debian.com使用下面的pscp命令将多个文件复制到多个远程服务器。#pscp.pssh-hserver-list.txt/home/daygeek/2g/shell-script/output.txtpasswd-up.sh/opt/backup[1]18:50:30[成功]2g.Debian.com[2]18:50:30[SUCCESS]2g.CentOS.com使用以下命令将文件夹递归复制到多个远程服务器。#pscp.pssh-hserver-list.txt-r/home/daygeek/2g/shell-script//opt/backup[1]18:51:31[成功]2g.Debian.com[2]18:51:31[SUCCESS]2g.CentOS.com方法四:如何在Linux上使用rsync命令将文件/文件夹复制到多个远程系统?rsync是一种快速且用途广泛的文件复制工具。它可以在本地、通过远程shell在其他主机之间或在远程rsync守护进程之间进行复制。使用下面的rsync命令将单个文件复制到远程服务器。#rsync-avz/home/daygeek/2g/shell-script/output.txtroot@:/opt/backupsendingincrementalfilelistoutput.txtsent598bytesreceived31bytes1258.00bytes/sectotalsizeis2468speedupis3.92使用下面的rsync命令将多个文件复制到远程服务器。#rsync-avz/home/daygeek/2g/shell-script/output.txtpasswd-up.shroot@2g.CentOS.com:/opt/backupsending增量文件listoutput.txtpasswd-up.sh发送737字节接收50字节1574.00字节/扇区大小为2537加速比为3.22使用下面的rsync命令通过ssh将单个文件复制到远程服务器。#rsync-avzhessh/home/daygeek/2g/shell-script/output.txtroot@2g.CentOS.com:/opt/backupsendingincrementalfilelistoutput.txtsent598bytesreceived31bytes419.33bytes/sectotalsizeis2.47Kspeedup是3.92使用下面的rsync命令通过ssh递归地将文件夹复制到远程服务器。这样只复制文件,不包括文件夹。#rsync-avzhessh/home/daygeek/2g/shell-script/root@2g.CentOS.com:/opt/backupsending增量文件列表./output.txtovh.shpasswd-up.shpasswd-up1.shserver-list.txtsent3.85Kbytesreceived281bytes8.26Kbytes/sectotalsizeis9.12Kspeedupis2.21方法5:如何在Linux上使用rsync命令和Shell脚本将文件/文件夹复制到多个远程系统?如果要将同一个文件复制到多个远程服务器,还需要创建一个如下所示的小shell脚本。#file-copy.sh#!/bin/shforserverin`moreserver-list.txt`dorsync-avzhessh/home/daygeek/2g/shell-script/root@2g.CentOS.com$server:/opt/backupdone以上脚本的输出。#./file-copy.shsendingincrementalfilelist./output.txtovh.shpasswd-up.shpasswd-up1.shserver-list.txtsent3.86Kbytesreceived281bytes8.28Kbytes/sectotalsizeis9.13Kspeedupis2.21sendingincrementalfilelist./output.txtovh.shpasswd-up.shpasswd-up1.shserver-list.txtsent3.86Kbytesreceived281bytes2.76Kbytes/sectotalsizeis9.13Kspeedupis2.21方法六:如何使用scp命令和Shell脚本将文件/文件夹从本地系统复制到多个远程系统?在上面两个shell脚本中,我们需要提前指定文件和文件夹的路径。在这里我做了一些小的修改,以便脚本可以接收文件或文件夹作为输入参数。当您需要每天多次执行复制时,这很有用。#file-copy.sh#!/bin/shforserverin`moreserver-list.txt`doscp-r$1root@2g.CentOS.com$server:/opt/backupdone输入文件名并运行脚本。#./file-copy.shoutput1.txtoutput1.txt100%35583.5KB/s00:00output1.txt100%35583.5KB/s00:00方法七:Linux系统非标准端口复制文件/文件夹到远程系统?如果要使用非标准端口,请使用下面的shell脚本复制文件或文件夹。如果您使用的是非标准非标准端口,请确保在下面的scp命令中指定端口号。#file-copy-scp.sh#!/bin/shforserverin`moreserver-list.txt`doscp-P2222-r$1root@2g.CentOS.com$server:/opt/backupdone运行脚本并输入文件名。#./file-copy.shovh.shovh.sh100%35583.5KB/s00:00ovh.sh100%35583.5KB/s00:00如果使用非标准非标准端口,请确保rsync如下所示端口号在命令中指定。#file-copy-rsync.sh#!/bin/shforserverin`moreserver-list.txt`dorsync-avzhe'ssh-p2222'$1root@2g.CentOS.com$server:/opt/backupdone运行脚本,输入文件名。#./file-copy-rsync.shpasswd-up.sh发送增量文件listpasswd-up.shsent238bytesreceived35bytes26.00bytes/sectotalsizeis159speedupis0.58sendingincrementalfilelistpasswd-up.shsent238bytesreceived3526.00字节/扇区大小为159加速为0.58