每天2点,6点,对mysql进行备份且备份成功通过邮件发送到我的邮箱的playbook
时间: 2023-09-19 22:10:49 浏览: 15
以下是一个对MySQL进行备份并通过邮件发送备份文件的 Ansible playbook:
```yaml
---
- name: MySQL Backup Playbook
hosts: your_mysql_server
become: yes
vars:
mysql_backup_dir: "/var/backups/mysql"
mysql_username: "your_mysql_username"
mysql_password: "your_mysql_password"
mysql_database: "your_mysql_database"
backup_email_address: "your_email_address"
tasks:
- name: Install required packages
apt:
name:
- mysql-client
- bsd-mailx
state: present
- name: Create backup directory
file:
path: "{{ mysql_backup_dir }}"
state: directory
mode: 0755
register: backup_dir_created
- name: Backup MySQL database
shell: "mysqldump -u {{ mysql_username }} -p'{{ mysql_password }}' {{ mysql_database }} > {{ mysql_backup_dir }}/{{ mysql_database }}-$(date +%Y-%m-%d-%H-%M-%S).sql"
register: mysql_backup_result
- name: Compress backup file
shell: "gzip {{ mysql_backup_dir }}/*.sql"
when: backup_dir_created.changed or mysql_backup_result.changed
- name: Send backup file by email
mail:
host: localhost
port: 25
subject: "MySQL Backup {{ mysql_database }} - {{ ansible_date_time.date }}"
to: "{{ backup_email_address }}"
attach:
- "{{ mysql_backup_dir }}/{{ mysql_database }}-*.sql.gz"
```
这个 playbook 包括以下任务:
1. 安装所需的软件包,即 `mysql-client` 和 `bsd-mailx`。
2. 创建用于存储备份文件的目录。
3. 使用 `mysqldump` 命令备份 MySQL 数据库,并将备份文件保存到指定的目录中。
4. 压缩备份文件。
5. 通过电子邮件发送备份文件。
你需要自行替换变量 `your_mysql_server`,`your_mysql_username`,`your_mysql_password`,`your_mysql_database` 和 `your_email_address`,以适应你的环境。另外,你需要确保目标主机和 Ansible 控制节点之间可以进行 SSH 连接。
相关推荐


















