每日备份mysql的数据,并保留一定数量的备份文件
一、Mysql备份脚本backup.sh
vi backup.sh
#!/bin/bash # 保存备份个,备份31天的数据 number=31 # 备份保存路径 backup_dir=/home/mysql/data/mysqlbackup # 日期 dd=`data+%Y-%m-%d-%H-%M-%S` # 备份工具 tool=mysqldump # 用户名 username=name # 密码,特殊字符要转化 password=pwd # 要备份的数据库 database_name=数据库名 # 如果文件夹不存在则创建 if [.! -d $backup_dir ]; then mkdir -p $backup_dir; fi $tool -u $username -p$password $database_name >$backup_dir/$dataabase_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 -l` # 判断现在的备份数量是否大雨$number count=`ls -l -crt $backup_dir/*sql | awk '{print}' | wc -l` if [.$count -gt $number ] then # 删除最早生成的备份,只保留number数量的备份 rm $delfile # 写删除文件日志 echo "delete $delfile" >> $backup_dir/log.txt fi
二、linux的crontab调度
crontab -e 0 5 * * * /root/bin/backup.sh
上述设定表示,每日5点运行该脚本。
crontab的解释:
第一列表示分钟
第二列表示小时
第三列表示日期
第四列表示月份
第五列表示星期
第六列表示运行的脚本或者命令
三、mysqldump
1、简介
mysqldump -u 'user' -p 'password' database1 > database1.sql
-u:连接mysql的用户
-p:连接mysql服务的账户密码
database1:mysqldump的第一个参数为数据库名称
2、备份多个库
mysqldump -u 'user' -p 'password' database1 database2 > database1_ database2.sql
3、备份某张表
mysqldump -u 'user' -p 'password' database1 table1 > database1_table1.sql
4、备份多张表
mysqldump -u 'user' -p 'password' database1 table1 table2 > database1_table1_table2.sql
5、远程备份
mysqldump -h'127.0.0.1' -u 'user' -p 'password' database1 > database1.sql
标签:备份,linux,database1,sql,Mysql,backup,dir,mysqldump From: https://www.cnblogs.com/songwmeta/p/17552349.html