CentOS Linux 7下定时备份

1.定时备份mysql数据库

注意 mysqldump需要加上mysql全路径 不然在 crontab下找不到

# 主机
HOST=localhost
# 用户名
DB_USER=root
# 密码
DB_PWD=password

# 需要备份的数据库列表(逗号分隔)
DATABASES="data1,data2"

# 循环遍历每个数据库进行备份
IFS=',' read -ra DB_ARRAY <<< "$DATABASES"
for DB in "${DB_ARRAY[@]}"; do
    # 备份文件名包含数据库名
    BACKUP_FILE="${BACKUP_DIR}/${DB}_${DATETIME}.sql.gz"
    echo "备份的路径是 $BACKUP_FILE"
    # 执行mysql的备份数据库的指令----主要需要加对应服务器的mysql路径
    /你的mysql的bin路径/mysqldump -h$HOST -u$DB_USER -p$DB_PWD $DB | gzip > "$BACKUP_FILE"
done

# 删除一个月前的备份文件
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +30 -exec rm -f {} \;

echo "==========备份完成==========="

压缩文件夹

#!/bin/bash

SOURCE_DIR="/home/要保存的目录"
BACKUP_DIR="/home/backups/压缩后保存的目录"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
TAR_FILE="xl_backup_$DATE.tar.gz"

# 创建备份文件夹
mkdir -p "$BACKUP_DIR"

# 打包文件夹到指定目录
tar -czf "$BACKUP_DIR/$TAR_FILE" -C "$(dirname $SOURCE_DIR)" "$(basename $SOURCE_DIR)"

# 删除14天前的备份
find "$BACKUP_DIR" -type f -name "xl_backup_*.tar.gz" -mtime +14 -exec rm {} \;

定时脚本

配置定时任务
crontab -e

查看定时任务
crontab -l

查看日志
tail -f /var/log/cron

当前状态
systemctl status crond

重启
systemctl restart crond

# 每天 12:05 00:05 执行脚本
5 0,12 * * * /bin/bash /home/back/backup-XXXXXX.sh

# 每天 五分钟 执行脚本- 并保存日志
*/5 * * * * /bin/bash /home/back/backup-XXXXXXXXX.sh > /home/back/mysql.log 2>&1
暂无评论

发送评论 编辑评论


				
上一篇
下一篇