Ubuntu Server使用automysqlbackup脚本_MySQL
UbuntuServerUbuntu
bitsCN.comUbuntu 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' )
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工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

这个AI辅助编程工具在这个AI迅速发展的阶段,挖掘出了一大批好用的AI辅助编程工具。AI辅助编程工具能够提高开发效率、改善代码质量、降低bug率,是现代软件开发过程中的重要助手。今天大姚给大家分享4款AI辅助编程工具(并且都支持C#语言),希望对大家有所帮助。https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI编码助手,可帮助你更快、更省力地编写代码,从而将更多精力集中在问题解决和协作上。Git

DHCP中继的作用是将接收到的DHCP数据包转发到网络上的另一个DHCP服务器,即使这两个服务器位于不同的子网中。通过使用DHCP中继,您可以实现在网络中心部署一个集中式的DHCP服务器,并利用它为所有网络子网/VLAN动态分配IP地址。Dnsmasq是一种常用的DNS和DHCP协议服务器,可以配置为DHCP中继服务器,以帮助管理网络中的动态主机配置。在本文中,我们将向您展示如何将dnsmasq配置为DHCP中继服务器。内容主题:网络拓扑在DHCP中继上配置静态IP地址集中式DHCP服务器上的D

在网络数据传输中,IP代理服务器扮演着重要的角色,能够帮助用户隐藏真实IP地址,保护隐私、提升访问速度等。在本篇文章中,将介绍如何用PHP构建IP代理服务器的最佳实践指南,并提供具体的代码示例。什么是IP代理服务器?IP代理服务器是一种位于用户与目标服务器之间的中间服务器,它充当用户与目标服务器之间的中转站,将用户的请求和响应进行转发。通过使用IP代理服务器

Go语言开发移动应用程序教程随着移动应用市场的不断蓬勃发展,越来越多的开发者开始探索如何利用Go语言开发移动应用程序。作为一种简洁高效的编程语言,Go语言在移动应用开发中也展现出了强大的潜力。本文将详细介绍如何利用Go语言开发移动应用程序,并附上具体的代码示例,帮助读者快速入门并开始开发自己的移动应用。一、准备工作在开始之前,我们需要准备好开发环境和工具。首

2022年3月3日,距世界首个AI程序员Devin诞生不足一个月,普林斯顿大学的NLP团队开发了一个开源AI程序员SWE-agent。它利用GPT-4模型在GitHub存储库中自动解决问题。SWE-agent在SWE-bench测试集上的表现与Devin相似,平均耗时93秒,解决了12.29%的问题。SWE-agent通过与专用终端交互,可以打开、搜索文件内容,使用自动语法检查、编辑特定行,以及编写和执行测试。(注:以上内容为原内容微调,但保留了原文中的关键信息,未超过指定字数限制。)SWE-A

epic服务器离线进不了游戏怎么办?这个问题想必很多小伙伴都有遇到过,出现了此提示就是导致正版的游戏无法启动,那么出现这个问题一般是网络和安全软件干扰导致的,那么应该怎么解决呢,本期小编就来和大伙分享解决方法,希望今日的软件教程可以帮助各位解决问题。 epic服务器离线进不了游戏怎么办: 1、很可能是被安全软件干扰了,将游戏平台和安全软件关闭在重启。 2、其次就是网络波动过大,尝试重启一次路由器,看看是否有效,如果条件可以的话,可以尝试使用5g移动网络来进行操作。 3、然后有可能是更

如何在服务器上安装PHPFFmpeg扩展?在服务器上安装PHPFFmpeg扩展可以帮助我们在PHP项目中处理音视频文件,实现音视频文件的编解码、剪辑、处理等功能。本文将介绍如何在服务器上安装PHPFFmpeg扩展,以及具体的代码示例。首先,我们需要确保服务器上已经安装了PHP以及FFmpeg。如果没有安装FFmpeg,可以按照以下步骤安装FFmpe

PHP在Web开发中是属于后端。PHP是一种服务器端脚本语言,主要用于处理服务器端的逻辑,生成动态网页内容。与前端技术相比,PHP更多地用于与数据库交互、处理用户请求以及生成页面内容等后端操作。接下来通过具体的代码示例来说明PHP在后端开发中的应用。首先,我们来看一个简单的PHP代码示例,用于连接数据库并查询数据:
