数据备份
第一步:在linux服务器上创建文件夹/opt/mysqlbackup
第二步:将下面内容写入mysqlbackup.sh内,并放入/opt/mysqlbackup文件夹下,注意修改密码
第三步:为脚本文件添加可执行权限 chmod +x mysqlbackup.sh
第四步:若没有mysqldump命令则需要配置mysqldump环境变量:在/etc/profile文件内添加一条path指向mysql的bin目录
export PATH=$PATH:/usr/local/mysql/bin/
并重新加载配置文件 source /etc/profile
第五步:执行:sh mysqlbackup.sh
第六步:定时执行:crontab -e
添加执行时间
0 12 * * * /opt/mysqlbackup/mysqlbackup.sh
#!/bin/bash
number=3
backup_dir=/opt/mysqlbackup
dd=`date +%Y%m%d%H%M%S`
tool=mysqldump
username=root
password=12356
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#DATABASES=$(mysql -u$username -p$password -s -e "SHOW DATABASES")
DATABASES="数据库名1 数据库名2"
for db in $DATABASES
do
# if [ "$db" != "information_schema" ] && [ "$db" != "mysql" ] && [ "$db" != "sys" ] && [ "$db" != "performance_schema" ]
#then
echo "backed up successfully"
$tool -u $username -p$password --skip-lock-tables $db > $backup_dir/"$db"_$dd.sql
gzip $backup_dir/"$db"_$dd.sql
echo "create $backup_dir/$dd.dupm" >> $backup_dir/log.txt
delfile=`ls -l -crt $backup_dir/"$db"* | awk '{print $9 }' | head -1`
count=`ls -l -crt $backup_dir/"$db"* | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
rm -f $delfile
echo "delete $delfile" >> $backup_dir/log.txt
fi
#fi
done
echo "All databases backed up successfully"