环境: 我本地 macOS 系统 local, 远程服务器 s1, s2, s3
需求: s1 s2 s3 之间文件互相拷贝
之前我用的是 scp, 但是每天都需要敲蛮长的命令
有什么 gui 工具可以直接把 s1 的文件拖到 s2 上吗,现在找到的工具是 local 可以和 s1 文件互拖
1
ladypxy 2018-10-13 10:22:32 +08:00 via iPhone 1
Rsync 啊
|
2
cdwyd 2018-10-13 10:22:47 +08:00 via Android
不说说 s1s2s3 什么系统吗?
linux rsync win 的话我是直接开了 web 服务下载 另外三台机器相互备份是什么需求? |
3
fangyh09 OP 每次拷贝的路径不一样
|
6
myself 2018-10-13 10:25:35 +08:00 via Android
写个脚本
|
7
ffffish 2018-10-13 10:26:53 +08:00
transmit, forklift
|
8
GGGG430 2018-10-13 10:27:32 +08:00 via iPhone
这种情况一般是写一个 shell 脚本,把你常用的拷贝命令封装到里面,而 source,destination,path 之类的就作为参数
|
9
hunk 2018-10-13 10:27:50 +08:00
scp
|
10
fangyh09 OP |
12
lululau 2018-10-13 10:29:06 +08:00
iTerm2 Shell Integration
|
15
forgetandnew 2018-10-13 10:30:05 +08:00
rsync
|
16
ymj123 2018-10-13 10:39:25 +08:00 via Android
rsync 真的比 scp 好吗?我这边追求极致的速度,都是用的 scp,rsync 比 scp 慢一点点。
|
17
AEANWspPmj3FUhDc 2018-10-13 10:41:20 +08:00
个人倾向用 Rsync,增量同步的。
Windows 有 cwRsync |
18
yjd 2018-10-13 10:44:03 +08:00 via Android
为什么不写成 sh
|
19
lihongjie0209 2018-10-13 10:44:08 +08:00
@ymj123 你断点 增量试试
|
20
limbo0 2018-10-13 10:49:32 +08:00 via Android 1
关键字 nc 文件传输
开个命令直接传 |
21
nosay 2018-10-13 10:51:30 +08:00
termius 的 sftp 可以满足需求,但是价格不菲.
|
22
hshpy 2018-10-13 11:00:55 +08:00
alias zsh 自动捕全
|
23
hshpy 2018-10-13 11:08:03 +08:00
错了,忽略。
|
24
liangzi 2018-10-13 11:12:28 +08:00 via Android
rsync 有个 --include-from=file.list 你写好了 file.list 内容 脚本自动同步 即使有变化也只是改 file.list 里面内容
|
25
weyou 2018-10-13 11:24:57 +08:00 via Android
syncthing
|
26
falcon05 2018-10-13 11:26:24 +08:00 via iPhone
filezilla 可以 sftp 传
|
27
diggerdu 2018-10-13 11:26:31 +08:00 via iPhone
不用搞得这么复炸 sshfs
|
28
cabing 2018-10-13 11:30:28 +08:00
nc 命令很方便吧。
|
29
fangyh09 OP 我最后用了 sh+complete
|
30
wyssurvivor 2018-10-13 11:35:59 +08:00
我都 scp
|
33
TonyLiu2ca 2018-10-13 11:40:29 +08:00
rsync + shell 脚本
再说这不是互相拷贝,是数据同步吧 |
34
mattx 2018-10-13 11:41:31 +08:00
可以开启 ssh 秘钥转发, 这样服务器就可以直接使用 mac 这里的秘钥. 然后 用 rsync, 写个脚本包装下. 比如
rsync -atzH --progress -e "ssh -p xxxx" $1 $2 ,和 scp 用法差不多, 但是 rsync 有断点续传挺好的. |
35
itfanr 2018-10-13 12:15:48 +08:00 via Android
nfs samba cp
|
36
a852695 2018-10-13 12:18:13 +08:00
在 a 机器对应的目录下用,python -m http.server 临时启 server,在 b 机器通过 wget ip:port/file.txt ,可以下载下来。用完可以直接关闭 server 进程。
|
37
likuku 2018-10-13 12:36:30 +08:00
每次路径不同?那么它们有没有个共同的上层目录 /路径?有的话,直接用 rsync 对此上层目录同步到本地即可。
毕竟 rsync 是差异比对同步,之前复制过的 /同步完成的,则不会被再次传输。 |
38
likuku 2018-10-13 12:39:46 +08:00
但,若是 s1 s2 s3 之间是交叉增量互相同步,那么会可能引起版本冲突,那么,最好用 git 之类带版本控制的办法,
当然,s1 s2 s3 都向同一台 git 服务器提交和下拉同步 |
39
realityone 2018-10-13 12:41:39 +08:00 via iPhone
@ymj123 极致速度请用 nc
|
40
necomancer 2018-10-13 12:44:17 +08:00
可以考虑 NFS 系统吗?相当于三个服务器共用硬盘。
|
41
Tink 2018-10-13 12:46:32 +08:00 via iPhone
magic wirmhole
|
42
ps1aniuge 2018-10-13 13:05:23 +08:00
问:powershell 经过 ssh,远程运行命令,比 bash 强在哪?
答: =============linux 远程命令 & ps 远程命令 对比例子============ linux: ssh [email protected] "以用户 aaa 权限执行的,命令 xxx" ps: $a = 1 [scriptblock]$备份命令 = { Get-Date $b = $using:a + 2 #引用客户机变量,需要用$using: } $连接 1 = New-PSSession -HostName 1.1.1.1 -UserName root #手动输入密码或用-KeyFilePath 选项 invoke-command -ScriptBlock { $备份命令 } -Session $连接 1 ============================================================ bash 的远程命令,简单直接。就好像我左手这盘蛋炒饭,简单解饿,但是不够强。更适用于 简单远程命令场合。 你再看看我右手这盘盖饭好在哪?答:生菜垫底,萝卜雕花围边。 bash 远程传递的是 [字符串] ,powershell 传递的是 [代码块] 。特色是 [对象垫底,大花括号围边] 。 字符串传递到远程时,经常需要要转义。代码块不用。 代码块,支持多行,格式化,使代码美观。 变量名,函数名支持中文。 代码块中,支持引用客户端变量,一律加上 [$using:] ,即客户机上的 [$a] ,在服务器上叫 [$using:a] 代码块中,支持引用服务器端变量,即服务器上的 [$a] ,在服务器还上叫 [$a] 即使变量重名,两个$a 也绝不会弄混。 ps 用大花括号包围代码,不用单双引号,代码嵌套很容易。 而代码嵌套容易,使的 ps 的 ssh 远程,从 server1 (跳板机,堡垒机)经 ssh 进入 server2,再 ssh 进入 server3,进入 33 层 ssh server 执行命令很容易。而 shell 难。 远程代码天生不老稳定的,有时没反应,或卡住,或中途断了。遇到此情形,每行 ps 代码都可以在外面套上 try-cacth,比 shell 更稳。 批量 ssh,ps 采用 [多线程] ,比 bash 用 [多进程] 快,时间准,省内存。 |
43
ps1aniuge 2018-10-13 13:12:00 +08:00
书接上回。。。
1 用 powershell 可以在 win 下编写图形界面。mac 我就不知道了。 图形界面编写起来很简单,不外乎,源目录,目的目录,是否复制子目录,确定。 图形界面用于产生值。 2 上面所述,ps 的 ssh 远程,从 server1 (跳板机,堡垒机)经 ssh 进入 server2,再 ssh 进入 server3,进入 33 层 ssh server 执行命令很容易。而 shell 难。 从本地,经 ssh 发送命令给 s1,然后让 s1 发送命令给 s2,即可。 s1 发送给 s2 的命令,是 bash 命令。可以是 rsync,scp 等。也就是大家上面说的。 ps 脚本用于,嵌套 远程传值。 |
44
kios 2018-10-13 13:19:20 +08:00
sshfs 我用的是这个
|
45
jjianwen68 2018-10-13 13:43:34 +08:00
nodejs 的 http 服务:node-file-manager 可以同时做上传下载,anywhere 只能下载
|
46
dudesun 2018-10-13 13:46:44 +08:00
tar nc
|
47
adadada 2018-10-13 14:13:24 +08:00 via iPhone
cyberduck 可以把远端存储 mount 成到本地,然后在文件管理器里面直接互相拖就可以了。
|
48
chengxiao 2018-10-13 15:27:31 +08:00
我最近是用 forklift 两边拖
|
50
SamsonWang 2018-10-13 16:14:40 +08:00
我也是 scp,shell 里试试 Ctrl+R,这样每次就只需要改一点点就行了
|
51
264768502 2018-10-13 17:06:49 +08:00 via Android
ftp fxp
|
52
ymj123 2018-10-13 17:41:25 +08:00 via Android
@lihongjie0209 对哦,你提醒了我,rsync 可以增量传。应该速度会更快。下周去把脚本命令换了。
|
53
sigup 2018-10-13 18:30:42 +08:00
sshfs 挂载到 3 个目录, 然后打开 3 个窗口, 复制粘贴
|
54
zealzz 2018-10-13 18:39:27 +08:00 via Android
以前用 scp 现在用 rsync,增量同步,还是很不错的
|
55
xuanbg 2018-10-13 20:29:17 +08:00
ftp,nfs,fxp。。。
办法很多,因地制宜就好了。 |
56
tt0411 2018-10-13 22:13:49 +08:00
scp 也好, nc 也罢, 大家好像都没答到点子上, 感觉楼主只是想找个工具动动鼠标就能复制文件, 而不用敲命令
|
57
ykrl089 2018-10-13 22:36:03 +08:00
forklift
|
58
hshpy 2018-10-13 23:04:00 +08:00 via iPhone
压缩成一个文件。。。
|
59
ps1aniuge 2018-10-14 13:02:32 +08:00
不管用什么,从 c1 到 c2,
1 得走一个文件传输协议。 scp 走 ssh。 ftp 走 fxp。 rsync 走 rsync,或 ssh。 http,https 也行。 2 得搭建服务器 /客户机. 3 或许得在 c1,c2 上安装基于这个协议的,图形客户端。 而 powershell,在 win 上,可以编写 gui 界面。在 mac,linux 上,可以编写 tui 界面。还不用在 c1,c2 上装图形库。 |
60
beginor 2018-10-15 07:53:50 +08:00 via Android
glusterfs 了解一下
|
61
l4ever 2018-10-15 08:12:41 +08:00 via iPhone
rsync
|
62
zhouzm 2018-10-15 13:37:37 +08:00
$> man scp
-3 Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts. Note that this option disables the progress meter. $> man rsync Rsync copies files either to or from a remote host, or locally on the current host (it does not support copying files between two remote hosts). 也就是说 scp 可以直接在两台远程主机间传输而 rsync 不能。 建议楼主可以在 mac 上写个脚本快速生成待传输文件列表,再怎么变化总会有一定规律的吧?然后再用 scp 写个传输脚本就可以了。 当然了,在此之前做好 ssh key 密钥配置免密码登录是必要的。 另外: 如果楼主迷恋于 gui 工具的可视直观性。可以试一下 Double Commander (Free) 或者 Commander One (Freemium),使用 sftp 连接服务器,两个面板拖拽一下也挺方便的。 |
63
4ever911 2018-10-17 00:01:56 +08:00
scp alias
|
64
panzhc 2018-10-20 11:29:48 +08:00
编辑 $HOME/.ssh/config
Host s1 HostName 1.1.1.1 User root Port 22 Host s2 HostName 1.1.1.2 User root Port 22 Host s3 HostName 1.1.1.3 User root Port 22 Mac 上执行 scp -3r s1:/path s2:/path scp -3r s1:/path s3:/path |