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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

DHCP 릴레이의 역할은 두 서버가 서로 다른 서브넷에 있더라도 수신된 DHCP 패킷을 네트워크의 다른 DHCP 서버로 전달하는 것입니다. DHCP 릴레이를 사용하면 네트워크 센터에 중앙 집중식 DHCP 서버를 배포하고 이를 사용하여 모든 네트워크 서브넷/VLAN에 IP 주소를 동적으로 할당할 수 있습니다. Dnsmasq는 네트워크에서 동적 호스트 구성을 관리하는 데 도움이 되도록 DHCP 릴레이 서버로 구성할 수 있는 일반적으로 사용되는 DNS 및 DHCP 프로토콜 서버입니다. 이 기사에서는 dnsmasq를 DHCP 릴레이 서버로 구성하는 방법을 보여줍니다. 내용 항목: 네트워크 토폴로지 중앙 집중식 DHCP 서버의 DHCP 릴레이 D에서 고정 IP 주소 구성

네트워크 데이터 전송에서 IP 프록시 서버는 사용자가 실제 IP 주소를 숨기고 개인정보를 보호하며 액세스 속도를 향상시키는 데 도움을 주는 중요한 역할을 합니다. 이 기사에서는 PHP를 사용하여 IP 프록시 서버를 구축하는 방법에 대한 모범 사례 가이드를 소개하고 구체적인 코드 예제를 제공합니다. IP 프록시 서버란 무엇입니까? IP 프록시 서버는 사용자와 대상 서버 사이에 위치한 중간 서버로서 사용자와 대상 서버 사이의 전송 스테이션 역할을 하며 사용자의 요청과 응답을 전달합니다. IP 프록시 서버를 사용하여

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

에픽서버가 오프라인 상태일 때 게임에 접속할 수 없으면 어떻게 해야 하나요? 이 문제는 많은 친구들이 겪었을 것입니다. 이 메시지가 나타나면 정품 게임을 시작할 수 없습니다. 이 문제는 일반적으로 네트워크 및 보안 소프트웨어의 간섭으로 인해 발생합니다. 이 문제의 편집자는 어떻게 설명합니까? 저는 여러분과 솔루션을 공유하고 싶습니다. 오늘의 소프트웨어 튜토리얼이 문제 해결에 도움이 되기를 바랍니다. 에픽 서버가 오프라인일 때 게임에 들어갈 수 없는 경우 해결 방법: 1. 게임 플랫폼과 보안 소프트웨어의 방해를 받을 수 있습니다. 2. 두 번째는 네트워크 변동이 너무 심하다는 것입니다. 라우터를 다시 시작하여 작동하는지 확인해보세요. 조건이 괜찮다면 5g 모바일 네트워크를 사용해 작동해 보세요. 3. 그럼 더 있을 수도 있겠네요

서버에 PHPFFmpeg 확장을 설치하는 방법은 무엇입니까? 서버에 PHPFFmpeg 확장을 설치하면 PHP 프로젝트에서 오디오 및 비디오 파일을 처리하고 오디오 및 비디오 파일의 인코딩, 디코딩, 편집 및 처리와 같은 기능을 구현하는 데 도움이 될 수 있습니다. 이 기사에서는 서버에 PHPFFmpeg 확장을 설치하는 방법과 구체적인 코드 예제를 소개합니다. 먼저, PHP와 FFmpeg가 서버에 설치되어 있는지 확인해야 합니다. FFmpeg가 설치되어 있지 않은 경우 아래 단계에 따라 FFmpe를 설치할 수 있습니다.

PHP는 웹 개발의 백엔드에 속합니다. PHP는 주로 서버 측 로직을 처리하고 동적 웹 콘텐츠를 생성하는 데 사용되는 서버 측 스크립팅 언어입니다. 프런트엔드 기술과 비교하여 PHP는 데이터베이스와의 상호 작용, 사용자 요청 처리, 페이지 콘텐츠 생성과 같은 백엔드 작업에 더 많이 사용됩니다. 다음으로, 백엔드 개발에서 PHP 적용을 설명하기 위해 특정 코드 예제가 사용됩니다. 먼저 데이터베이스에 연결하고 데이터를 쿼리하기 위한 간단한 PHP 코드 예제를 살펴보겠습니다.
