mysql备份shell脚本
#!/bin/bash
#备份目录
backupDir=/usr/backup/database
#mysqldump:找到mysqldump的绝对路径,可通过命令which mysqldump查看
mysqldump=/usr/bin/mysqldump
#指定ip:因为mysql5.7及以上版本不支持password明文写法,会提示【警告 mysqldump: [Warning] Using a password on the command line interface can be insecure】所以没用了,改为调用mysql配置文件中mysqldump的配置信息来备份:--defaults-extra-file=
host=localhost
#用户名
username=用户
#密码
password=密码
#时间
today=$(date "+%Y%m%d")
#+backupDir=天前的日期q
timeTenDayAgo=`date -d -10day +%Y%m%d`
#备份的数据库
database=sunell_test
#如果文件夹不存在则创建
if [ ! -d ${backupDir} ];
then
mkdir -p ${backupDir};
fi
echo '开始备份'${database}
#echo '备份路径:'$backupDir
#echo 'mysqldump参数:'$mysqldump
#echo 'host参数:'$host
#echo 'username参数:'$username
#echo 'password参数:'$password
#echo 'today参数:'$today
#echo 'timeTenDayAgo参数:'$timeTenDayAgo
#echo 'database参数:'$database
#${mysqldump} -h${host} -u${username} -p${password} ${database} | gzip > ${backupDir}/${database}_${today}.sql.gz
${mysqldump} --defaults-extra-file=/etc/mysql/mysql.conf.d/mysqld.cnf ${database} | gzip > ${backupDir}/${database}_${today}.sql.gz
#${mysqldump} -u ${username} -p${password} ${database} > ${backupDir}/${database}_${today}.sql
#echo "${mysqldump} -u ${username} -p${password} ${database} > ${backupDir}/${database}_${today}.sql"
#echo "${mysqldump} --defaults-extra-file=/etc/mysql/mysql.conf.d/mysqld.cnf ${database} > ${backupDir}/${database}_${today}.sql"
echo "成功备份"${database}"到"${backupDir}/${database}_${today}.sql.gz
if [ ! -f "${backupDir}/${database}"_"${timeTenDayAgo}.sql.gz" ];
then
echo '10天前备份不存在,无需删除'
else
rm -f ${backupDir}/${database}_${timeTenDayAgo}.sql.gz
echo '删除10天前备份文件'${backupDir}/${database}_${timeTenDayAgo}.sql.gz
fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?