准备shell脚本
在/root/bin/目录下,创建backup.sh文件
#!/bin/bash
# 设置备份目录和MySQL登录信息
tstart=` date "+%Y/%m/%d %H:%M:%S" `
backup_dir="/data/backup"
mysql_user="root"
mysql_password="1qaz!QAZ"
mysql_database="mydb"
# 创建备份目录
mkdir -p $backup_dir
# 获取当前日期
current_date=$(date +%Y%m%d)
#获取当前机器的第一个IP地址
ip=`ip a |grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |tail -n +2 |head -1`
# 生成文件名称
filename="backup_"$ip"_"$current_date".dmp"
# 备份数据库
mysqldump -u $mysql_user -p$mysql_password $mysql_database > $backup_dir/$filename.sql
# 删除7天之前的备份文件
find $backup_dir -name "*.sql" -type f -mtime +43 -exec rm {} \;
tend=` date "+%Y/%m/%d %H:%M:%S" `
tee body <<EOF
经理你好,
今天从$tstart开始备份,到$tend秒结束,
文件名称为 $filename.sql,文件大小为 `stat -c %s $backup_dir/$filename.sql ` .
运维团队
`date`
EOF
mail -s '备份通知' rudolfyan@qq.com <body
将上述脚本保存为一个文件(例如backup.sh
),然后使用crontab
命令将其添加到定时任务中,以在每周日3点执行备份操作。
准备crontab任务
crontab -e
在打开的文件中添加以下行:
0 3 * * 0 /bin/bash /root/bin/backup.sh >backup.sh.log 2>&1
保存并关闭文件。现在,每周日3点,脚本将自动执行备份操作,并删除7天之前的备份文件。备份文件将以年月日的格式命名,并保存在指定的备份目录中。
验证
作者:严锋 创建时间:2023-09-20 15:27
最后编辑:严锋 更新时间:2025-05-09 15:48
最后编辑:严锋 更新时间:2025-05-09 15:48