脚本

backup-db.sh

#!/bin/bash
echo "start backup db..."
user="root"  # 账号
pwd="jkxm123456" # 密码
port="3306" # 端口
dbname="supervisory"
bak_dir="/data/wwwroot/db-bak"
bak_time=`date +%Y%m%d%H%M`
exec mysqldump -P$port -u$user -p$pwd $dbname > $bak_dir/$dbname.bak.$bak_time.sql
CUR_TIME=`date +'%Y-%m-%d %H-%M-%S'`
if [ -f $LOGFILE ]
    then
        echo "backup db at time $CUR_TIME" >> error.log;
    else
        echo -e "backup db log init at $CUR_TIME\n" > error.log;
fi
echo "end backup db..."
#!/bin/bash
# 压缩SQL文件并删除原文件
tar -zcPvf ${baseDir}/${fileName}.sql.tar.gz ${baseDir}/${fileName}.sql
rm -rf ${baseDir}/${fileName}.sql;
find ${baseDir} -mtime +7 -name ${backupDatabase}"*.gz" -exec rm -rf {} \;

(mysql配置文件设置了账号密码之后,无需配置账号密码)

#!/bin/bash
echo "start backup db..."
user="root"
pwd="jkxm123456"
port="3306"
dbname="supervisory"
bak_dir="/data/wwwroot/db-bak"
bak_time=`date +%Y%m%d%H%M`
exec mysqldump -P$port $dbname > $bak_dir/$dbname.bak.$bak_time.sql
CUR_TIME=`date +'%Y-%m-%d %H-%M-%S'`
if [ -f $LOGFILE ]
    then
        echo "backup db at time $CUR_TIME" >> error.log;
    else
        echo -e "backup db log init at $CUR_TIME\n" > error.log;
fi
echo "end backup db..."

注意:

  • 头部需添加#!/bin/bash
  • 若在linux中执行脚本报错,请先确认是否是在windows系统下创建的文件时,需要将文档格式转为unix(LF)的,可以使用Notepad++直接转换文档格式。

解决脚本执行带密码的mydqldump命令时提示不安全(insecure)警告的问题

mysqldump导出提示:mysqldump: [Warning] Using a password on the command line interface can be insecure_wsyzxss的博客-CSDN博客_mysqldump warning
https://blog.csdn.net/wsyzxss/article/details/125215469

作者:李世民  创建时间:2022-07-28 14:14
最后编辑:李世民  更新时间:2023-03-27 17:08