0

0

Ubuntu Server使用automysqlbackup脚本_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:32:18

|

1298人浏览过

|

来源于php中文网

原创

ubuntuserverubuntu

bitsCN.com

Ubuntu Server使用automysqlbackup脚本

 

昨天服务器意外关闭,导致开发环境数据库文件损坏,所以想起了做自动备份的事情,原本是打算自己用Mysqldump写个脚本来做计划任务的,不过出于偷懒的角度考虑,在网上找了找,发现了automysqlbackup,看评论都还不错,而且本身也是shell脚本实现的。本着不重复造轮子的精神,就下载来使用了。

 

地址:http://sourceforge.net/projects/automysqlbackup/

 

选择的版本是最新的automysqlbackup-v3.0_rc6.tar.gz。

 

安装非常简单,比较麻烦的地方,是后面配置邮件客户端,以及脚本中的一个小bug。

 

1、在任意目录下,解压文件包

 

tar –xzf automysqlbackup-v3.0_rc6.tar.gz

 

2、省事起见,切个权限

 

sudo su -

 

3、安装(若对路径没有什么特别的要求,出现提示回车即可)

 

./install.sh

默认配置文件位置:/etc/automysqlbackup

 

默认sh文件位置:/usr/local/bin

 

4、修改配置文件

 

安装完成,默认会有两个配置文件,一个是automysqlbackup.conf,还有一个是myserver.conf。

 

实际上看了安装脚本就知道,这两个文件本来就是拷贝冗余了一个出来,猜测用途是防止二次安装或者误操作的情况下,误操作覆盖已经配置好的配置文件。不过从脚本逻辑上看起来,貌似没太大用,因为他重装,照样两个文件一块会覆盖。不过如果发现automysqlbackup.conf配置有值的话,会给出提示就是了。

 

依旧,为了偷懒期间,就直接修改automysqlbackup.conf了,毕竟这是默认配置,sh执行的时候,不用带任何参数。

 

主要需要注意的配置,有以下几个:(配置文件中,带有默认值,如果不需要更改,直接保持被注释的状态就好)

 

# Username to access the MySQL server e.g. dbuser

(数据库连接用户名)

CONFIG_mysql_dump_username='root'

 

# Password to access the MySQL server e.g. password(数据库连接密码)

 

CONFIG_mysql_dump_password='密码'

 

 

# "Friendly" host name of MySQL server to be used in email log

# if unset or empty (default) will use CONFIG_mysql_dump_host instead(dump的时候,数据库host显示的别名,不配的话,基本就都是localhost之流了)

CONFIG_mysql_dump_host_friendly='DataBaseAlias'

 

 

# Backup directory location e.g /backups(不用多说了,重中之重,备份路径)

CONFIG_backup_dir='/srv/backup/mysql'

 

 

# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )

# set to (), i.e. empty, if you want to backup all databases(需要日备份和周备份的数据库名称)

CONFIG_db_names=('TestDB')

 

 

# List of databases for Monthly Backups.

# set to (), i.e. empty, if you want to backup all databases(需要月备份的数据库名称)

CONFIG_db_month_names=('TestDB')

 

# Which day do you want monthly backups? (01 to 31) (月备份的日期,如果配置的日期大于当月最大日期,会在当月最后一天的时候执行)

# If the chosen day is greater than the last day of the month, it will be done

# on the last day of the month.

# Set to 0 to disable monthly backups.

#CONFIG_do_monthly="01"

 

# Which day do you want weekly backups? (1 to 7 where 1 is Monday)(周备份在星期几发生)

# Set to 0 to disable weekly backups.

#CONFIG_do_weekly="5"

 

# Set rotation of daily backups. VALUE*24hours

# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.(日备份文件保留多少天)

CONFIG_rotation_daily=7

 

# Set rotation for weekly backups. VALUE*24hours(周备份文件保留多少天)

#CONFIG_rotation_weekly=35

 

# Set rotation for monthly backups. VALUE*24hours(月备份文件保留多少天)

#CONFIG_rotation_monthly=150

 

# Use ssl encryption with mysqldump?(是否使用ssl,本地的话,开ssl找抽?远程就另算了)

CONFIG_mysql_dump_usessl='no'

 

 

# What would you like to be mailed to you?(是不是想要备份完的时候,自动给你发个邮件?)

# - log   : send only log file(邮件内容仅包含日志)

# - files : send log file and sql files as attachments (see docs)(邮件内容除了日志意外,把备份的压缩包也发给你)

# - stdout : will simply output the log to the screen if run manually.(表邮件了,屏幕显示下就好。问题是谁吃饱没事一天到晚盯着server屏幕看?)

# - quiet : Only send logs if an error occurs to the MAILADDR.(出错了的话,给个信儿就好)

CONFIG_mailcontent='files'

 

# Email Address to send mail to? (user@domain.com)(mail地址咯,不用多说了吧)

CONFIG_mail_address='nc@na.com'

 

 

 

