shell从服务器复制文件夹,关于shell:如何使用scp将文件夹从远程复制到本地?...
如何使用scp将文件夹从远程复制到本地主机?
我使用ssh登录我的服务器。然后,我想把远程文件夹foo复制到本地/home/user/Desktop。
如何做到这一点?
操作的问题是,当ssh连接到远程主机时,是否可以将文件从远程主机复制到本地主机。我不知道为什么没有一个答案能正确回答他/她的问题。
请参阅meta.stackoverflow.com/questions/294217/…。问题还在这里,你也可以投票。它只是不允许有更多的答案。
这个问题的前提是不正确的。其思想是,一旦登录到ssh,如何将文件从登录的机器移回登录的客户机。但是,SCP不知道也不能使用ssh连接。它正在建立自己的联系。因此,简单的解决方案是在本地工作站上创建一个新的终端窗口,并运行SCP,将文件从远程服务器传输到本地计算机。例如,scp-i key user@remote:/remote dir/remote file/local dir/local file
这个问题可能是个话题外的话题,但它也是谷歌排名最高的帖子。锁定意味着没有人可以更新它来提供更好的解决方案。
使用mc:TAB、cd sh://USER@HOST,使用mc快捷键,完成后cd退出。
我最近问了一个类似的"稍微深入"的问题,关于另一个超级用户工具的命令行,它被那里的mods移动到stackoverflow。不管怎样,我同意mods的观点:我们能把它转移到超级用户,请把它解锁,并有更多的答案进来吗?
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
来自man scp(见在线手册)
-r Recursively copy entire directories
我每次都用谷歌搜索这个。相关漫画:xkcd.com/1168
@gryphius使用时,我继续收到一个拒绝权限(publickey)错误。我如何解决这个问题?
@John-K,许多可能的原因(服务器上未启用SCP、公钥未授权、文件权限问题…)。首先检查标准ssh是否与您的密钥一起工作。请参考SOF/ServerFault上关于该主题的现有问题,如果没有帮助,请使用ssh/scp的调试输出在ServerFault上询问新问题。
您必须在两台计算机上都设置RSA密钥-您可能还必须在本地计算机上运行ssh-add。
我发现了两个很好的消息:-C标志增加了压缩,-C标志允许您传入其他密码类型以获得更好的性能,如dimuthu答案中所示的scp -c blowfish a@b:something .。
scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/foo始终复制和替换
使用-p保存文件修改时间、权限等!scp-pr用户@…
这个答案缺乏重要的解释。你最终会和Desktop/foo一起结束还是会让Desktop/allcontentsofFooGohereSCP看起来很奇怪,有时对我来说,它会做一件接着一件的事情
例如(通常用于shell脚本):su myuser -c"scp -r /var/www/myapp.org/uploads root@$jcrdevip:/var/www/mydevapp.com/uploads"将内容从上载复制到上载。scp -r /var/www/myapp.org/uploads root@$jcrdevip:/var/www/mydevapp.com/uploads似乎将文件夹上载复制到mydevapp.com/uploads文件夹中,从而创建不需要的子文件夹。
@Toskan和scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/你应该以Desktop/foo结束。在scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/中,你将得到Desktop中foo的内容,以及Desktop中散布的foo的所有子目录。
要使用SCP的全部功能,您需要执行以下步骤:
公钥授权
创建ssh别名
然后,例如,如果您有这个~/.ssh/config:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
您将从密码输入中保存自己并简化SCP语法,如下所示:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
此外,您还可以使用远程路径完成:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
更新:
要启用远程bash完成,您需要在和主机上都有bash shell,并正确地工作bash完成。有关更多信息,请参阅相关问题:
如何在使用SCP时为远程路径启用自动完成功能?SCP文件名选项卡完成
不知道配置文件,这太棒了!
标签完成是胡说,只是完成从本地主机为我。
@B.long问题是"如何将远程文件夹foo复制到本地桌面"。我的答案是"scp-r prod:/path/foo/home/user/desktop"。希望你能看到关系。
@Bernhard远程选项卡完成是一个众所周知的过程。这对你来说是胡说八道:)
@可能是Alexanderyancharuk,但您的答案对我来说并不是这样,所以您的答案至少限于本地和/或主机上的某些版本。
@Bernhard对我来说很明显,因为我使用的是bash shell。谢谢你指点我!回答更新。
我的错误是@alexanderyancharuk,我以为你是在暗示OP(@slasengger)需要修改他的~/.ssh/config才能复制文件夹(这是不正确的)。现在我明白了,你正试图用无密码的ssh给他额外的便利。
@Alexander Yancharuk:感谢您的回答,这比只介绍语法更详细。
您还可以使用类似storm的工具来自动化向.ssh/config添加服务器的过程。
真的。。远程路径完成的关键点。我不知道。
将所有内容从本地位置复制到远程位置(上载)
scp -r /path/from/destination username@hostname:/path/to/destination
将所有内容从远程位置复制到本地位置(下载)
scp -r username@hostname:/path/from/destination /path/to/destination
自定义端口,其中xxxx是自定义端口号
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
在当前目录上从远程复制到本地
scp -r username@hostname:/path/from/file .
帮助:
-r递归复制所有目录和文件
始终使用来自/的完整位置,由pwd获取完整位置。
scp将替换所有现有文件
hostname将是主机名或IP地址。
如果需要自定义端口(除了端口22),使用-P portnumber。
. (dot)-它是指当前的工作目录,所以只能从服务器下载/复制并粘贴到这里。
注意:有时由于防火墙中不允许使用该端口,自定义端口将无法工作,因此请确保防火墙中允许使用自定义端口进行传入和传出连接。
看起来(至少在RaspbianJessie和Ubuntu的最新版本中)scp使用-p(大写p)作为端口,而(奇怪的是)ssh使用-p(小写)。
@阿丹普勒,你是对的,但大致上我总是用-p(小):)
-p用于保存"修改时间、访问时间和原始文件中的模式"。因此,如果您将它用于端口,那么它可能不起作用;-),除非您有一个不同的版本,以不同的方式使用小写字母P。
对于ssh,是的。不适用于SCP(我想)。
如果目录包含空格,我应该放什么?
@hyprcrcb使用pwd获取位置并使用相同的位置
_port_可能指当地?如果两个端口都不同怎么办?
@Timo没关系,因为您将在ssh登录后执行scp。
@但是如果我远程到本地,我就不会登录。
我经常使用的是:
scp -r username@IP:/path/to/server/source/folder/ .
. (dot):表示current folder。所以从服务器复制并粘贴到这里。
IP:可以是像125.55.41.311这样的IP地址,也可以是像ns1.mysite.com那样的主机。
感谢您指出.是指当前目录!
最好先压缩远程服务器上的目录:
tar czfP backup.tar.gz /path/to/catalog
其次,从远程下载:
scp user@your.server.example.com:/path/to/backup.tar.gz .
最后,提取文件:
tar -xzvf backup.tar.gz
"更好"在很大程度上取决于您传输的数据以及ssh到服务器进行压缩/解压的工作。并且:您可以使用-C标志向scp添加压缩,比如scp -C a@b:bigfile .。
这让我想起了@cptloop的评论!:d xkcd.com/1168
如果您有一个地狱般的文件要从远程位置下载,如果您不太关心安全性,请尝试将SCP默认加密(三重DES)更改为类似"Blowfish"。
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
根据这篇博客文章,你可以用arcfour代替blowfish,获得更好的性能,但是它有安全缺陷。
转到Unity工具栏上的文件
按ctrl+l在这里写下"你的用户"name@192.168.10.123
192.168.1.103是要连接的主机。
这里有一个例子
这个答案帮助了我。谢谢您。。。
典型场景,
scp -r -P port username@ip:/path-to-folder .
用样本解释,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
在哪里?
port = 27000
username ="abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
如果遇到"太多身份验证失败",请指定已添加到服务器ssh服务器的确切ssh密钥:
scp -r -i /path/to/local/key user@remote.tld:/path/to/folder /your/local/target/dir
问题是如何使用scp命令将文件夹从远程复制到本地。
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
但是,这里有更好的方法来使用sftp–ssh文件传输协议(也称为安全文件传输协议,或sftp)是一种网络协议,它提供文件访问、文件传输和任何可靠数据流上的文件管理(维基百科)。
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
要获得有关sftp命令的帮助,只需键入help或?。
我不知道为什么,但我必须在源服务器指令之前使用本地文件夹。使它工作
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org
假设用户有权限,您可以在不使用root@的情况下执行绝对路径吗?
shell从服务器复制文件夹,关于shell:如何使用scp将文件夹从远程复制到本地?...相关推荐
- ssh 远程复制文件_如何在不输入密码的情况下通过SSH远程复制文件
ssh 远程复制文件 SSH is a lifesaver when you need to remotely manage a computer, but did you know you can ...
- linux使用shell脚本利用expect工具实现SCP传输文件到多台服务器
1.安装expect yum install expect 2.设置服务器地址,用户名,密码,源路径,目标路径 新建文件host.txt添加如下内容 192.168.0.135 root 密码 源路径 ...
- linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...
本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...
- linux scp 排除文件夹,scp复制文件时排除指定文件
1. 前言 本文主要讲解如何在scp复制文件时排除指定文件. 举例: 我需要将所有*.c文件从名为hostA的电脑复制到hostB,包括所有目录.我使用以下scp命令,但不知道如何排除特定的文件(如* ...
- Linux服务器升级GLIBC失败导致shell不可用的问题解决经历
问题发生 试图通过编译安装升级Linux服务器的glibc库版本,install失败以后,shell中的大部分命令(ls,cat,rm,cp,ln,scp,vi,yum等)都执行报错,尝试新的ssh连 ...
- shell之for和if实现批量替换多目录下的文件
问题背景: 生产环境的项目图片文件夹众多,每个项目都会有一个图片文件夹,现在要批量替换每个文件夹下的一张模板图片 如图,我们要替换每一个文件夹下的01.jpg shell 脚本 #/bin/bash ...
- linux重定向多个文件,Linux base shell重定向详解
一.标准输入,标准输出与标准错误输出 在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名 ...
- linux创建文件内容三行,shell之创建文件及内容的方法示例
shell之创建文件夹: [root@vbox-nginx shell_command]# vi ./mkdir.sh #!/bin/sh parentDir="/media/sf_Proj ...
- 服务器无法拖动文件复制文件,IT服务器运维:艾锑人为您整理Win10系统下移动、复制、删除文件需要管理员权限的解决方法...
影响我们一生百倍差距的四大效应 观察者效应:你的世界是什么样是由你的观察决定的. 这个效应是在[潜能突破]研习营课堂上发现的,我们有个练习叫三生万物,每个人都会成为一次观察者角色,当大家在成为其他角色 ...
最新文章
- python 检验数据正态分布程度_Python DataFrame 检验数据正态分布及平均值差异检验...
- 北大 AI 公开课 2019 | 颜水成:人工智能行业观察与实践
- ACM Doing Homework again
- 学生签到系统c代码_C语言实现简单学生学籍管理系统
- Java高级篇 -- List选择及优化
- Redux中的功能式React式编程简介
- 软件工程课程周学习进度报告——第六周
- 【Matlab学习笔记】【数学形态学】膨胀、腐蚀、开运算、闭运算、击中击不中变换
- 过拟合的原因以及如何解决
- 罗克露计算机组成原理书籍,计算机组成原理
- PYS60版短信搜索程序
- 线程池为啥要用阻塞队列
- FFmpeg的HEVC解码器源代码简单分析:CTU解码(CTU Decode)部分-PU
- Linux命令df和du
- Unity 0.Interactive Tutorials
- textarea 中的换行、空格; 如何处理
- 细说jbd(journal-block-device) 源码分析
- petalinux制作自动启动应用过程中遇到的问题解决
- 神秘永远的《加州旅馆》
- 岩棉夹芯板英标BS476-20BS476-22耐火测试
热门文章
- 《剑指offer》—— 42. 和为S的两个数字(Java)
- 在新版 Edge 中添加 IDM Integration Module
- 腾讯云COS全球加速,解决弱网传输慢的难题!
- 【Maven】私服搭建与使用:nexus,repository,mirror,distributionManagement
- 宏基因组测序结果分析中的名词汇总
- java lombok.getter_Lombok注解@Getter @Setter详解
- STS报错“HttpServlet cannot be resolved to a type”
- opencv人脸检测+美颜
- Python爬虫(一)—— 中国大学排名
- Springboot @EnableAutoConfiguration 详解