php实现Linux定时备份数据到百度云盘

安装bpcs_uploader 虽然关于bpcs_uploader的教程不少,但都千篇一律。虽然网上也有很详细的教程,不过可能还有漏掉的细节。

废话不多说了,开工。

下载程序包:

1wget https://github.com/oott123/bpcs_uploader/zipball/master

解压:

1unzip master

默认的文件夹名字很长,为了方便以后操作,重命名文件夹:

1mv oott123-bpcs_uploader-3a33d09 baidu

这里我将文件夹名字修改成了baidu,需要注意的是,以后的默认文件夹名字可能有所不同,毕竟程序会升级,你需要看一下解压出来的文件夹名称是什么。

进入程序目录:

1cd baidu

设置权限:

1chmod +x bpcs_uploader.php

运行程序:

1./bpcs_uploader.php

你可能会看到出错提示,因为运行程序需要PHP环境,而你的服务器上的PHP路径可能与程序中设置的不同,修改一下程序文件bpcs_uploader.php中的PHP路径即可。

查看PHP路径:

1which php

编辑bpcs_uploader.php文件:

1vi bpcs_uploader.php

将第一句#!后的路径修改为你的PHP路径,如果你安装的是WDCP一键包,路径为:/www/wdlinux/php/bin/php

登录百度开发者中心:http://developer.baidu.com/

创建一个Web应用,应用名称自定义,例如:huihuige,其他默认设置就可以了。

此时,我们可以得到该应用的API Key,运行./bpcs_uploader.php后首先要输入的就是Key。

另外我们还要在应用管理中找到API管理,开启PCS API,设置一个目录,该目录将用于存放服务器上传过来的数据。

温馨提示:开启PCS API时设置的目录不可更改,但可以在”操作”菜单中删除应用重建。

输入Key后,接下来需要输入app floder name,也就是刚才开启PCS API时设置的目录名称。

然后需要输入access token,将你的Key填入以下地址相应位置,在浏览器打开得到的地址:

1https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=KEY&redirect_uri=oob&scope=netdisk

然后你会看到一个写着”百度 Oauth2.0”的页面,将浏览器地址栏中的URL复制下来,找到access_token=和&之间的字符串,这就是access token,输入access token后就完成了,你会看到SSH终端显示出了你的百度云盘容量。

如果之前有安装过bpcs_uploader,那么可以执行以下命令初始化:

1./bpcs_uploader.php init

bpcs_uploader用法 查询容量:

1./bpcs_uploader.php quota

上传文件:

1./bpcs_uploader.php upload [path_local] [path_remote]

[path_local]是指服务器上的文件路径,[path_remote]是指百度云盘中的路径。

下载文件:

1./bpcs_uploader.php download [path_local] [path_remote]

删除文件:

1./bpcs_uploader.php delete [path_remote]

离线下载:

1./bpcs_uploader.php fetch [path_remote] [path_to_fetch]

自动备份脚本 接下来需要设置自动备份数据,网上有许多自动备份脚本,所以我就不再复述了。

这里要介绍的是,由于我们多半都在Linux服务器上安装了控制面板,而控制面板都有自动备份数据的功能,比如WDCP就可以设置自动备份数据到/www/backup目录,那么我们就不再需要自动备份数据的脚本了,只需要一个脚本将备份目录下的所有文件上传到百度云盘即可。

下载脚本至baidu目录下:

1wget http://www.huihuige.com/wp-content/uploads/2013/10/baidubd.zip

解压:

1unzip baidubd.zip

这个脚本实用于WDCP面板用户,如果你的备份目录不同,可以打开脚本修改。

测试脚本是否有效:

1

2

3

4

5sh baidubd.sh

```

最后设置计划任务:

``` bash

crontab -e

加入一行:

10 0 * * * /root/baidu/baidubd.sh

这里设置了每天的凌晨零点自动备份数据到百度云盘。

