Linux实现MySQL数据库凌晨自动备份
备份多数据库,每天凌晨两点执行,使用当前年月日作为文件夹,不存在该文件夹就创建,删除七天前备份过的文件。
定时调度使用crontab
1 login_user="root" 2 3 login_passwd="" 4 5 vDate=`date +%Y%m%d` 6 7 backup_dir="/home/data/backups/"$vDate"/" 8 9 echo $backup_dir 10 11 if [ ! -d $backup_dir ];then 12 mkdir -p $backup_dir 13 fi 14 15 # 将需要备份的数据放入 16 db_array=("dbName1" "dbName1" "dbName1") #配置要备份的数据库 17 18 19 for db_name in ${db_array[*]} 20 do 21 22 mysqldump -u root -p$login_passwd $db_name > $backup_dir$db_name.sql 23 24 done 25 26 # 删除7天前备份的文件 27 find backup_dir -atime +7 -name "*.sql" -exec rm -rf {} \ 28 29 echo "备份结束"
没有安装crontab的小伙伴需要安装crontab,安装过程网上很多在此就不做赘述了。
查看crontab的定时任务
[root@localhost data]# crontab -l 00 02 * * * /home/data/backup.sh
编辑crontab定时任务
[root@localhost data]# crontab -e
我的脚本文件在 /home/data/backup.sh中。
前面三个数字分别代表,见下图。我的是凌晨二点,小伙伴可以根据需要更改。