龙空技术网

群晖nas定时任务远程备份mysql

闲散陶的日常 86

前言:

现在咱们对“mysql定时备份 任务计划”可能比较关心,我们都需要了解一些“mysql定时备份 任务计划”的相关知识。那么小编在网摘上搜集了一些对于“mysql定时备份 任务计划””的相关内容,希望我们能喜欢,姐妹们一起来了解一下吧!

最近给朋友写了一个应用,用的是阿里云的服务器,但是没有买云备份,朋友又怕出问题。因为这个应用是作为朋友员工发工资的凭证。所以我想给朋友做一个数据库定时备份的功能。

当时思路有2个,一个是主从服务,另一个是计划任务备份。我想都没想,因为我有群晖,7x24小时不关机,所以直接选择了计划任务备份。那么选定了思路,下面就开始执行。

老朋友看我的文章,应该都了解,跟着我来做,总有一些先决条件。没错,这一次也是一样的。它的条件就是:群晖要获取root的权限!有了这一步,那么我们就可以继续了。

对应shell命令,小编不是特别懂,所以,咱们就去询问一下AI。下面是小编和的chatGPT3.5的对话。第一次让它写的shell

GPT写的shell

然后,因为小编的MySQL端口不是默认的,又只需要备份一个数据库,并非全部。所以通过多次对话,得到了最终的shell命令

#!/bin/sh

# 配置MySQL连接信息

MYSQL_HOST="your_host"

MYSQL_PORT="your_port"

MYSQL_USER="your_user"

MYSQL_PASS="your_password"

BACKUP_DIR="your_dir"

DATE=$(date +"%Y%m%d_%H%M%S")

DATABASE_TO_BACKUP="your_dbname"

# 循环备份每个数据库

for DB in $(mysql -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"); do

# 如果当前循环的数据库不是需要备份的数据库,则跳过备份

if [ "$DB" != "$DATABASE_TO_BACKUP" ]; then

continue

fi

# 构建备份文件名

FILENAME="$DB"_"$DATE.sql"

# 备份数据库到指定文件

mysqldump -h$MYSQL_HOST -P$MYSQL_PORT -u$MYSQL_USER -p$MYSQL_PASS $DB > $BACKUP_DIR/$FILENAME

# 打印备份结果

if [ $? -eq 0 ]; then

echo "备份成功: $FILENAME"

else

echo "备份失败: $FILENAME"

fi

done

只要将上面的各个配置信息修改成服务器上正确的内容就可以了。修改完成,把这个shell保存成sh文件。小编就把这个文件保存成smjj_sql_bak.sh。这里就需要注意了。保存成这个文件后,因为是windows下写的shell,换行格式需要转换为LF,所以打开文本编辑器。小编使用的是editplus。所以再文档-》文件格式-》更改文件格式

再选择Unix/Mac OS X,点击确定

这样的话,这个shell就可以使用了。

下面打开winscp和putty,使用root账号登录到群晖nas

登录完成

把sh文件上传到nas。小编就通过nas自带的FTP拷贝到了files文件夹下面的smjj_sqlbak里面,然后之前设置的备份目录也是再这里哦。

接着,记得给sh权限。我这边直接给了777的权限。

下面就是测试了。

在putty进入smjj_sqlbak目录,然后运行smjj_sql_bak.sh

执行完成

这里要注意一点,就是ftp的那些目录都是在volume1这个目录下面的。使用过群晖的朋友应该多多少少有些了解。

能运行成功后,我们就可以在我们备份的目录下面,看到刚刚导出的sql文件。

那么,这个sh就执行成功了。

要让他定时执行的话,我们就登录群晖去新增一个定时任务吧。

登录群晖的网页,双击打开【控制面板】,找到【任务计划】点击新增【计划的任务】,【用户定义的脚本】

常规修改【任务名称】:smjjbak

计划修改频率,小编这边是【每天】首次运行时间00:01就是每天的凌晨12点零1分,执行这个sh

任务设置:修改【用户定义脚本】:bash /volume1/files/smjj_sqlbak/smjj_sql_bak.sh

保存。

测试一下这个任务

选中任务,点击运行。

到备份文件夹里面查看,是否有备份的文件,如果有,那么就设置成功了。

今天的教程就到这里,谢谢同学们关注,阅读,转发,评论和点赞。

标签: #mysql定时备份 任务计划