bypy使用方法记录

命令行的百度云bypy全记录

Posted by ivo on February 19, 2018

自从bcloud项目停了以后,我好长时间没有再用过linux相关的百度云.直到换了archlinux以后,想试试这个命令行的下百度云.然后发现这东西官方给的例子真的太少了.这里记录一下整个过程.

安装

这个工具是基于python开发的.所以最简单的方式就是使用pip安装.由于我是新装的arch所以,我要先安装python-pip.命令 sudo pacman -S python-pip.之后sudo pip install bypy就好了

初始化

工具安装完了,你需要有一个百度云的帐号,初始化以后会在云盘里面出现一个我的应用数据这里面有一个bypy的文件夹.这个就是你的工具的根目录,你要上传下载的文件都在这里面而不是其他的地方.

终端里面输入bypy以后会出现的是bypy的英文帮助信息.这时候输入bypy info,一定要看提示啊,要去访问中间出现的那个网址,获取baidu的api信息.看好了是不是你的帐号,不是的话切换一下帐号,然后把授权码 贴近去,回车,等待直到出现你网盘的容量信息.这时候info就添加完了,这个授权码只需要添加一次就好了.如果有错误或者换号了.可以删除~/.bypy/下面的3个文件,重新做一遍就好了.

使用

  • 更详细的了解某一个命令:bypy help <command>
  • 显示在云盘(程序的)根目录下文件列表:bypy list
  • 把当前目录同步到云盘:bypy syncup 或者bypy upload
  • 把云盘内容同步到本地来:bypy syncdown --downloader aria2或者bypy downdir / --downloader aria2这个命令不好用,要在后面加 –downloader aria2,要不没有速度
  • 比较本地当前目录和云盘(程序的)根目录(个人认为非常有用):bypy compare
  • 下载文件 bypy downfile 下载文件名
  • 上传文件 bypy upload 文件名
  • 在远端创建文件夹tmp bypy mkdir tmp/bypy

  • 运行时添加\ -v\ 参数,会显示进度详情。
  • 运行时添加\ -d\ ,会显示一些调试信息。
  • 运行时添加\ -ddd\ ,还会会显示HTTP通讯信息(\ 警告:非常多\ )

  • bypy upload localfile cloudfile bypy upload ./123.txt /cloud.将本地123.txt文件上传到云盘我的应用程序(apps) /bypy/cloud 文件夹内.也可上传整个文件夹,命令示例如下:bypy upload /123 /cloud .将本地123文件夹内所有文件上传到云盘 apps/bypy/cloud 文件夹内.

应用

该部分引用自https://samzong.me/2017/06/02/howto-install-bypy

数据库自动上传备份

# create back script.
[root@localhost ~]# touch mysql_back.sh
# add executable permissions
[root@localhost ~]# chmod +x mysql_back.sh
[root@localhost ~]# vim mysql_back.sh
#!/bin/bash
#  
# backup mysqldump file to baidu yunPan
# filepath: /usr/local/bin/mysql_back.sh
# Author: samzong
#
function upload_file(){
        TIME=`date "+%Y%m%d%H%M%S"`
        folder="/mysqlbak"
        filename="db_$TIME.sql"
        filePath=$folder/$filename
        if [ ! -f $filePath ]; then
                echo "[ERROR]["`date +%Y-%m-%d' '%H:%M:%S`"] $folder/$filename not found."
        else
                echo "[INFO]["`date +%Y-%m-%d' '%H:%M:%S`"] $folder/$filename has been found. Start uploading ......"
                bypy upload "$filePath" "v6/mysql_backup/$filename"
                echo "[INFO]["`date +%Y-%m-%d' '%H:%M:%S`"] Uploading end."
        fi
}
#  set TIME variable
TIME=`date "+%Y%m%d%H%M%S"`
# backup db ghost to /mysqlbak/
mysqldump --single-transaction -h localhost -u ghost_backuser -pbackupPass ghost  > /mysqlbak/db_$TIME.sql
# tar sql file
tar czvf /mysqlbak/ghost_$TIME.sql.tgz /mysqlbak/ghost_$TIME.sql --remove-files
# upload sql file to baidu yunPan.
upload_file;
# send mial to admin'mial
if [ $? -eq 0 ]; then
    echo "ghost SQL dump is successfully. At time: `date` " | mail -s ghost-dump-successfully  samzong.lu@gmail.com
else
    echo " Error Error ghost SQL dump is Error. At time: `date` " | mail -s ghost-dump-error samzong.lu@gmail.com
fi

添加定时任务

 crontab -e
00 00 * * * sh /usr/local/bin/mysql_back.sh

本文部分引用https://github.com/houtianze/bypy/blob/master/README.md. http://blog.csdn.net/aliveqf/article/details/64132958.