我想将 ~300G 文件从笔记本电脑传输到同一本地 WiFi 网络中的其他笔记本电脑,以进行备份。 (我唯一的外部硬盘的空间已经用完了,而且买不起任何东西。有人好心地将一台旧笔记本电脑放在垃圾箱里让我去发现。)现在两者都运行 Lubuntu。
传输文件最快、最可靠的方式是什么?通过 rsync、scp 或其他一些命令?您还可以给出一些具体的命令来传输例如两个目录(及其下的文件)吗?
与使用外部硬盘驱动器通过 USB 电缆依次物理连接到计算机并间接执行传输相比,您将使用的命令的传输速度如何,如果将来垃圾箱中有另一个可用的外部硬盘驱动器?
谢谢。
答案1
在机器 receive.example.com 上:
cd /destination
socat -u tcp-listen:33333,reuseaddr - | gunzip | pv -trab | bsdtar xpSf -
然后在机器 sender.example.com 上:
cd /source
bsdtar cf - . | pigz -3 | socat -u - tcp:receiver.example.com:33333
传输速度将取决于您的 WiFi 连接的速度和可靠性以及数据的可压缩程度(如果笔记本电脑确实很旧且压缩最终成为瓶颈,则可能取决于 CPU 的速度)。
您可能需要安装bsdtar
、pigz
和socat
软件包pv
。
答案2
rsync
是一个相当标准的文件传输工具。其优点之一rsync
是它可以恢复中断的传输。
它用于ssh
通过网络传输数据:
rsync [OPTION...] SRC... [USER@]HOST:DEST
例如(-a
存档、-z
压缩、-v
详细):
rsync -avz /local/path user@remote:/remote/path
您还可以用于rsync
复制到本地路径(外部 HDD、NFS 安装等)。
答案3
1> 访问 MediaMarkt
2> 购买 500GB USB 硬盘
3> 将数据传输到该硬盘上
4> 将硬盘插入目标计算机
5> 在目标计算机上传输数据
(考虑 HDD)USB2 ~25MiB/s、USB3 ~80MiB/s、
以太网 100Mbps ~12MiB/s、以太网 1Gbps ~120MiB/s
答案4
我使用这两个 netcat ( nc
) 脚本来发送/接收目录树
- 发送方需要知道接收方IP
- 接收器需要从将打开接收目录的父目录运行
- 接收器需要在发送器之前启动
- 假设两台linux(或具有netcat)计算机在同一个网络上
- 并且在步行(或穿过走廊大喊)的距离内。如果您需要更多时间来激活发送器,请调整接收器的 30 秒 (-w 30) 部分
- 如果您更喜欢发送/接收文件而不是目录,请将 tar 管道更改为文件重定向
收件人
$ cat recvnc
# Receives a directory
# Should be run from parent directory
nc -vv -w 30 -p 5600 -l |tar zxv
$
发件人
$ cat sendnc
# $1 is directory to send $2 is other IP
if [ "$#" -ne 2 ] && ! [ -d "$1" ]; then
echo "Usage: $0 directorytoSend otherIP"
exit 1
fi
tar zcv $1 |nc -vv -n -w 2 $2 5600
$
速度
- 我相信,如果您在两台机器之间背靠背插入以太网电缆,您将获得最佳速度。
- 他们当然需要获得 IP
- ……那是不一样的!
通过路由器(等)也可以,但您可以预期路由器比铜缆慢!
Wifi 也可以使用,但速度仍然较慢