环境变量配置
vim /etc/profile
追加/usr/local/mysql,MySQL数据库默认安装路径
source /etc/profile
创建定时备份脚本
mkdir /home/mysqlDump/
vim /home/mysqlDump/mysql_backup.sh
编辑状态下快捷键:ggdG ,可以清空文件内容
#!/bin/bash
#================基础参数===============
user="root"
password="123456"
host=localhost
port="3306"
#备份库名列表,括号内多个数据库空格隔开
db_name_array=("sys" "wzy")
#备份位置(若不存在,会自动创建)
datafile_path="/home/mysqlDump"
#mysqlDump的绝对位置,基本为mysql安装路径
mysqlDump_path="/usr/bin/mysqldump"
#是否删除.sql文件(包含子目录): ON开启,其他字符不开启
rf_switch="ON"
#数据保留天数(按文件修改时间计算)
expire_day=10
#================非开发人员勿改================
#备份最终路径
bak_path="${datafile_path}/${db_name}"
#错误日志文件名称
error_log="${bak_path}/${db_name}_error.log"
#================备份执行指令================
#判断文件夹,不存在则创建
if [ ! -d "$bak_path" ]
then
mkdir -p ${bak_path}
echo "已创建文件夹${bak_path}"
fi
#判断mysql是否开启
checkPort=`lsof -i:${port} | wc -l`
if [ "$checkPort" -gt "0" ]
then
echo "mysql 已启动"
else
echo "mysql 未启动无法进行备份"
echo "mysql 未启动无法进行备份" > $error_log
fi
#执行备份
echo "执行备份"
for db_name in ${db_name_array[*]}
do
${mysqlDump_path} -u${user} -p${password} --host=${host} -q -R --databases $db_name | gzip > ${bak_path}"/"$db_name$'_'$(date +%Y%m%d_%H%M%S).sql.gz 2>>${error_log}
done
#删除过期文件
echo "删除过期文件"
if [ $rf_switch == "ON" ]
then
find ${bak_path} -name "*.sql" -mtime +${expire_day} | xargs rm -f
fi
echo "脚本执行完毕"
设置脚本执行权限
chmod +x ./mysql_backup.sh
执行
sh mysql_backup.sh
定时任务设置
编辑
crontab
-e
30 22 * * * /home/mysqlDump/mysql.sh #每天22:30执行一次
查看
crontab
-l
启动
/bin/systemctl start crond.service
停止
/bin/systemctl stop crond.service
备份服务器文件到本地
scp user@ip:/home/mysqlDump/xx.sql.gz F:\xx\xx