python实现Linux命令行上传和下载百度云盘

bypy:一个python写得百度网盘的linux客户端工具.

下载git clone https://github.com/houtianze/bypy.git

要求

python >=2.7

python需要Requests库

1

2

3python

>>> import requests

ImportError: No module named requests

使用

完成以上安装,cd至之前的bypy的目录下,运行下面的命令开始初始化

1

2cd bypy

./bypy.py list

首先他会要求你访问一个网址,需要你授权,授权后复制code给程序,如果没有报错,就可以看到你的同步目录了,你可以在网盘的我的应用数据文件夹里找到bypy文件夹,他就是应用目录了。

如果你迫不及待的要测试,那就试试直接把当前目录上传至百度网盘

1./bypy.py upload

如果你想看到上传进度,请加入-v选项

1./bypy.py -v upload

常用命令

./bypy.py list 查看目录

./bypy.py mkdir newdir 新建目录

./bypy.py upload 上传

./bypy.py downfile或者./bypy.py downdir 下载

./bypy.py delete filename

./bypy.py rm dir

用的时候注意用help查看一下参数的使用,其中remote path的/代表了apps/bypy/这个路径,且命令中的斜线/表示或,如“delete/remove/rm”表示delete,remove和rm三个命令。

自动备份到百度云

编写备份bash

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19#!/bin/sh

# File: home/bin/bypy/baidu_sync.sh

# Author: hope

# Version: 1.0

# Some vars

UPLOAD_SCRIPTS_DIR="/public/home/zpxu/scripts"

DATE=`date +%F`

DATE_YEAR=`date +%Y`

DATE_MONTH=`date +%m`

# Backup

cd $UPLOAD_SCRIPTS_DIR

cd ..

tar -czvf scripts_$DATE.tar.gz $UPLOAD_SCRIPTS_DIR

/home/Python-2.7.10/./python /home/bin/bypy/./bypy.py mkdir scripts/$DATE_YEAR/$DATE_MONTH

/home/Python-2.7.10/./python /home/bin/bypy/./bypy.py -v upload scripts_$DATE.tar.gz scripts/$DATE_YEAR/$DATE_MONTH

rm scripts_$DATE.tar.gz

/home/Python-2.7.10/./python /home/bin/bypy/./bypy.py list

设置cron定时执行

1$ crontab -e

此时会启动默认编辑器vim,添加以下内容

1

2# backup my scripts to baidu

40 1 * * *

以上内容意义为:每一行由空格分割为6部分,依次为”分钟”、”小时”、”日”、”月”、”星期”、”要执行的程序”。

备份操作可能消耗大量资源和时间,应该设置在凌晨访问量小、系统负载低的时候运行。如果有独立的服务器存储备份文件,还可以在脚本中增加ftp或者email传送备份文件到远程服务器的功能。

百度限制上传/下载数度,所以对于较大文件的转移不是很方便,上传时至少可以打包压缩下,至于下载目前还不知道有何良策。

由于百度权限问题,使用百度云备份需要差不多一个月跟新一次授权,否则报错

OpenShift server failed, authorizing/refreshing with the Heroku server …跟新授权办法如下:

1

2运行bypy.py -c,删除令牌文件,然后重新授权一次。