5、先改个脚本的小bug吧。。不过如果你的server上mail和mutt齐备,请忽略该步骤。

 

vi /usr/local/bin/automysqlbackup

到1026行,将:

 

 

if [[ "x$CONFIG_mailcontent" = 'xlog' || "x$CONFIG_mailcontent" = 'xquiet' ]]; then

      dependencies=( "${dependencies[@]}" 'mail' )

    elif [[ "x$CONFIG_mailcontent" = 'xfiles' ]]; then

      dependencies=( "${dependencies[@]}" 'mail' )

      if [[ "x$CONFIG_mail_use_uuencoded_attachments" != 'xyes' ]]; then

        dependencies=( "${dependencies[@]}" 'mutt' )

MixPHP3.0.27
MixPHP3.0.27

MixPHP 是一个 PHP 命令行模式开发框架;基于 Vega 驱动的 HTTP 可以同时支持 Swoole、WorkerMan、FPM、CLI-Server 生态,并且可以无缝切换;V3 是一个高度解耦的版本,整体代码基于多个独立的模块构建,即便用户不使用我们的脚手架,也可以使用这些独立模块,并且全部模块都支持原生开发。例如:你可以只使用 mix/vega 来搭配 laravel orm 使用

下载

      fi

    fi

 

改为:

 

 

if [[ "x$CONFIG_mail_use_uuencoded_attachments" != 'xyes' ]]; then

      if [[ "x$CONFIG_mailcontent" = 'xlog' || "x$CONFIG_mailcontent" = 'xquiet' ]]; then

        dependencies=( "${dependencies[@]}" 'mutt' )

      elif [[ "x$CONFIG_mailcontent" = 'xfiles' ]]; then

          dependencies=( "${dependencies[@]}" 'mutt' )

        fi

        else

      if [[ "x$CONFIG_mailcontent" = 'xlog' || "x$CONFIG_mailcontent" = 'xquiet' ]]; then

        dependencies=( "${dependencies[@]}" 'mail' )

      elif [[ "x$CONFIG_mailcontent" = 'xfiles' ]]; then

          dependencies=( "${dependencies[@]}" 'mail' )

        fi

    fi

 

 

 

6、安装邮件客户端 mutt+msmtp

 

apt-get install mutt

安装mutt的时候,会自动安装postfix用作mail server,问题是这玩意太大,出于比较有洁癖的心态,我就主动把它干掉了。毕竟小巧玲珑的msmtp在那等着我呢。(看个人需求和喜好而定)

 

apt-get remove postfix –purge

apt-get autoremove –purge

 

安装msmtp

 

apt-get install msmtp

安装完了,来配邮件吧。

 

 

 

7、邮件客户端配置

 

vi /etc/Muttrc

最上面加上如下:

 

 

#My Mail Setting

set sendmail="/usr/bin/msmtp"

set use_from=yes

set realname="邮件地址别名"

set from=username@126.com

set envelope_from=yes

#不保留sent的本地存档

set copy = no

 

然后到~目录下,新建个.msmtprc

 

cd ~

vi .msmtprc

加上如下内容:

 

 

account 邮箱别名

host smtp.126.com

from username@126.com

auth plain

user username

password pwd

logfile ~/.msmtp.log

 

因为这里是明文密码,所以建议修改个600之流,再增加个日志文件

 

chmod 600 .msmtprc

touch ~/.msmtp.log

这全部完成了的话,可以试试邮件发不发的出去了。

 

echo "喂" |mutt -s "发出去没?" testmail@126.com

测试成功的话,就跑一下备份脚本看看吧

 

 

8、装上几个我服务器上木有的命令:

 

apt-get install pax

apt-get install pigz

 

 

9、mysql如果之前没设环境变量,只是加了个快捷方式的话,设个环境变量

 

vi  /etc/profile

在最后的位置加入

 

export  PATH=$PATH:/usr/local/mysql/bin

保存,然后再刷新检查下

 

source  /etc/profile 

echo $PATH

 

 

10、启动下备份脚本试试了,对了,记得要先创建备份路径

 

mkdir /srv/backup

mkdir /srv/backup/mysql

automysqlbackup

如果没什么问题的话,就会看到备份文件路径下面,自动给你创建好了几个目录:

 

daily  fullschema  latest  monthly  status  tmp  weekly

 

而且打开daily,里面应该就会有刚才备份的文件了。

 

再去check一下mail,都ok,那就配个计划任务就完事了。

 

 

 

11、配置计划任务

 

crontab –l

先查查看目前有没有任务,没有的话,就在~建个配置文件

 

cd ~

vi root-crontab

内容添上

 

30 23 * * * /usr/local/bin/automysqlbackup

 

表示每天23点30,自动运行备份脚本

 

然后再添加到计划任务里面去

 

crontab -u root root-crontab

齐活。。。

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.4万人学习

Django 教程
Django 教程

共28课时 | 4.4万人学习

MySQL 教程
MySQL 教程

共48课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号