scp和sftp常用操作
文件异地直接复制: scp
SCP的全称是secure copy (remote file copy program),此命令是openssh-clients附带的,它的作用就是在机器之间实现拷贝,且机器之间的传输完全是加密的。
最简单的 scp 用法如下:

[root@www ~]# scp [-pr] [-l 速率] file [账号@]主机:目录名 <==上传
[root@www ~]# scp [-pr] [-l 速率] [账号@]主机:file 目录名 <==下载
选项与参数:
-p :保留原本档案的权限数据;
-r :复制来源为目录时,可以复制整个目录 (含子目录)
-l :可以限制传输的速度,单位为 Kbits/s ,例如 [-l 800] 代表传输速限 100Kbytes/s # 1. 将本机的 /etc/hosts* 全部复制到 127.0.0.1 上面的 student 家目录内
[root@www ~]# scp /etc/hosts* student@127.0.0.1:~
student@127.0.0.1's password: <==输入 student 密码
hosts 100% 207 0.2KB/s 00:00
hosts.allow 100% 161 0.2KB/s 00:00
hosts.deny 100% 347 0.3KB/s 00:00
# 文件名显示 进度 容量(bytes) 传输速度 剩余时间
# 你可以仔细看,出现的讯息有五个字段,意义如上所示。 # 2. 将 127.0.0.1 这部远程主机的 /etc/bashrc 复制到本机的 /tmp 底下
[root@www ~]# scp student@127.0.0.1:/etc/bashrc /tmp

其实上传或下载的重点是那个冒号 (:) 啰!连接在冒号后面的就是远程主机的档案。 因此,如果冒号在前,代表的就是从远程主机下载下来,如果冒号在后,则代表本机数据上传啦! 而如果想要复制目录的话,那么可以加上 -r 的选项!
例题:
答:
dd if=/dev/zero of=/root/dd_10mb_file bs=1M count=10
建立妥当之后,由于是上传数据,观察 -l 的选项中,那个速率用的是 bit ,转成容量的 bytes 需要乘上 8 倍,因此指令就要这样下达:
scp -l 800 /root/dd_10mb_file root@127.0.0.1:/tmp
模拟 FTP 的文件传输方式: sftp
ssh 是登入远程服务器进行工作,那如果你只是想要从远程服务器下载或上传档案呢? 那就不是使用 ssh 啦,而必须要使用 sftp 或 scp。这两个指令也都是使用 ssh 的通道 (port 22),只是模拟成 FTP 与复制的动作而已。我们先谈谈 sftp ,这个指令的用法与 ssh 很相似,只是 ssh 是用在登入而 sftp 在上传/下载文件而已。
[root@www ~]# sftp student@localhost
Connecting to localhost...
student@localhost's password: <== 这里请输入密码啊!
sftp> exit <== 这里就是在等待你输入 ftp 相关指令的地方了!
进入到 sftp 之后,那就跟在一般 FTP 模式下的操作方法没有两样了!底下我们就来谈一谈, sftp 这个接口下的使用指令吧!
| 针对远方服务器主机 (Server) 之行为 | |
| 变换目录到 /etc/test 或其他目录 | cd /etc/test cd PATH |
| 列出目前所在目录下的文件名 | ls dir |
| 建立目录 | mkdir directory |
| 删除目录 | rmdir directory |
| 显示目前所在的目录 | pwd |
| 更改档案或目录群组 | chgrp groupname PATH |
| 更改档案或目录拥有者 | chown username PATH |
| 更改档案或目录的权限 | chmod 644 PATH 其中,644 与权限有关!回去看基础篇! |
| 建立连结档 | ln oldname newname |
| 删除档案或目录 | rm PATH |
| 更改档案或目录名称 | rename oldname newname |
| 离开远程主机 | exit (or) bye (or) quit |
| 针对本机 (Client) 之行为(都加上 l, L 的小写 ) | |
| 变换目录到本机的 PATH 当中 | lcd PATH |
| 列出目前本机所在目录下的文件名 | lls |
| 在本机建立目录 | lmkdir |
| 显示目前所在的本机目录 | lpwd |
| 针对资料上传/下载的行为 | |
| 将档案由本机上传到远程主机 | put [本机目录或档案] [远程] put [本机目录或档案] 如果是这种格式,则档案会放置到目前远程主机的目录下! |
| 将档案由远程主机下载回来 | get [远程主机目录或档案] [本机] get [远程主机目录或档案] 若是这种格式,则档案会放置在目前本机所在的目录当中!可以使用通配符,例如: get * get *.rpm 亦是可以的格式! |
就整体而言, sftp 在 Linux 底下,如果不考虑图形接口,那么他已经可以取代 FTP 了呢!因为所有的功能都已经涵盖啦!因此,在不考虑到图形接口的 FTP 软件时,可以直接关掉 FTP 的服务,而改以 sftp-server 来提供 FTP 的服务吧! ^_^
例题:
答:

