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