netcat(简称nc)是一个简单但功能强大的网络命令行工具,用于执行Linux中与TCP、UDP或Unix套接字相关的任何操作。
备份远程机器的硬盘需要分两步来操作:
1.在远程机器下运行如下命令
1 2 3 4 5 |
dd if=/dev/vda | nc -lp 2222 # if=/dev/vda, 指向需要备份的设备名称 #-l 启动监听(listen) #-p 指定端口(port) |
2.在本地机器运行如下命令:
1 2 3 4 5 6 7 |
nc -nv 118.190.23.229 2222 -q 1 | dd of=./test.dd # -v 显示详细连接输出内容 # -n 不做Dns解析 # 118.190.23.229 远程IP地址 # 2222 远程端口 # -q num 完成后num秒断开连接 |
如果想压缩数据,这样可以节省传输的数据量:
1 2 3 4 |
# 远程机器 dd if=/dev/vda | gzip | nc -lp 2222 # 本地机器 nc -nv 118.190.23.229 2222 -q 1 | dd of=./test.dd.gz |
通过 watch 显示 dd 进度
1 2 |
watch -n 1 pkill -USR1 -x dd # 在远程机器上和本地机器上都可以运行 |
注意事项:
1.远程机器可能需要开放侦听的端口访问权限
2.下载速度取决于远程机器提供的带宽速度和本地带宽的速度
3.本地机器有足够的空间用于保存文件