scp 是 secure copy 的缩写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,用于 Linux 之间复制文件和目录。
1. 从本地复制到远程
将本地文件拷贝到远程
scp local_file remote_username@remote_ip:remote_folder
将本地文件夹拷贝到远程
scp -r local_folder remote_username@remote_ip:remote_folder
2. 从远程复制到本地
将远程文件拷贝到本地
scp remote_username@remote_ip:remote_file local_folder
将远程文件夹拷贝到本地
scp -r remote_username@remote_ip:remote_folder local_folder
3. 补充说明
1)使用scp命令时,用户要具有读取远程服务器相应文件的权限, 否则命令会终止
2)如果远程服务器防火墙为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号
#scp 命令使用端口号 4588
scp -P 4588 remote_username@remote_ip:remote_file local_folder
3)我们传输数据时常将其不挂断运行
可能有多种方法,这里只给出我使用nohup时遇到的问题。
nohup和&区别
&: 指在后台运行
nohup: 不挂断的运行,它并没有后台运行的功能,它可以将命令永久得执行,即使我们退出也不会中断。
例:将本地文件拷贝到远程
nohup scp local_file remote_username@remote_ip:remote_folder
我们不要在上述命令后加上“&”符号,可能是传输文件需要输入密码的原因,加上“&”在后台运行任务无法进行。
执行上述命令后提示输入密码,输入密码后会“卡住不动”(传的数据比较大,在运行中),我们想继续做别的事就没法进行,这个时候我们使用Ctrl+Z组合键暂停应用,然后输入命令bg即可启动后台传输任务。为了避免问题,假如我们要关闭服务器,我们尽量使用命令exit退出服务器。
参考:Linux scp命令