1、创建备份文件以及备份脚本所在的目录
在根目录下面设置 cd /
mkdir -p /home/apps/backup/mysqllive
2、修改mysql备份配置文件
这种相比于在将用户名和密码写在bash脚本里面,会更加安全一些。
sudo vim /etc/mysql/conf.d/mysqldump.cnf
mysqldump.cnf文件添加以下内容:
host=127.0.0.1
user=**** # mysql 用户名
password=*** # mysql
注意:
mysqldump导出提示:mysqldump [Warning] Using a password on the command line interface can be insecure
sudo vim /etc/mysql/conf.d/mysql.cnf
mysqldump.cnf文件添加以下内容:
[mysqldump]
host=127.0.0.1
user=**** # mysql 用户名
password=*** # mysql
3、编写shell脚本, 放在backup方便管理
vim /home/apps/backup/mysql_backups.sh
mysql_backups.sh文件添加以下内容:
#!/bin/bash
#保存备份个数,备份15天数据
number=15
#备份数据存放位置
backup_dir=/home/apps/backup/mysqllive
#日期
dd=`date +%Y-%m-%d-%H:%M:%S`
#mysql导出数据库的命令
tool=mysqldump
#将要备份的数据库
database_name=dst5hy
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#通过以下拼接成一条mysql导出数据库的命令,备份多个数据库或者全部数据库,可以修改这条命令
#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#$tool -u$username -p $database_name > $backup_dir/$database_name-$dd.sql
$tool $database_name > $backup_dir/$database_name-$dd.sql
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi
4、修改备份脚本文件权限
chmod 777 mysql_backups.sh
这里将mysql_backups.sh的权限设置为任何用户可以读、写、执行,具体权限设置可以自行设定。
测试:
bash /home/apps/backup/mysql_backups.sh
;看会不会出现相应的数据库备份文件
5、配置定时器
修改定时器配置文件crontab:
sudo vim /etc/crontab
crontab文件添加以下内容:
#每天2点,执行mysql_backups.sh 脚本
0 2 * * * root /backup/mysql_backups.sh
注:"0 2 * * *
"表示每天00:02
执行,root户,/backup/mysql_backups.sh
指向备份shell脚本文件。
crontab配置完成后,需要重新启动服务:
重新启动(sudo /etc/init.d/cron restart
);
可以使用 crontab -l
命令来查看一下系统内的定时任务。
还可以使用其它方式创建定时任务了
使用 crontab -e
命令编辑定时任务,添加我们写好的脚本文件路径即可, Cron表达式不懂的话可以找个在线网站生成一下即可。
链接: http://c.jsrun.net/app/cron
链接: https://cron.qqe2.com/index-old.html
注意一下要退出按 Ctrl+x
然后输入 y
回车即可退出。