备份到S3

s3-backups的Python项目详细描述


https://pypip.in/v/s3-backups/badge.pngBuild Status

概述

s3备份提供了简单的脚本,系统管理员可以使用这些脚本进行备份 来自PostgreSQL、MySQL、Redis等程序的数据。

安装

要安装S3备份:

$ sudo pip install s3-backups

用法

使用cron

将s3备份设置为自动运行

PostgreSQL

将以下内容添加到文件/etc/cron.d/postgres_to_s3,然后更改命令参数,以便命令使用正确的aws凭据、备份存储桶和正确的基s3 key/base文件夹。

0 */1 * * * postgres /usr/local/bin/postgres_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='postgres/my-awesome-server' --backup --archive

重新发现

将以下内容添加到文件/etc/cron.d/redis_to_s3,然后更改命令参数,以便命令使用正确的aws凭据、备份存储桶和正确的基s3 key/base文件夹。

0 */1 * * * root redis_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='redis/my-awesome-server' --backup --archive

mysql

将以下内容添加到文件/etc/cron.d/mysql_to_s3,然后更改命令参数,以便命令使用正确的aws凭据、备份存储桶和正确的基s3 key/base文件夹。

0 */1 * * * root mysql_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='redis/my-awesome-server' --backup --archive

手动运行备份和存档

运行archive命令时,s3 backups将备份移动到 year/month子文件夹(技术上是一个s3密钥),用于计划的存档 保存和删除所有其他档案。S3备份,将使用默认值 除非你告诉它使用不同的时间表 --schedule_module参数。

默认存档计划将…

  • 将所有档案保存7天
  • 每隔一天保留30天的午夜备份
  • 永远保留每月的第一天
  • 删除所有未计划保留的其他文件

要备份PostgreSQL,请运行以下命令:

$ postgres_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='postgres/my-awesome-server' \
--backup

要存档PostgreSQL备份,请运行以下命令:

$ postgres_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='postgres/my-awesome-server' \
--archive

要备份redis,请运行以下命令:

$ redis_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --backup

要存档redis,请运行以下命令:

$ redis_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --archive

要备份MySQL,请运行以下命令:

$ mysql_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --backup

要存档mysql,请运行以下命令:

$ mysql_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --archive

贡献

如果你想参与,创建一个问题,让一个关于 要添加的功能。计划完成后,将存储库分叉并 在新分支上创建修复程序或功能。完成后,拉一下 请求将更改拉入。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
未使用Thymeleaf解析java消息参数   java试图为应用程序的每个实例创建一个具有唯一名称的表   eclipse如何用moduleinfo替换VM参数。java文件   java如何使JTextField不接受后缀字符串中的空格   Android中的java序列化文件   java如何缓存hibernate集合?   Android Eclipse导航抽屉中的java标头ImageView   java StreamTokenizer将001_到003拆分为两个令牌;我如何防止它这样做?   java应用程序必须只有一个DBHelper类,还是可以有多个DBHelper类?   java通过使用键作为值来反序列化Jackson   java JPA/Hibernate如何定义实体上的自定义联接子句?   JavaJunit/对Junit方法的误解   java JSP文件未加载到浏览器白标签错误页面   在Java构造函数中设置数据时出现NullPointerException   如果Java中的数组已满,如何将值传递给类中的另一个方法?   java如何在try/catch语句中返回字符串?   java需要以hh:mm格式获取两个日期之间的时差