1.准备脚本sql_bak.sh
#!/bin/bash #hebtu data backup shell,execute at everyday 23:00 #use crontab -l command to have a look ########################################## define parameters############################ #export PATH=/data/mysql-5.1.73/bin:$PATH c_time=$(date +%Y%m%d) #old_bak=`date --date='7 days ago' +%Y%m%d` backuphome="/dev/back_db" ############################################database backup############################ user=root password=gdxf123456! # db1=jfast_basic_service dbNames=(jfast_basic_service jfast_cloud_docking jfast_hardware_docking jfast_property jfast_public jfast_research_center_service jfast_safety jfast_talent nacos oa park_devops xxl_job) #backup sql files mkdir $backuphome/$c_time cd $backuphome/$c_time echo "start backup database sql files to localhost" # 对备份数据库列表的所有数据库备份 for dbName in ${dbNames[*]} do mysqldump -u$user -p$password -e --max_allowed_packet=1048576 --net_buffer_length=8192 $dbName>$dbName.sql tar czf $dbName.tar.gz $dbName.sql rm -rf $dbName.sql done echo "backup database sql files to localhost successfully"
2.创建目录
mkdir back_db
3.执行命令
sh sql_bak.sh
4.如提示mysqldump: 未找到命令
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。 首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令: 按如下命令执行 whereis mysql ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
5.继续执行备份命令
sh sql_bak.sh
6.备份成功,此时加入定时任务
添加定时任务 crontab -e 添加 0 23 * * * /dev/sql_bak.sh 查看状态 crontab -l 命令 显示 0 23 * * * /dev/sql_bak.sh 在每天的23点 查看定时任务 crontab -l