通过python的百度云客户端可以把linux数据备份到百度云
引言
网站备份真的很重要,前段时间已经被坑过一次了,幸好数据没有完全丢,勉强恢复了,虽然丢失了几篇文章。之前一直是每隔几天手动备份一下重要的数据,然后下载到本地。但是有时候会忘记备份这件事,所以,自动进行备份就很有必要了。当然,要解决自动备份问题比较简单,些许脚本就能解决问题。问题是,总是把备份数据下载到本地,实在是比较麻烦(主要是浪费校园网流量!)。所以,本文就结合开源的bypy
百度云客户端,实现每天凌晨自动备份数据后同步到百度网盘的功能!
准备工作
- 安装
requests
模块:bypy
依赖这个模块:sudo pip install requests
- 安装
bypy
百度云客户端:sudo pip install bypy
- 配置客户端:
- 在终端中输入
bypy info
,根据提示打开链接,并将授权码paste
回终端,然后回车; - 使用
bypy list
测试查看网盘文件:实际的查看的是我的应用数据/bypy
目录
root@localhost:~# bypy list
Encoding for StdOut: ANSI_X3.4-1968
/apps/bypy ($t $f $s $m $d):
D site-backup 0 2016-07-02, 02:51:14
- 在终端中输入
脚本之旅
- 在编写自动备份脚本前,需要知道究竟哪些目录比较重要,值得上传。此外,还应当了解
mysql
数据库备份的方法。好在这些都比较简单! - 我自己服务器上主要需要备份的目录有以下几个:
wordpress
:这个是博客网站的文件夹,内容当然很重要,尤其是很多的媒体资源!apache2
:这个是apache2
服务器配置目录,这个也很重要。custom_scripts
:这个目录是平时会更新的脚本合集,自然也应当定期备份咯。shadowsocks
:这个目录存放的是shadowsocks
相关的配置文件以及监控脚本,其实不用每次都备份,不过不太大,所以顺带每天备份下好啦!
- 除了要备份的目录外,还有
wordpress
数据库需要备份,备份的命令非常简单:mysqldump -uroot -ppassword database_name > data.sql
。 - 在备份完了后,只需要使用
bypy
将备份好的数据上传到百度云即可。 - 以下是为此编写的脚本,可以自动完成指定的备份和上传数据的任务:
#!/bin/bash
# Directories you want to backup
back_dirs="/root/custom_scripts /root/shadowsocks /var/www/wordpress /etc/apache2"
echo "========================================================================"
echo "Backup begin:" `date "+%Y-%m-%d %H:%M:%S"`
# Where to put the backup data.
dest_dir="/root/site-backup"
date_postfix=`date "+%Y%m%d"`
# Step A: create directory for backups
echo -n "Prepare to bakcup..."
if [ ! -d $dest_dir ]; then
/bin/mkdir -p $dest_dir
else
/bin/rm -r $dest_dir
/bin/mkdir -p $dest_dir
fi
echo "done!"
# Step B: stop website
echo -n "Stop web server apache..."
/etc/init.d/apache2 stop >/dev/null
echo "done!"
# Step C: backup each directories we've got
for dir in $back_dirs
do
name=${dir##*/}
echo -n "Backup directory: $dir, please wait..."
archive_name="$name-$date_postfix".tar.gz
/bin/tar -czpf $dest_dir/$archive_name $dir 2> /dev/null
echo "done!"
done
# Step D: backup database
echo -n "Backup database...."
/usr/bin/mysqldump -uuser -ppassword wordpress > $dest_dir/"wordpress_"$date_postfix.sql
echo "done!"
# Step E: restart website
echo -n "Start web server apache..."
/etc/init.d/apache2 start >/dev/null
echo "done!"
# Step F: upload backup data to Baidu Cloud
echo "Upload backup data to Baidu Cloud..."
remote_dir="site-backup/$date_postfix"
/usr/local/bin/bypy mkdir $remote_dir
/usr/local/bin/bypy upload $dest_dir $remote_dir
# Step G: clean backups.
echo -n "Clean backups..."
/bin/rm -r $dest_dir
echo "done!"
echo "Backup complete:" `date "+%Y-%m-%d %H:%M:%S"`
echo ""
exit 0
测试脚本
- 为了方便起见,首先给脚本赋予可执行权限,然后链接到
/usr/local/bin/site-backup
上,这样就可以在任何目录下启动备份命令了! - 以下是测试执行的效果截图:
- 以下是上传到百度云中的备份文件截图:
定时备份
- 将任务添加到
crontab
即可(需要注意的是服务器与国内有12个小时的时差存在):
# at 4.a.m every day
0 16 * * * /usr/local/bin/site-backup >> /var/log/site-backup.log
尚待改进
- 由于当前网站备份出来的数据并非很大,所以采用了比较传统的完全备份再上传的方法;后期可以改进成每隔几天做一次完整备份,然后每天做增量备份的方式;
- 并不需要在百度网盘中保存太多的备份数据,后期需要增加新的功能,用于删除太旧的备份数据,只保留最近一周或者若干天的备份即可。
参考
- bypy文档
- tar命令高级用法——备份
通过python的百度云客户端可以把linux数据备份到百度云相关推荐
- 用多备份将网站数据备份到百度云,七牛云存储,阿里云OSS,亚马逊S3,金山云等云存储服务上
真正运营过网站的人都知道,数据对一个网站来说至关重要,因此,网站数据备份也是日常必做工作.因为误操作,网站被攻击等种种原因都会导致数据丢失,这时,你才会明白"有备无患"的道理.备份 ...
- mysql rds备份_云数据库RDS如何进行数据备份
前言:目前睿江云已经推出的RDS云数据库,用户无需进行额外的传统命令行配置,直接选购即可使用. 常见的RDS备份工具 目前睿江云也支持数据的备份,您可以选择数据备份的策略,进行备份. 那么常见的备份工 ...
- 云宏CTO张国强:云宏超融合大数据一体机,中国云数一体化神器!
云宏是国内领先的云计算大数据关键技术及服务提供商,一直致力于云操作系统国产化替代工程.自主安全中国云的建设之中.2018年,云宏入选国际权威IT咨询机构Gartner<中国x86服务器虚拟化市场 ...
- python爬取网易云音乐薛之谦歌词数据,生成词云
老薛最近频频上热搜,因为老薛的歌大部分是自己作词,所以感觉他的歌词和他应该有某种情感表达和联系吧. 于是用python爬了网易云音乐中老薛的歌词数据,并简单用wordcloud写了个词云统计. 难过, ...
- 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料
前言 百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使L ...
- 如何利用阿里云服务器快照策略为数据备份
阿里云服务器快照,是一个很好的备份容灾工具,不了解的可以先了解一下: 快照可以做什么? 这是一种便捷高效的数据保护服务手段,可以对重要业务数据进行备份,来应对误操作.攻击.病毒等导致的数据丢失风险.比 ...
- 中华云盒M1刷Linux教程,再谈中华云盒M1刷机详细教程,包教包会终结版
本帖最后由 鸿雁前程 于 2016-10-7 01:35 编辑 最近有人联系我关于中华云盒M1的刷机问题,说自己尝试多次均不成功.考虑到论坛内中华云盒M1的刷机教程过于简单,所以专门抽时间重新刷了一下 ...
- 380免费云存储_从四个方面分析:云存储服务的特点、影响
云存储就是将储存资源放到云上供人存取的一种新兴方案,使用者可以在任何时间.任何地方,透过任何可连网的装置连接到云上方便地存取数据.那么,云存储服务有什么特点,会给我们带来一些什么样的影响呢? 云存储是 ...
- 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案
前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...
最新文章
- 云知声联合亿咖通科技成立合资公司,布局汽车 AI 芯片
- 如何实现一个malloc
- 基于Elasticsearch实现搜索建议
- Core Java笔记 6.部署应用程序
- SalesOrder Text determination
- [蓝桥杯]带分数-dfs
- mysql 锁机制及实现原理_MySQL-深入浅出锁分类及实现原理
- KMP算法 --- 在文本中寻找目标字符串
- NFT平台Chair.finance获得Polygon Grant及生态支持
- 【 开源计划 - Flutter组件 】 星星也可以如此闪耀 flutter_star
- vue 生命周期activated与created使用
- jdbc,基本数据库命令封装
- win10计算机维护,Win10系统打开或关闭自动维护功能的方法
- iOS视频开发(二):视频H264硬编码
- I am a boy!
- Unity3d 传送门效果制作
- BI神器Power Query(16)-- PQ制作时间维度表(5)
- 重启tomcat报错 Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”
- Blender无法找到安装的插件
- pycharm专业版许可证申请(特定人群)
热门文章
- python学习——CMD中快速执行python文件
- 服务器硬盘接口图文观赏
- AMiner论文推荐——Image Cropping on Twitter
- python调用win32实现电脑语音 win32com.client.Dispatch('SAPI.SPVOICE') 出错的问题
- 数据恢复问题分析及注意事项
- Python 中 if not 用法
- web 前端和后台配合工作流程
- 使用python实现unix2dos和dos2unix命令
- Ubuntu修改系统时间
- “快到没朋友”的目标检测模型YOLO v3问世,之后arXiv垮掉了…