共计 892 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 主要的 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/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 |
计划任务执行后,即会在数据库备份的目录生成数据库备份文件
正文完
星哥玩云-微信公众号
