使用 systemd timer 备份数据库

Posted 冯琪的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 systemd timer 备份数据库相关的知识,希望对你有一定的参考价值。

导读 主要的Linux发行版都改用systemd 来替代 System V启动方式,其中 systemd timer 能替代 crontab 计划任务的大部分功能。本文介绍了用systemd timer如何实现数据库备份,其他类型的计划任务可以同理实现。

技术分享

定义timer文件

进入目录/usr/lib/systemd/system,按如下文件建立timer:

[Unit]
Description=Runs db backup every hour

[Timer]
# Time to wait after booting before we run first time
OnBootSec=10min
# Time between running each consecutive time
OnUnitActiveSec=1h
Unit=db_backup.service

[Install]
WantedBy=multi-user.target
定义service文件

进入目录/usr/lib/systemd/system,按如下文件建立service:

[Unit]
Description=Backup database

[Service]
Type=simple
ExecStart=/usr/local/bin/db_backup
写数据库备份脚本

创建文件/usr/local/bin/db_backup,并写入数据库备份语句,例如:

#!/usr/bin/bash
/usr/bin/mysqldump -umy_username -pmy_password -h192.168.1.xx --databases my_database > /path/to/backup/dir/my_database.`date +‘%Y%m%d%H%‘`.sql
启用并运行timer

命令行下运行如下命令:

systemctl enable db_backup.timer
systemctl start db_backup.timer

计划任务执行后,即会在数据库备份的目录生成数据库备份文件

以上是关于使用 systemd timer 备份数据库的主要内容,如果未能解决你的问题,请参考以下文章

关于Linux中作业调度 crond 和 systemd.timer 使用场景的一些笔记

为什么我推荐你使用 systemd timer 替代 cronjob?

有没有办法运行使用操作系统身份验证来运行 RMAN 备份作为 systemd 的 .NET Core 服务?

使用 systemd 定时器调度任务

使用 systemd 定时器调度任务

Linux 命令详解Systemd 入门教程:使用定时器发送邮件(mail)