mysql 自动 压缩 备份 上传的shell脚本
2018-08-28
阅读 {{counts.readCount}}
评论 {{counts.commentCount}}
参考 csdn https://blog.csdn.net/luyinchangdejiqing/article/details/80063790
首先要让mysqldump 起作用最好的做法是把账号密码写到/etc/my.cnf 中
- # 例如
- vim /etc/my.cnf
- # 在 [client] 下 加你自己的mysql账号密码
- user=root
- password=root
- # 然后写一下 mysqldump 一般的用法 , 其中的数据库名 全路径和文件名 都可以按照实际要求修改
- mysqldump --defaults-extra-file=/etc/my.cnf test > /root/backup/test.sql
顺便贴一下tar压缩解压的命令,防止以后忘了
- 压缩
- tar -czvf /path/to/file.tar.gz file
- 解压
- tar -xzvf /path/to/file.tar.gz /path/to
- 加密压缩
- tar -czvf - file | openssl des3 -salt -k password -out /path/to/file.tar.gz
- 解密解压
- openssl des3 -d -k password -salt -in /path/to/file.tar.gz | tar xzf -
建议ssh到服务器 用vim来创建这个文件,并粘贴内容,如果直接在windows用文本文档创建再上传,会发生格式不一致的情况
- #!/bin/bash
- # mysql 自动备份 压缩 保留7天
- # 文件名为test_db+日期
- backupDatabase=test
- # 代表数据库名_年月日 也可以根据需要修改 %Y%m%d%H%M%S
- fileName=${backupDatabase}_`date +%Y%m%d`
- # 存放备份的目录,可以是任意位置,先创建并赋权
- baseDir=/etc/mytsql/backup/test/
- # 备份数据库
- mysqldump --defaults-extra-file=/etc/my.cnf ${backupDatabase} > ${baseDir}${fileName}.sql
- # 压缩 这个大写P用来兼容绝对路径
- tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql
- # 删除刚刚备份的sql文件,留下压缩的
- rm -f ${baseDir}${fileName}.sql;
- # 删除7天前备份的数据,只保留一星期内的数据
- find ${baseDir} -mtime +7 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;
加入到定时任务
- crontab -e
- # 在最后一行加这一句,意思是每天3点跑脚本
- 0 3 * * * /xxx/xxx.sh
- # 加完必须重启生效
- sudo service crond restart
最后上传的部分,要根据不同情况不同命令,例如公网到公网可以用scp / ftp 。 发一个腾讯cos用python工具上传的例子,以此类推,开个oss,设置成私有模式,用工具上传。隔段时间看一下容量。
- coscmd config ....
- coscmd upload -r /root/backup/files backup/files
评论区空空如也,赶紧添加一条评论吧
评论 {{counts.commentCount}}
{{comment.name}}
{{comment.os}}
{{comment.browser}}
{{comment.reply.name}}
{{comment.reply.os}}
{{comment.reply.browser}}