最近在为做一些边边角角的工作,现在有一个需求要每天把mysql的数据库dump出来到备份机器上面去.
看似简单的任务也潜在了很多的需求,整理如下:
自动运行-crontab
脚本的环境变量设置-由于通过crontab 启动执行的脚本环境变量没有设置,需要在脚本中设置环境变量
使用何种方式备份数据库, 这里使用mysqldump 工具
dump出来的备份文件通过什么方式拷贝到备份机器里面 -scp
清理N天前失效的备份文件.
ok 针对以上我们一个一个的来
1 自动运行-crontab
crontab -u 用户名 -e
26 10 * * * /opt/mysql/bin/backupmysql.sh 1>/opt/mysql/bin/myserver02.log 2>&1
每天10点26分执行脚本,并且把内容发送到日志文件中,如果不希望有日志也可用写如下
26 10 * * * /opt/mysql/bin/backupmysql.sh 1>/dev/null 2>&1
2 脚本的环境变量设置
讲登录用户下面的PATH 环境变量导入出来
PATH=”环境变量“
export $PATH
这样就能够保证了备份机器·
3mysqldump
mysqldump –socket=/xxxx/xxxx -uname -ppassword databasename>/myqdatabackup/myqdata.sql
由于在备份的时候报错,所以收到的指出了socket文件的路径
4拷贝文件到另外一个机器 -使用scp命令进行文件的拷贝
使用scp的要求:1 编辑机器上面的/etc/ssh/sshd_config 文件
添加啊Allowusers 添加用户名
Allowgroups 添加组名
2 在主机上面生成key,并且拷贝到备份机上,这样scp命令在拷贝文件的时候就不用输入密码了
ssh-keygen -t rsa
scp id_rsa.pub mysql@11.11.11.11/opt/mysql/.ssh/authorized_keys
使用 /var/log/secure 日志进行问题的排查
转载请注明:linux运维部落 » mysql 备份脚本的编写
!评论内容需包含中文