一些基础知识

一些基础知识

我对这个概念还不熟悉,所以有人能指导我脚本代码细节和在所需时间将数据库备份到 amazon s3 服务器时 crontab 的正确用法吗?我浏览了不同的链接,但没有一个能解释备份是如何进行的。我使用的是 ubuntu 14.04lts。

答案1

一些基础知识

计划任务

用户可以利用 crontab 实用程序来编辑自己的 crontab。cron 守护程序将使用所有 crontab 并以定义的间隔运行命令。crontab 条目基本上如下所示:

* * * * * /path/to/some/command

mysql 备份

mysql 数据库的备份可以通过多种方法实现;根据数据库引擎和数据量,可以使用不同的工具和变体。备份数据库的最基本方法是使用mysqldump

# mysqldump -u USERNAME -pPASSWORD -h HOSTNAME -P PORTNUMBER DATABASENAME > DATABASENAME.sql

如何使用 Cron 备份 MySQL

为了在每个星期六晚上 10 点进行备份,请将这两个工具一起使用(并将其另外传输到 s3)以形成如下 crontab 条目:

00 10 * * 1 /usr/bin/mysqldump -u USERNAME -pPASSWORD -h HOSTNAME -P PORTNUMBER DATABASENAME > DATABASENAME_$(date '+%F').sql && aws s3 cp DATABASENAME_$(date '+%F').sql s3://BUCKETNAME/db_backups/DATABASENAME_$(date '+%F').sql

答案2

假设您已经在要运行 cron 作业的机器中安装了 aws-cli(并且该机器具有具有上传到 S3 权限的 IAM 角色)和 mysqldump,这是我执行的方式:

mysqldump --defaults-file="path_to_config_file_with_password" -u db_user -h db_hostname db_name_you_need_backup | gzip -9 > db_name.sql.gz;
now=$(date +"%m_%d_%Y")
aws s3 cp db_name.sql.gz s3://bucket_name/dbs/db_name_$now.sql.gz

相关内容