[root@www ~]# sftp student@localhost
sftp> lls /etc/hosts <==先看看本机有没有这个档案
/etc/hosts
sftp> put /etc/hosts <==有的话,那就上传吧!
Uploading /etc/hosts to /home/student/hosts
/etc/hosts 100% 243 0.2KB/s 00:00
sftp> ls <==有没有上传成功?看远程目录下的文件名
hosts
sftp> ls -a <==那有没有隐藏档呢?
. .. .bash_history .bash_logout
.bash_profile .bashrc .mozilla hosts
sftt> lcd /tmp <==切换本机目录到 /tmp
sftp> lpwd <==只是进行确认而已!
Local working directory: /tmp
sftp> get .bashrc <==没问题就下载吧!
Fetching /home/student/.bashrc to .bashrc
/home/student/.bashrc 100% 124 0.1KB/s 00:00
sftp> lls -a <==看本地端档案档名
. .font-unix keyring-rNd7qX .X11-unix
.. .gdm_socket lost+found scim-panel-socket:0-root
.bashrc .ICE-unix mapping-root .X0-lock
sftp> exit <==离开吧!

scp和sftp常用操作的更多相关文章
- SFTP上传下载文件、文件夹常用操作
SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文 ...
- Linux常用操作练习
Linux常用操作练习 练习一:安装CentOS 1.设置为1G内存(才有图形界面).10G硬盘 2.分给交换分区2G(4G一下2G,8G-32G分4G-8G) 练习二:安装CentOS迷你版 1.安 ...
- linux学习(2):linux服务器常用操作和命令
linux服务器常用操作和命令 目录 1. 什么是linux服务器load average?2. 如何查看linux服务器负载3. 服务器负载高怎么办?4. 如何查看服务器内存使用率?5. 如何查看单 ...
- Linux下常用操作
************************ 镜像操作 ************************************* screen -s name 新建 screen -r name ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
随机推荐
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
[前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...
- 兼容性 memo
一.async 与 defer <script src="js/require.js" defer async="true" ></scrip ...
- VSTO:使用C#开发Excel、Word【13】
应用程序对象的操作本章将介绍从Application对象开始的Excel对象模型中的一些主要对象. Excel对象模型中的主要对象有许多方法和属性,完全描述这些对象超出了本书的范围.相反,本章重点介绍 ...
- Code::Blocks环境下导入WS2_32.lib文件
打开菜单选项中 Settings -> Compiler 点击Add 找到lib文件的路径,导入 点击OK--OK,完成!
- 分布式系统定时任务,保证只有一个服务执行了改任务--采用redis分布式锁来实现(文章摘自:https://www.cnblogs.com/0201zcr/p/5942748.html)
文章摘自:https://www.cnblogs.com/0201zcr/p/5942748.html package com.abtc.server.mine.common.utils; impor ...
- 初始C#(二)
一 数组 定义:能存放任意多个同类型数据 声明与赋值:声明:数据类型[ ]变量名 赋值:变量名=new 数据类型[长度] ...
- python如何实现像shell中的case功能
我们知道在shell脚本里是支持case语句,当位置参数为空时,会提示我们怎么使用脚本 那么在python怎么实现呢?也使用case吗? python里不支持case语句,但是也有实现case的方法. ...
- Python基础10_函数
直接贴笔记 : #!/usr/bin/env python # coding:utf-8 # 定义函数时要写成良好的注释习惯 通常用三个单引号 def test(x): ''' 计算一个y=2*x+1 ...
- C# 开发ModBus的服务器程序 实现ModBus数据总站 搭建自定义的Modbus服务器 同时支持tcp和rtu
前言 本文将使用一个NuGet公开的组件技术来实现一个ModBus TCP的服务器端数据引擎,方便的实现接收来自各种设备的数据.并且该服务器模拟真实的设备,包含了数据池功能,可以接受来自任何支持Mod ...
- Unable to resolve module crypto
Add rn-nodeify to your devDependencies in package.json: "devDependencies": { "rn-node ...