centos6编译安装megatools

      前两天为了解决博客的备份问题,伤透了脑筋。用rsync是方便,但是需要一台独立的Linux的主机来实现备份。对于数据量不大的网站来说,上传到网盘最方便了。服务器在墙外,墙内的网盘肯定就不考虑了。wordpress的插件可以实现备份到dropbox,奈何dropbox免费账户容量太小,而且国内已经被墙,哪天要导出数据,手里没个翻墙工具还真会要命。

      于是乎就找到了来自新西兰的神器mega网盘,这网盘免费账户的容量都有50G,而且是端到端加密,只要密码足够强壮,连服务端都不会知道你上传了个啥。最主要的是,mega在目前国内并没有被GFW照顾,虽然网页打开可能稍慢,但是数据传输还是能跑到50-100kB/s,满足个简单备份需求够用。

      但是mega官方的Linux客户端只支持桌面环境,一般服务器上面是不会启用桌面环境的。于是乎,通过一番努力,找到了megatools(官网)这组实用的小工具。

      Megatools是捷克程序员Ondřej Jirman开发的一组命令行工具,开源免费,可以在win或者linux平台上面方便地通过命令行存取mega网盘,完全不依赖任何图形界面。而且这工具还支持streaming方式快速预览mega网盘上面的音视频文件,不过这些功能在服务器环境下都没啥卵用了。

      坑爹的是,megatools在centos下面是没有预编译版本的,需要自己动手编译,由于centos的yum源里面部分依赖库版本有问题,折腾了一晚上,绕了很多弯路,现在把编译的过程共分享出来。

1.安装编译所需的依赖库

yum -y install gcc make  libcurl-devel openssl-devel gmp-devel tar libffi-devel gettext-devel

2.由于centos yum源里面的glib版本太老,不满足megatools的编译需求,我们需要手动编译安装2.32.4版本。glib的编译比较费时间,如果你的服务器cpu性能比较弱,请耐心等待。

mkdir glib-source
cd glib-source/
wget http://ftp.gnome.org/pub/GNOME/sources/glib/2.32/glib-2.32.4.tar.xz
xz -d glib-2.32.4.tar.xz
tar -xvf glib-2.32.4.tar
cd glib-2.32.4/
./configure
make
make install

3.glib安装成功之后,我们就可以编译安装megatools了。

mkdir megatools-source
cd megatools-source/
#当你看到这篇文章时,软件版本可能已经更新
#请访问官网找到最新版本的下载地址,替换下一行wget后面的链接
wget https://megatools.megous.com/builds/megatools-1.9.97.tar.gz
tar -zxvf megatools-1.9.97.tar.gz
#需要定义两个变量,否则执行./configure会报错
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
#开始编译安装
cd megatools-1.9.97/
./configure
make
make check
make install

4.找到你当前用户的主目录,root登录的话就是/root。在主目录下建立一个文件名为“.megarc”(不含引号)的文件,用来保存登陆mega的账号密码。当然如果你不喜欢这种保存方式,你也可以在每次执行命令的时候手动指定相应的参数。

cd
vi .megarc

[Login]
Username = jjj@www.mm
Password = xxxxx

:wq!

5.执行megals,如果程序返回了你mega网盘下当前的目录结构,恭喜你,安装成功。

6.具体使用方法可以参考官方manual。这里列出一个简略的参考。

Tools
=====

  megareg      Register and verify a new mega account
  megadf       Show your cloud storage space usage/quota
  megals       List all remote files
  megamkdir    Create remote directory
  megarm       Remove remote file or directory
  megaput      Upload individual files
  megaget      Download individual files
  megadl       Download file from a "public" Mega link
               (doesn't require login)
  megastream   Streaming download of a file
               (can be used to preview videos or music)
  megacopy     Upload or download a directory tree
  megafs       Mount remote filesystem locally.


megadf [--free|--total|--used] [--mb|--gb|-h]
megals [-e] [-h] [--header] [-l] [-R] [-n] [<remotepaths>…]
megaput [--no-progress] [--path <remotepath>] <paths>…
megamkdir <remotepaths>…
megamkdir /Contacts/<contactemail>
megaget [--no-progress] [--path <path>] <remotepaths>…
megaget --path - <remotefile>
megarm <remotepaths>…
megarm /Contacts/<contactemail>
megadl [--no-progress] [--path <path>] <links>…
megadl --path - <filelink>
megareg [--scripted] --register --email <email> --name <realname> --password <password>
megareg [--scripted] --verify <state> <link>
megafs [-o <options>…] [-d] [-f] <mountpoint>

发表评论

邮箱地址不会被公开。 必填项已用*标注