如果mysql不在环境变量中,请先将mysql放入环境变量
- #将mysql添加进环境变量中
- export PATH=$PATH:/usr/local/mysql/bin/
-
- #重新加载配置文件
- source /etc/profile
新建一个脚本
touch backup_all_databases.sh
脚本内容:
- #!/bin/bash
-
- # MySQL登录信息
- USER="root"
- PASSWORD="123456"
-
- # 备份目录
- BACKUP_DIR="/home/mysqlbak/$(date +%Y%m%d)"
-
- # 创建备份目录
- mkdir -p "$BACKUP_DIR"
-
- # 获取所有数据库名
- DATABASES=$(mysql -u"$USER" -p"$PASSWORD" -Nse 'show databases')
-
- # 遍历所有数据库进行备份
- for DB in $DATABASES; do
- # 跳过系统数据库
- if [[ "$DB" == "information_schema" || "$DB" == "mysql" || "$DB" == "performance_schema" || "$DB" == "sys" ]]; then
- continue
- fi
-
- # 生成备份文件名
- BACKUP_FILE="$BACKUP_DIR/${DB}_$(date +%Y%m%d%H%M%S).sql"
-
- # 执行mysqldump命令进行备份
- mysqldump -u"$USER" -p"$PASSWORD" "$DB" > "$BACKUP_FILE"
-
- # 检查备份是否成功
- if [ $? -eq 0 ]; then
- echo "Database $DB backed up to $BACKUP_FILE"
- else
- echo "Error backing up database $DB"
- fi
- done
-
- echo "All databases backed up to $BACKUP_DIR"
需要给这个脚本文件执行权限:
chmod +x backup_all_databases.sh
需要给这个脚本文件执行权限:
./backup_all_databases.sh
自动执行
- vi /etc/crontab
-
- #每天凌晨1点执行
- 0 1 * * * bash /home/backup_all_databases.sh
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
加入开机自动启动:
chkconfig –level 35 crond on