You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian9图形界面下配置关机/重启前自动备份MySQL数据库

实现Debian9关机/重启前自动备份MySQL数据库

咱们在Debian9的图形模式交互式非登录Shell环境下,已经能通过手动命令完成MySQL数据库备份,但现在需要配置一个systemd服务,让备份操作在系统关机或重启前自动执行。另外先提个常见问题:如果遇到*无法通过套接字连接到本地MySQL服务器(Can't connect to local MySQL server through socket)*的错误,要先确保MySQL服务处于运行状态哦。

一、已验证可用的手动备份命令

先放一下咱们已经测试过的手动备份命令:

USERNAME="xxxx"
PASSWORD="yyyy"
mysqldump -u root -p${PASSWORD} database > /home/test/wp.sql.bak

二、配置systemd自动备份服务

1. 编辑服务配置文件

用vim创建并编辑systemd服务配置文件:

vim /etc/systemd/system/test.service

将以下内容写入文件:

[Unit]
Description=Run command at shutdown
Before=shutdown.target reboot.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash /home/test/test.sh

[Install]
WantedBy=multi-user.target

这里重点说下配置里的关键项:

  • Before=shutdown.target reboot.target:确保这个服务在关机或重启操作开始前执行
  • Type=oneshot:因为备份是一次性完成的任务,用这个类型最合适
  • RemainAfterExit=true:让systemd认为服务执行完成后仍处于激活状态,避免干扰正常的关机流程

2. 创建备份脚本文件

在/home/test/路径下创建test.sh脚本文件:

vim /home/test/test.sh

写入备份命令内容:

USERNAME="xxxx"
PASSWORD="yyyy"
mysqldump -u root -p${PASSWORD} database > /home/test/wp.sql.bak

记得给脚本添加执行权限,否则systemd没法运行它:

chmod +x /home/test/test.sh

3. 启用并验证服务

因为修改systemd配置需要管理员权限,先切换到root用户:

su

第一步先重新加载systemd配置,让新创建的服务生效:

systemctl daemon-reload

然后启用服务,这样系统开机后会自动加载这个服务:

systemctl enable test.service

为了确保配置没问题,咱们可以手动启动服务测试备份是否正常执行:

systemctl start test.service

之后检查服务状态,确认执行成功:

systemctl status test.service

如果状态显示“active (exited)”且没有报错,就说明配置没问题啦,下次关机或重启前,系统会自动执行数据库备份。


内容的提问来源于stack exchange,提问作者scrapy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:16:59