mysqldump+ crond+shell每天自动备份数据库的数据

shell脚本如下:
 

baseDir=/home/sql
backupDatabase=要备份的数据库名称
fileName=${backupDatabase}_$(date +%Y%m%d%H%M)
echo 'back up begin..'
mysqldump -uroot -p密码 ${backupDatabase} > ${baseDir}/${fileName}.sql
tar -zcPvf ${baseDir}/${fileName}.sql.tar.gz ${baseDir}/${fileName}.sql
rm -rf ${baseDir}/${fileName}.sql;
find ${baseDir} -mtime +7 -name ${backupDatabase}"*.gz" -exec rm -rf {} \;
echo 'back up end..'

命令解释:
1.mysqldump -uroot -p密码 ${backupDatabase} > ${baseDir}/${fileName}.sql
   利用mysqldump连接数据库(mysql自带工具),把指定的数据库备份成/home/sql目录下以数据库命名+时间的命名方式
2.tar -zcPvf ${baseDir}/${fileName}.sql.tar.gz  ${baseDir}/${fileName}.sql
   -z :是否同一时候具有 gzip 的属性,意思是打包后,以 gzip 压缩
     c: 建立一个压缩文件的參数指令(create 的意思)
    P:使用原文件的原来属性(属性不会根据使用者而变)
    v:压缩的过程中显示文件
    f:使用文档名,在 f 之后要接着文档名
意思就是把原来的sql文件打成压缩包
3.rm -rf 把原来的sql文件删除
4.find ${baseDir} -mtime +7 -name ${backupDatabase}"*.gz" -exec rm -rf {} \;
    mtime文件内容被修改的最后时间 -mtime +7 查找更改时间在7日以前的文件并删除它们

最后用crond做定时任务执行shell脚本
编辑 /etc/crontab
30 23 * * * root  /home/haha/backup.sh
重启加载crond服务   service crond reload

おすすめ

転載: blog.csdn.net/weixin_43075758/article/details/121295022