近日,一则微博网友大少爷的闲话,顺丰的工程师意外删除了在线系统库,逃跑了。
在Linux环境中,一些命令非常有用。 我有时会在论坛上看到初学者在问如何解决系统问题。 很多时候,有人会回答: 输入sudo rm -rf,然后输入用户名和密码。 回到车上就应该跑。 越快越好。 所以,平时练习长跑很好。
要恢复书本并避免错误操作,请先熟悉Linux命令,然后管理用户权限。 但是如果有人拿着刀逼你用sudo rm怎么办? 答案当然是云上备份。 我一直使用的云备份是亚马逊S3。 三个s是简单存储服务的缩写。 使用Python将mysql备份到S3非常简单。 AWS提供了S3的Python接口boto3.s3。 您可以下载AWS SDK for Python boto3或直接pip install boto3。 好心人已经共享了一个python脚本,可以在github上自动上传备份,我现在就带你去看看。 可以直接在git上获得:
git clone https://github.com/mittsh/d B- S3-backup
这个db_s3_backup脚本很容易阅读。
backup使用boto.s3设置s3连接和数据桶。
S3 _ connection=S3 connection (AWS _ access _ key _ id=AWS _ config [ ' AWS _ access _ key _ id ' ],AWS _ secre
S3 _ bucket=S3 _ connection.get _ bucket (AWS _ config [ ' AWS _ storage _ bucket _ name ' ] )
然后使用mysql_dump工具进行备份,并使用upload_dump_s3函数将数据上载到S3。
ifconfig [ '数据库' ] [ ' engine ' ]==' MySQL ' :
mysql_dump=MySQLDump (
MySQL _ dump.dump (config [ ' database ' ],s3_bucket,filename,filepath,verbose=args.verbose,upload _ ca lase
备份完成后,使用cleanup_old_backups和delete_local_backups函数清理旧备份
-------------分割线-------------
怎么用db-s3-backup?
首先,必须配置要输入的JSON文件。
MySQL配置MySQL和S3配置文件:
{
' aws':{
' AWS _ access _ key _ id ' : ' _ my _ key _ ',
' AWS _ secret _ access _ key ' : ' _ my _ secret _ key ',
' AWS _ storage _ bucket _ name ' : ' my-bucket '
(,
'数据库' : {
' ENGINE':'mysql ',
' NAME':'database ',
' USER':'username ',
' PASSWORD': 'password ',
' HOST':'mysql-host ',
' PORT':'3306 '
}
}
配置JSON后,请直接在shell中运行db_s3_backup.py。
python/path/to/db _ S3 _ backup.py/path/to/your/db _ backup _ dir//path/to/db _ backup _ config .
如果要删除旧的备份文件,请使用--c-- delete-remote-- delete-local-v命令
如果您想查看哪些文件被删除,可以使用:
--simulate-delete and -v
如果需要计划任务,可以使用crontab (用于Linux计划任务的命令)
输入命令:
crontab -e
编辑当前的计划任务,然后输入以下命令:
@ hourly/usr/local/TLD cc/python/path/to/db _ S3 _ backup.py/path/to/your/db _ backup _ dir/patth
现在,mysql数据库已设置为每小时自动备份到亚马逊S3。
-------------分割线-------------
如果跑得慢怎么办? 英国国家医疗服务体系(NHS )发布了免费公益app: Couch to 5k。 可以试试