赞
踩
共两个,一个是cronie 一个是 mysql-client(一般装完mysql就自带的有)
sudo yum install cronie mysql-client
# vim mysql-db-dump.sh
这里使用的是全库备份
#!/bin/bash
# 定义数据库用户名和密码
DB_USER='root'
DB_PASS='你的数据库密码'
# 定义要备份的数据库名称 -- 如果需要备份数据库可以打开这里
# DATABASE_NAME='xxxx'
# 定义备份文件存储的位置和名称
BACKUP_DIR='/root/shell/resource'
BACKUP_FILE=$BACKUP_DIR/${DATABASE_NAME}_$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql.gz
# 使用 mysqldump 备份数据库并gzip压缩
# mysqldump -u$DB_USER -p$DB_PASS $DATABASE_NAME | gzip > $BACKUP_FIL -- 备份单个数据库
# 使用 mysqldump 备份所有数据库并gzip压缩
mysqldump --all-databases -u$DB_USER -p$DB_PASS | gzip > $BACKUP_FILE
echo "Backup file created successfully at: $BACKUP_FILE"
[root@iZdac72ss4rmhrZ shell]# ll
total 8
-rwxrwxrwx 1 root root 629 Nov 21 16:08 mysql-db-dump.sh
drwxr-xr-x 2 root root 4096 Nov 21 16:14 resource
[root@iZdac72ss4rmhrZ shell]# pwd
/root/shell
[root@iZdac72ss4rmhrZ shell]#
PS: 记得给权限 chmod +x ./**
# crontab -e
在 crontab 中安排在每天中午 12 点和晚上 12 点执行自动备份任务,您可以使用以下 cron 表达式:
0 12 * * * /root/shell/mysql-db-dump.sh
0 0 * * * /root/shell/mysql-db-dump.sh
在这两个 cron 表达式中:
0
表示分钟,由于我们希望在整点运行任务,因此将其设为 0。12
或 0
分别代表中午 12 点和晚上 12 点。*
表示任何值都匹配,因此 *
在天、月和星期字段上表示无论何时。/path/to/mysqldump.sh
。请注意,cron 表达式的格式为 分 小时 日 月 周 命令
,其中每个字段都有相应的取值范围。如果您需要更多关于 cron 表达式的详细信息,可以在 crontab 手册页中查找相关信息,或者查阅在线资源。
此外,由于您可能需要在备份期间保留其他数据库操作,因此建议在脚本中添加必要的锁定机制以防止数据不一致的情况发生。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。