定时备份脚本
需要配置免密登录
#!/bin/bash
# 设置当前日期,格式为 yyyy-mm-dd
DATE=$(date +\%Y-\%m-\%d)
# 对端服务器端口
PORT="端口"
BACKUPIP="地址"
# 对端服务器存储路径
FIBACKUP_DIR="/Backup/jira"
# 设置数据库用户名和密码
DB_USER="账号"
DB_PASS="密码"
DB_NAME="数据库名"
# 设置本地备份文件存储路径
BACKUP_DIR="/var/backup"
# 设置备份文件名(包含日期)
BACKUP_FILE="$BACKUP_DIR/jira_backup_$DATE.sql"
# 执行备份命令
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE
# 传输备份文件到对端服务器
scp -P ${PORT} $BACKUP_FILE root@${BACKUPIP}:${FIBACKUP_DIR}
定时删除脚本
只会保留当天的四份
#!/bin/bash
# 设定目标目录
backup_dir="/var/backup"
# 获取当前日期及前三天的日期(格式:YYYY-MM-DD)
current_date=$(date +%Y-%m-%d)
three_days_ago=$(date -d "3 days ago" +%Y-%m-%d)
# 遍历文件
for file in "$backup_dir"/jira_backup_*.sql; do
# 提取文件的日期部分 (例如 2025-03-21)
file_date=$(basename "$file" | sed -e 's/jira_backup_//g' -e 's/.sql//g')
# 如果文件日期在当前日期之前,并且不在保留的日期范围内,删除该文件
if [[ "$file_date" < "$three_days_ago" ]]; then
rm -f "$file"
echo "删除文件: $file"
fi
done
crontab如下编写
0 1 * * * /opt/backup_jira.sh
0 2 * * * /opt/delete_jira.sh