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
相关产品推荐
相关产品推荐

