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