在某些情况下,自己的机器直接scp或者rsync拷贝文件到服务器上,速度非常慢。可能的原因链接的网络限制了某些流量。但是在多数情况下,我们自己的机器直接上传/下载文件到google drive或者服务器上传/下载到google drive通常速度可以占满带宽。利用这个特性,就可以借助google drive作为中转,提高本地与服务器之间的文件拷贝速度。

配置google drive api

参考rclone gdrive api 配置,一步一步获得你的client ID等信息。

注意!可以配置root_folder_id使得服务器上的rclone只能访问特定的文件夹,保证网盘的安全。

安装配置rclone

Rclone是一个好用的云存储管理软件,支持非常多的云存储,比如google drive和one drive等。而且rclone跨平台客户端丰富。

linux下只需要下载它对应的包解压即可。

参考rclone Google Drive,使用rclone config命令,根据提示,一步一步选择和填写对应的API ID等信息即可。

常用命令

https://rclone.org/commands/

Copy

我一般常用的命令是

rclone copy --exclude core -P ./project_data g:/remote_data/

Sync

将本地的project_data目录同步到gdrive上,并保持完全一致,排除在.exclude中列出的文件和文件夹。sync命令只会修改目标文件夹,而不修改source文件夹。

rclone sync --exclude-from=./.excluded_files.txt ./project_data g:/project_data

.excluded_files.txt里的内容格式类似如下:

/benchmark/
/ml_scripts/.downloads/

project_data/

可以结合Linux自带的crontab设置定时任务:

30 3 * * * /home/users/yhao24/opt/rclone/rclone sync --exclude-from /storage/users/yhao24/.rclone_exclude  /storage/users/yhao24/p ncsu:/p

Tips

由于零碎小文件的传输速度要比一个大文件的传输慢很多,所以如果只是想要在本地和服务器之间传输某些超级大的文件夹,可以先用7zip压缩

下面命令的意思就是用7z压缩一个gpunk.7z文件,排除.exclude-file.txt中列出的文件和文件夹。7z默认支持多线程压缩,所以会比tar或者zip快很多,而且文本压缩率也高很多。

7zr a -t7z gpupunk.7z ./gpupunk -xr@.exclude-file.txt

文章版权归 FindHao 所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明作者 FindHao 和本文原始地址:
https://findhao.net/easycoding/2585.html

Comments