赞
踩
scp 是 secure copy 的缩写, scp 是一个基于ssh协议实现不同Linux服务器之间的文件和目录拷贝的命令。
scp命令是基于rcp命令的
SCP命令会对所有传输的数据进行加密,以保障数据传输的安全性。
在使用SCP命令进行文件传输时,需要指定源文件的位置,目标服务器的IP地址以及目标路径。如果需要传输整个文件夹,还需要额外添加参数-r进行递归操作。同时,目标服务器会要求进行身份验证,验证通过后,文件传输才会开始。
使用:scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]
[-i identity_file] [-J destination] [-l limit] [-o ssh_option]
[-P port] [-S program] source … target
常用参数:
# scp localfile remote_ip:remote_dir scp a1 192.168.92.100:/root # scp localfile remote_ip:remote_file # 在复制的同时还修改了文件名 # 远程服务器有同名文件时会覆盖 scp a1 192.168.92.100:/root/aaa # scp localfile remote_user@remote_ip:remote_file scp a1 root@192.168.92.100:/root # scp localfile remote_hostname:remote_file scp a1 com01:/root/yyy # 下面的远程服务器 root@com01:~# ll a1 aaa sss yyy -rw-r--r-- 1 root root 82 Feb 21 09:27 a1 -rw-r--r-- 1 root root 82 Feb 21 09:25 aaa -rw-r--r-- 1 root root 82 Feb 21 09:29 sss -rw-r--r-- 1 root root 82 Feb 21 09:34 yyy
注意:
从远程服务器复制本地只需要把目标地址和源地址修改一下即可
# 复制到本地目录下
scp con01:/root/a1 .
scp con01:/root/a1 ./df
######### 本地服务器 root@con01:~# ls haproxy-2.8.5 addons CHANGELOG examples LICENSE reg-tests tests admin CONTRIBUTING haproxy MAINTAINERS scripts VERDATE BRANCHES dev include Makefile src VERSION BSDmakefile doc INSTALL README SUBVE scp -r haproxy-2.8.5 com01:/root/ scp -r haproxy-2.8.5/ com01:/root/ # 以上两种写法都可 # 如果不加 -r 选项会报错:haproxy-2.8.5: not a regular file #######远程服务器 root@com01:~# ls haproxy-2.8.5/ addons CHANGELOG examples LICENSE reg-tests tests admin CONTRIBUTING haproxy MAINTAINERS scripts VERDATE BRANCHES dev include Makefile src VERSION BSDmakefile doc INSTALL README SUBVERS root@com01:~#
####### 本地服务器 root@con01:~# stat b1 File: b1 Size: 6 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 786447 Links: 1 Access: (0600/-rw-------) Uid: ( 1000/ smile) Gid: ( 1000/ smile) Access: 2024-02-21 09:48:28.317809644 +0000 Modify: 2024-02-21 09:46:29.587905113 +0000 Change: 2024-02-21 09:47:42.221070217 +0000 Birth: 2024-02-21 09:46:29.587905113 +0000 scp b1 com01:/root/ scp -p b1 com01:/root/bb # 从下面的内容可以看出保留原文件的修改时间,访问时间 ####### 远程服务器 root@com01:~# stat b1 File: b1 Size: 6 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 788380 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2024-02-21 09:52:37.981073498 +0000 Modify: 2024-02-21 09:52:37.981073498 +0000 Change: 2024-02-21 09:52:37.981073498 +0000 Birth: 2024-02-21 09:52:37.981073498 +0000 root@com01:~# stat bb File: bb Size: 6 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 788381 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2024-02-21 09:48:28.000000000 +0000 Modify: 2024-02-21 09:46:29.000000000 +0000 Change: 2024-02-21 09:52:46.465445105 +0000 Birth: 2024-02-21 09:52:46.449444403 +0000 root@com01:~#
如果不清楚stat命令可以参考我的这篇文章:Linux命令:stat命令
scp -P 13222 b1 com01:/root/bb
# 这个主要是ssh的端口,如果ssh端口改变了,此处访问会改变
# 修改ssh的配置文件,并重启即可
vim /etc/ssh/sshd_config
# 修改sftp上传文件端口
Port 13222
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。