scp命令跟cp命令类似,只不过cp命令是在同一台机器上用的,scp是在两台机器上复制传输数据的命令。scp实质相当于利用SSH协议来传输数据的cp命令。
用法举例:
1、复制远程服务器的文件到本地:scp -P888 root@120.18.50.33:/data/ha97.zip /home/
2、复制远程服务器的目录到本地:scp -vrp -P888 root@120.18.50.33:/data/ha97/ /home/
3、复制本地的文件到远程服务器:scp -P888 /home/ha97.zip root@120.18.50.33:/data/
4、复制本地的目录到远程服务器:scp -vrp -P888 /home/ root@120.18.50.33:/data/
SCP 命令语法
scp [-1245BCpqrv] [-c cipher] [F ssh_config] [-I identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:] file1 […] [[suer@]host2:]file2
SCP 命令说明
Scp在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安全性。 scp将在认证中请求输入密码所有的文件可能需要服务器和用户的特别描述来指明文件将被复制到/从某台服务器。两个远程登录的服务器间的文件复制是允许的。
SCP 命令选项
-1 强制scp 用协议1
-2 强制scp 用协议2
-4 强制scp用IPV4的网址
-6 强制scp用IPV6的网址
-B 选择批处理模式(防止输入密码)
-C 允许压缩。 标注-C到ssh(1)来允许压缩
-c cipher
选择cipher来加密数据传输。这个选项直接传递到ssh(1)
-F ssh_config
设定一个可变动的用户配置给ssh.这个选项直接会被传递到ssh(1)
-i identity_file
选择被RSA认证读取私有密码的文件。这个选项可以直接被传递到ssh(1)
-l limit
限制传输带宽,也就是速度 用Kbit/s的速度
-o ssh_option
可以把ssh_config中的配置格式传到ssh中。这种模式对于说明没有独立的scp文件中断符的scp很有帮助。关于选项的如下。而他们的值请参看ssh_config(5)
-P port
指定连接远程连接端口。注意这个选项需要写成大写的模式。因为-p已经早保留了次数和模式
-S program
指定一个加密程序。这个程序必须可读所有ssh(1)的选项。
-p 指定修改次数,连接次数,还有对于原文件的模式
-q 把进度参数关掉
-r 递归的复制整个文件夹
-S program
指定一个加密程序。这个程序必须可读所有ssh(1)的选项。
-V 冗余模式。 让 scp 和 ssh(1) 打印他们的排错信息, 这个在排错连接,认证,和配置中非常有用。
SCP 命令诊断
scp 返回0 成功时,不成功时返回值大于0
SCP 命令不需要输入用户密码的使用方法
在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码。
1. 在机器A上root用户执行 ssh-keygen 命令,生成建立安全信任关系的证书。[root@A root]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <– 直接输入回车
Enter passphrase (empty for no passphrase): <– 直接输入回车
Enter same passphrase again: <– 直接输入回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is: ……
注意:在程序提示输入 passphrase 时直接输入回车,表示无证书密码。
上述命令将生成私钥证书 id_rsa 和公钥证书 id_rsa.pub,存放在用户目录的 .ssh 子目录中。
2. 将公钥证书 id_rsa.pub 复制到机器B的root目录的.ssh子目录中,同时将文件名更换为authorized_keys。[root@A root]# scp -p .ssh/id_rsa.pub root@机器B的IP:/root/.ssh/authorized_keys
root@192.168.3.206’s password: <– 输入机器B的root用户密码
在执行上述命令时,两台机器的root用户之间还未建立安全信任关系,所以还需要输入机器B的root用户密码。
经过以上2步,就在机器A的root和机器B的root之间建立安全信任关系。下面我们看看效果:[root@A root]# scp -p test root@机器B的IP地址:/root
成功了!真的不再需要输入密码了。
无人值守数据拷贝:
方案:crontab 定时任务 加 nohup scp & 后台执行方式
crontable -e
30 11 * * * nohup scp -r /cdrbak1/cdrdata/sourcedata/ oracle@172.16.1.43:/ora_arch/ >/cdrbak1/cdrdata/scp.log 2>&1 &
相关推荐
### Linux/Unix网络编程知识点详解 #### 一、TCP/IP模型与OSI七层模型 在探讨具体的网络编程技术之前,我们首先需要了解网络通信的基本原理。Linux/Unix下的网络编程主要基于TCP/IP协议栈,它由四个层次组成:应用...
ARM架构服务器liunx/euler操作系统抓包文件。 亲测euler系统可用。
liunx查看日志命令详解
《linux/unix系统编程手册(上、下册)》是介绍linux与unix编程接口的权威著作。linux编程资深专家michael kerrisk在书中详细描述了linux/unix系统编程所涉及的系统调用和库函数,并辅之以全面而清晰的代码示例。...
经典的网络编程教材,详尽清晰,作者详略尺度把握非常到位
### Jenkins在Linux/Windows上安装与自动化部署详解 #### 一、引言 随着软件行业的快速发展,持续集成(CI)已成为提高软件开发效率和保障软件质量的重要手段之一。Jenkins作为一个开源的持续集成工具,因其灵活性高...
LINUX.UNIX系统编程手册(下册).pdf
本资料集中的“Liunx and Unix Shell 中文版”可能是关于如何使用这些Shell的教程或参考手册。 在Linux和Unix中,文件和目录管理是基础操作。例如,`ls`命令用于列出目录内容,`cd`用于切换目录,`mkdir`用于创建新...
本文将深入探讨Linux和Unix Shell的相关知识,帮助读者理解其核心概念、常用命令以及如何有效地利用Shell进行系统管理。 首先,让我们了解Linux和Unix的基本概念。Linux是一种自由和开放源代码的操作系统内核,由...
以上命令是Unix/Linux系统中最基础且实用的部分,熟练掌握这些命令能极大地提高日常工作效率。通过组合使用这些命令,可以实现更复杂的操作,如文件过滤、文本处理、自动化任务等。在使用时,应根据具体需求灵活运用...
liunx下使用oracle命令,包括开启和关闭oracle数据库服务。
6、liunx中LVM逻辑卷详解
在Linux操作系统中,`/dev/mem`是一个特殊的设备文件,它允许用户空间程序直接访问系统的物理内存。这种直接访问提供了对硬件底层的控制,但同时也伴随着潜在的安全风险。本篇将深入探讨`/dev/mem`、`/dev/kmem`的...
SecureCRT是最常用的终端仿真程序,是windows下登录UNIX或Liunx服务器主机的软件。绿色版本,直接解压即可用。WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与...
在Linux和Unix Shell中,还有一些实用的内置命令,如`echo`打印字符串,`read`读取用户输入,`source`或`.`用来执行当前目录下的脚本,以及`alias`创建别名,简化常用命令。这些内置命令使得日常操作更为便捷。 ...
Shell是Linux和Unix系统中的一种命令行界面,它允许用户通过文本命令与操作系统进行交互,执行各种任务,如文件操作、程序控制、脚本编写等。 1. **Shell基础**:Shell作为用户与操作系统之间的接口,提供了命令行...
在 Linux/Unix 下进行 ODBC 的安装可以使用两种方法:方法一是下载最新的 unixODBC 源码包,放到/usr/local 下,然后运行 configure 和 make install 命令来完成安装,安装成功后,unixODBC 所需的头文件都被安装到...
vmstat命令是常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix喜爱的命令,一个是Linux/Unix都支持...
Linux Crontab 定时任务 命令详解 Linux Crontab 是一个强大的定时任务命令,用于在指定的时间间隔执行特定的命令或程序。Crontab 命令的功能是在一定的时间间隔调度一些命令的执行,通过编写 Crontab 文件来实现。...
命令通常为`sudo service mysql restart`或`systemctl restart mysql`。 ### 性能优化 1. **内存调优**:合理设置内存使用参数,如`key_buffer_size`、`innodb_buffer_pool_size`等,平衡服务器资源利用。 2. **...