我经常发现自己镜像了很多服务器文件,这些服务器文件中包含数千个1kb-3kb 的小文件。所有服务器都连接到 1Gbps 端口,通常分布在各种数据中心。
SCP 一个一个地传输这些小文件,这需要很长时间,我觉得我在浪费我拥有的美丽网络资源。
我有一个想法;创建一个脚本,将文件分成相等的数量,并启动 5-6 个 scp 线程,理论上会快 5-6 倍,不是吗?但我没有任何 linux 脚本经验!
我正在尝试将scp文件从服务器传输到我的本地机器,但它给了我这个错误:
protocol error: unexpected <newline>
Run Code Online (Sandbox Code Playgroud)
这是我的语法:
scp user@server:/path/to/file .
Run Code Online (Sandbox Code Playgroud)
它在这台服务器上不起作用,但后来我在另一台服务器上尝试了相同的命令,所以我只能假设这是我的服务器出了问题,而不是scp命令的语法。
有任何想法吗?
我需要通过低质量的宽带链接将大量文件传输到服务器。文件很大,传输每个文件大约需要 30 分钟。
我使用 scp,但它有时会挂起 - 传输不会因错误而失败,它会继续运行,但不会传输更多数据。
因此,我正在寻找一种“故障安全”上传解决方案,即使链接失败几分钟或不可靠,该解决方案也能正常工作。
我的想法是:
问题:
我正在尝试使用 scp 将文件从一台服务器复制到另一台服务器。
在两台服务器上,我都将 ssh 端口配置为 222。两台服务器的 sshd_config 完全相同(没有 RootLogin,启用 PasswordAuthentication)
由于很多原因在这里解释太长,我不能使用密钥身份验证。
当我使用 scp 从服务器 A 复制到服务器 B(登录到 A)时,它可以工作。但是当我从 B 到 A(登录到 B)做同样的事情时它不起作用:我收到一条错误消息“权限被拒绝”并且 scp 不要求我输入密码(尽管启用了密码身份验证)
这是我使用的命令(登录服务器 B):
scp -P 222 -vvv ~/backup/file user@serverA:/home/user/backup
Run Code Online (Sandbox Code Playgroud)
这是输出的最后几行:
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: password
debug3: start over, passed a different list password
debug3: preferred publickey,keyboard-interactive
debug1: No more authentication methods to try.
user@serverA: Permission denied (password).
Run Code Online (Sandbox Code Playgroud)
为什么 scp 不要求我输入密码,而启用了“密码”(因为它写在第二个“debug1”行中)?
谢谢你。
如何为目标 ip 指定端口?当我这样做时,scp -p 0000它仍然尝试连接端口 22,而不是我指定的端口。
scp svn_backup.tgz user@xxx.xxx.xx.xxx:/path/to/new/svn/
Run Code Online (Sandbox Code Playgroud) 有谁知道使用 SCP/SFTP 删除远程服务器上超过 X 天的文件的好方法吗?当然,我可以在 perl 等上编写一些脚本,但我觉得这太过分了。
任何UNIX方式?
单线?
单独的实用程序?
谢谢
PS 任务是删除一些过时的备份文件。
我只想在一个 scp 命令 (Debian Linux) 中传输具有特殊扩展名的文件(例如只有 *.tar.gz、*.war)。这可能吗,如果是的话,语法如何?
应该是这样的:
scp 192.168.1.2:/srv/myfiles/'*.tar.gz *.war' .
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。
我需要:
我发现的选项和相关问题:
只
rssh
SSH 服务器
所以,我想知道还有哪些其他选择,或者其他人如何处理这个特定问题。
尝试将文件从 serverB 复制到 serverA 并收到以下错误:
root@server:~# scp /root/test.txt root@111.111.111.111:/home/somefolder/
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
lost connection
Run Code Online (Sandbox Code Playgroud)
在 serverA 上,我创建了一个没有密码短语的公钥/私钥对。在 serverB 上,我将公钥添加到 .ssh/authorized_keys 文件中。文件夹和文件都归 root 所有。
我最初用密码尝试了这个......因为它不起作用我创建了另一个没有密码的密钥。两者都给出了相同的结果。
这不是防火墙问题。serverA 是centos。serverB 是 ubuntu。
SCP 在我们公司的网络中很慢。为了测试,我从远程服务器复制了一个文件,该服务器通过路由器之间的 IPsec 连接。
使用时,scp -vv我收到很多这样的消息:
debug2: channel 0: window 1966080 sent adjust 131072
debug2: channel 0: window 1966080 sent adjust 131072
debug2: channel 0: window 1966080 sent adjust 131072
debug2: channel 0: window 1966080 sent adjust 131072
Run Code Online (Sandbox Code Playgroud)
我无法找出这条消息的含义。大多数情况下,人们报告在 SCP 停止时出现此消息。就我而言,我没有遇到 scp 停顿。根据其他网络运营商的说法,当应该有 1000 到 2000 kb/s 的下行速度时,它只是非常慢(下行 350kb/s)。
这些消息是什么意思?它们与我糟糕的 SCP 表现有什么关系吗?