linux文件传输那些事

有需求在两台主机之间传输文件。

windows与linux之间,小文件可以用rzsz命令传,大文件可以用xftp等。多个文件建议zip打包。

linux之间可以用scp、rsync传输。

SCP传输

scp 是通过ssh协议传输数据,传输大文件可能会造成中断,那么就需要整个文件重新拷贝。可以考虑使用rsync,支持断点续传。

1.上传文件
scp test.zip root@192.168.1.11:/home/test.zip

2.下载文件
scp root@192.168.1.11:/home/test.zip test.zip

3.上传整个目录
scp -r testdir root@192.168.1.11:/home

4.下载整个目录
scp -r root@192.168.1.11:/home/testdir /home

5. 在后台运行,  退出shell进程不会退出

nohup scp test.zip root@192.168.1.11:/home/test.zip

Ctrl+Z

ctrl+Z暂停执行

jobs:查看当前运行的程序

bg %1:设置程序后台执行

fg %1:设置程序前台执行

也可以使用screen放后台,常用screen参数

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

rsync传输

rsync支持断点续传

rsync -P –rsh=ssh test.zip 192.168.1.11:/home/test.zip

-P: 是包含了 “–partial –progress”, 部分传送和显示进度

-rsh=ssh 表示使用ssh协议传送数据

如果不想每次都使用 rsync -P rsh=ssh 之类的,可以写成alias scpr=”rsync -P –rsh=ssh”

那么下次就可以直接使用 scpr home.tar 192.168.205.34:/home/home.tar 来拷贝数据了。

在传输过程中,目标文件会以.home.tar.xxxx文件也隐藏,可以用la -a来显示出来。如果scpr中断了,那么该文件会变成用户指定的目标文件”home.tar”,下次传的时候又会改成.home.tar.xxxx文件。

执行rsync过程中,我们肯定希望把这个job放入后台执行,而不因为secureCRT类似的窗口中断受影响,那么在执行了

rsync -P –rsh=ssh home.tar 192.168.205.34:/home/home.tar, 再输出密码后,可以用ctrl+z 来中断,再使用bg命令让它在后台执行。

 

参考链接:

https://blog.csdn.net/hepeng597/article/details/8960885

http://man.linuxde.net/screen

 

转载请注明原作者,如果你觉得文章对你有帮助或启发,也可以来请我喝咖啡

点赞