当前位置: 首页 > Linux

Linux定时备份数据库到指定邮箱

时间:2023-04-06 19:13:48 Linux

本文转自豆浆瓜:Linux下每天备份Mysql数据库并发送到指定邮箱1.配置邮箱这里是网易的STMP服务邮箱126邮箱,服务器为smtp.126.com。如果使用其他第三方邮箱,SMTP服务器地址一般在账户设置中注明。如果你的Ubuntu没有安装邮件模块,你需要执行这个命令来安装邮件模块:root@name:~#apt-getinstallmailutils打开邮件配置文件vim/etc/mail.rc添加这些设置集最后from=test@126.comsmtp=test@126.comsetsmtp-auth-user=test@126.comsmtp-auth-password=mypasswordsmtp-auth=login测试邮件是否发送成功:echo“测试内容”|mail-s"mailtitle"myqq@qq.com解释:test为邮件内容,mailtitle为邮件标题,xxxx@qq.com表示要发送到该邮箱。成功收到邮件,没有问题。2、备份Mysql数据库备份Mysql使用mysqldump命令,先熟悉一下,再完善mysqldump-u数据库账号-p数据库密码数据库名>"/tmp/bak.sql"执行上面的命令,输入/tmp/烘烤。sql备份文件是否存在,存在就OK。请注意,-p数据库密码之间没有空格。脚本和cron作业都已设置,下一步是自动化:创建一个备份脚本并使用cron作业每天执行它。在某个目录下创建一个shell脚本。简单说明,我直接建在/back_mysql.sh中,内容如下vim/back_mysql.sh#!/bin/bash#Sendthemysqlofbackupfiletoemail#AuthorMelon#Version0.1#namethebackupfile根据日期filename=`date+%Y-%m-%d`"-blog-bak.sql"path="/tmp/"$filename#executebackup/usr/bin/mysqldump-udatabaseaccount-p数据库密码数据库名>$path#sendmail#deletetemporaryfileecho"mailcontent"|mail-s$filename-a$pathmailboxrm-f$path/usr/bin/mysqldump是完整的命令路径,如果你不知道命令的完整路径,可以使用whereis命令名来查看它。使用crontab创建定时任务。每天0:00执行crontab-e00***/bin/sh/back_mysql.sh。可以设置其他时间段发送,crontab的具体用法请自行搜索。使用zip命令打包加密文件可能会觉得直接发送sql文件不安全,或者还有附件等其他文件一起发送。接下来,我将使用linuxzip命令将附件和sql文件一起加密打包。完整代码如下,具体不一一解释#!/bin/bash#发送备份文件的博客到邮箱#作者瓜#Version0.2#zipFilenamefilename=`date+%Y-%m-%d`"-blog-bak.zip"#zip文件路径path="/tmp/"$filename#sql备份文件路径mysqlpath="/tmp/blog.sql"#附件备份路径uploadpath="/tmp/uploads"/usr/bin/mysqldump-u数据库账号-p数据库密码数据库名>$mysqlpath#创建附件备份(这是我博客的附件位置)cp-r"/www/blog/usr/uploads/""/tmp/"#encryptedpackage,>/dev/null2>&1表示信息重定向,方便调试而不输出加密信息。也可以省略/usr/bin/zip-P加密密码-r$path$mysqlpath$uploadpath>/dev/null2>&1echo"邮件内容"|mail-s$filename-a$path邮箱#删除备份文件rm-f$path$mysqlpathrm-rf$uploadpath注:本文转自豆浆瓜:linux下每天备份Mysql数据库,发至指定邮箱Linux邮件服务入门