如果还不行,去百度应用授权(https://passport.baidu.com/accountbind) 里删除bypy再重新授权。

Contribution from :

http://www.lovelucy.info/auto-backup-website-shell-script.html

https://github.com/houtianze/bypy/issues/199

linux文件定时备份到windows,Linux和windows定时备份数据到百度云盘相关推荐

  1. linux修改文件没有备份文件,linux文件或目录权限修改后如何恢复(备份了权限就能恢复)...

    操作系统 RHEL5 如果你在linux上执行了如下操作 chmod -R 777 / 或者 chmod -R 700 / 那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不 ...

  2. linux改完权限后 自动恢复,linux文件或目录权限修改后如何恢复(备份了权限就能恢复)...

    操作系统 RHEL5 如果你在linux上执行了如下操作 chmod -R 777 / 或者 chmod -R 700 / 那么恭喜你,你的系统即将崩溃,重启之后,你进不了图形界面,而且很多服务都起不 ...

  3. 群晖linux文件夹颜色红色,技术干货分享 | 群晖备份Linux文件夹~

    以下协议可用作备份源,以使用Active Backup forServer将文件备份到您的Synology NAS: oSMB(Microsoft Windows) orsync 3.0或更高版本(L ...

  4. linux 文件和打印机共享文件夹,能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( )...

    能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( ) 答:SAMBA HTML 代 码 表示() 答:创建一个单选框 根据凯恩思的理论,在短期中总供给线为一条水平线,当总需 ...

  5. linux文件一列加1,Linux命令(1)-创建文件

    版本:centos7 1.可以使用cat创建一个新的文件 命令:cat>>filename 使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容.输入结 ...

  6. linux 文件夹换所属用户,Linux中账号管理之权限管理(下)

    linux中的账号管理我们在前面两张已经介绍了一些用户和组的相关概念,常用的配置文件,命令的使用.现在我们来看看账号管理中最傲娇的部分就是我们的权限管理. 一.简单介绍权限的概念 以install.l ...

  7. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  8. linux文件编辑命令详细整理,Linux文件编辑命令vi详细说明

    目录 1.引言 2.vi命令与vim命令 3.vi命令使用 3.1一般模式 3.2编辑模式(重点) 3.3命令行模式 1.引言 相信有很多程序员朋友,在长时间不操作linux系统或者初学linux命令 ...

  9. mac同步linux文件夹在哪里设置,Linux和Mac上的一些特殊文件将不再同步

    近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正.  这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户. ...

  10. linux文件i节点,深入理解linux中i节点(inode)

    对于Unix系列的操作系统,大多都有v节点.但是对于linux来说,只有通用的i节点,却没有v节点. 下面来探讨一下,linux下的i节点. linux中,文件查找不是通过文件名称来查找的.实际上是通 ...

最新文章

  1. HTTP头信息中的参数Etag
  2. Linux系统日志分析与管理(14)
  3. 慢就是快的人生哲理_家里的防臭地漏下水慢怎么办?
  4. github绑定自己的域名
  5. 使用jqprint插件完成页面打印
  6. [ext/iconv/iconv.lo] Error 1
  7. Gradle入门:我们的第一个Java项目
  8. 【计算机科学基础】计算理论初步
  9. Oracle DBA课程系列笔记(4)
  10. windows启动管理器_把windows 10装进文件里,竟然也能启动
  11. 浅析智慧消防巡检系统在高速公路隧道的应用
  12. 身份证省市区SQL代码
  13. nginx模块之split_clients
  14. 一家有两个孩子,已知至少有一个孩子是在星期二出生的男孩。问:两个孩子都是男孩的概率是多大?
  15. Vim 大小写切换快捷键
  16. 将一个多段线按一些点分割成一个或多个线段
  17. 人工智能安全(五)—梯度攻击
  18. ZUCC_BB平台-Quiz B-3-5-答案
  19. MyTT工作(一)ListView使用
  20. QQ 简洁模式切换失败解决方法

热门文章

  1. 腾讯云 Game-Tech 技术沙龙小游戏专场“空降”长沙
  2. shutdown immediate ,无法关闭数据库的解决方案
  3. 后台取值页面显示——Vue.js
  4. MySQL 数据库双向同步复制
  5. 使Ruby自动定位查找本地路径
  6. 对 Web 应用程序进行性能调优
  7. SSM-物流管理常见问题4 前端向后端传递数据
  8. 【算法笔记】B1015 德才论
  9. jQuery的before()方法和after()方法
  10. 【c++】简单的string类的几个基本函数