两台 mac 通过 scp 命令快速传输数据

简介: 两台 mac 通过 scp 命令快速传输数据

这两天由于电脑进水了,所以申请换了一台 mac 电脑,所以想把老电脑的数据拷贝到新电脑,折腾了半天,最后还是发现 scp 命令最好用。

使用 「scp 命令方式」之前尝试的其他方法

1、隔空投送

刚开始使用那个隔空投送功能,但是发现不知道啥原因,只能传输几kb的文件,超过这个大小的文件都需要登录 ICound 账户,但是咱没有这个啊,没版本,放弃这个方法了。

PS: 隔空投送功能以前也用过,但是以前没遇到过这个问题,不管多大的文件都能随便传,不知道这次是不是老电脑系统版本问题导致有这个限制。

2、数据线数据传输

后来想用数据线直接连接两个电脑。这个方式遇到的问题也比较多:

刚开始是公司的电脑,端口被禁用了,不让使用数据线/USB导出数据,所以还申请了一个白名单;

后来申请完白名单发现需要等半小时才能生效,那就等吧,咱有啥办法;

等了 40 分钟后,用数据线把新老电脑一连接,发现在新电脑提示老电脑磁盘无法识别,这个方式又败北了。

提示:

通过数据线来数据传输,需要让老电脑进入USB 模式,进入的方式是关机,然后点点开按钮,随后长按按键「T」,直到屏幕出现 USB 的图标。

3、迁移助理

再后来想用迁移助理,发现迁移助理有两种模式

  • 模式一:直接用老电脑的账户覆盖新电脑的账户,把数据完全复制过来;这显然不是我想要的,新电脑我已经装好了开发环境,如果被覆盖了,万一出现某个工具不能用,不是又得重新装一遍开发环境
  • 模式二:新老电脑的账户同时存在,但是因为我的两个电脑用户名一样,需要给新电脑换用户名,我开发环境里有不少环境变量里都写了用户名了,这突然让我改,这不是想让我重装环境吗

于是迁移助理也败北了。

差点放弃了,后来想到了使用 scp 命令配合局域网来数据传输。下面介绍一下怎么通过 scp 命令在两台 Mac 中传输数据

scp 方式传输数据操作步骤

步骤一:打开新电脑的「远程登录开关」

设置中搜索「共享」,打开「远程登录开关」1456655-20230111233804335-1335622485.png

不同版本的 Mac 可能界面略微有些不一样,可能有些 Mac 「共享」功能界面是这样的1456655-20230111234307278-106204047.png

步骤二:检查远程登录开关打开后 sshd 服务是否成功启动

ps auwx | grep sshd

如果启动成功,会输出一条 sshd 的记录,如果没有输出 sshd 的记录,所以 sshd 服务没有启动成功。

如果没有启动成功,手动执行 /usr/sbin/sshd 命令来启动 sshd 服务

如果启动成功则继续按照步骤三继续操作, 如果启动时报错 sshd: no hostkeys available -- exiting.,说明需要生成一些列的密钥啥的

  • 执行如下命令:

sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_dsa_key
chmod 600 /etc/ssh/ssh_host_rsa_key
  • 重新启动终端:

ssh localhost
  • 然后再次尝试启动 sshd

/usr/sbin/sshd

步骤三:找到新电脑的 ip 和用户名

在新电脑的终端执行 ifconfig 找到新电脑的 ip 地址。

在新电脑的终端执行 who am i 找到自己的电脑用户名

在老电脑中执行 scp 命令复制文件夹到新电脑

scp -r localdir user@host:$dirpath  # 即 scp -r 本地目录路径 远程主机用户名@ip:存放文件路径

-r 表示传输的是文件夹,如果只是传输文件,则不需要加此参数

可能的报错

如果执行 scp 命令时提示 ssh: connect to host xx.xx.xx.xx port 22: Connection refusedlost connection,说明 sshd 服务没开启成功,检查接受数据的电脑「远程登录开关」是否开启,按照第二部检查 ssd 服务是否启动。

小问题

scp 传输的速度不算快,20G 文件,传输了大约3个小时。算是美中不足吧。

参考mac开启ssh服务



相关文章
|
1天前
|
存储 Shell
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
109 0
|
1天前
|
Shell 测试技术 Python
在Mac上用Python调用终端执行命令
在Mac上用Python调用终端执行命令
10 1
|
1天前
|
存储 搜索推荐 Shell
mac下终端命令提示补全
mac下终端命令提示补全
78 0
|
6月前
Mac 下终端命令无法使用的问题
Mac 下终端命令无法使用的问题
126 1
|
7月前
|
Go 数据安全/隐私保护 iOS开发
Mac系统重装指南(不抹盘):2023版保姆级教程,轻松解决macOS问题并保留数据和软件
Mac系统重装指南(不抹盘):2023版保姆级教程,轻松解决macOS问题并保留数据和软件
168 0
|
8月前
|
移动开发 Unix Linux
sed命令在Mac和Linux下的不同
sed命令在Mac和Linux下的不同
46 0
|
1天前
|
Shell Docker 容器
mac终端命令补全设置(docker 命令补全)
mac终端命令补全设置(docker 命令补全)
60 0
|
6月前
|
数据可视化 应用服务中间件 nginx
Mac使用命令可视化编辑文件(open命令)
Mac使用命令可视化编辑文件(open命令)
58 0
|
6月前
|
缓存 网络安全 开发工具
Mac/Windows Git配置SSH和Git常用命令及iTerm2使用技巧
Mac/Windows Git配置SSH和Git常用命令及iTerm2使用技巧
143 0
|
8月前
|
Linux iOS开发 MacOS
Mac用户注意了,你的sed命令...
Mac用户注意了,你的sed命令...