/*备份数据库*/
mysqldump -uroot -p --all-databases --master-data --single-transaction> /data/mysqlall.sql
注:现有业务库备份(database_name1 database_name2 database_name3 生产环境中真实数据库名称)
mysqldump -u root -p --databases database_name1 database_name2 database_name3 --master-data --single-transaction> /data/mysqlall.sql
mysql -uroot -p >source /data/mysqlall.sql
/*多个数据库同时备份脚本*/
# vi backup.sh
#!/bin/bash
Date=`date +%Y%m%d`
olddate=`date +%Y%m%d -d "-7 days"`
db_user='mysql'
db_passwd='123'
db_name='database_name1 database_name2 database_name3 mysql'
mkdir /usr/local/apache/backup/$Date
mkdir /data/logs/$Date
rm -rf /data/logs/$olddate
rm -rf /usr/local/apache/backup/$olddate
for i in $db_name
do
echo "$i backup begin at `date +%H:%M:%S`" >> /data/logs/$Date/backup.log
mysqldump -u $db_user -p$db_passwd $i | gzip > /usr/local/apache/backup/$Date/$i-$(date +%y%m%d).sql.gz
echo "$i backup begin at `date +%H:%M:%S`" >> /data/logs/$Date/backup.log
done
echo "all databases backup over!" >> /data/logs/$Date/backup.log
#!/bin/bash
PID=$(ps -ef | grep test-service.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill -9 $PID
fi
脚本注释:
1、同时备份数据库database_name1、 database_name2 、database_name3,并压缩成.gz文件,并删除7天前的备份文件,备份文件格式为mysql-20230201.sql.gz(即2023年02月01日)
2、记录数据库开始备份的时间和结束备份的时间(几点几分几秒)
添加定时任务
crontab -e
0 2 * * * /data/backup.sh
查看定时任务 crontab -l