参考 csdn https://blog.csdn.net/luyinchangdejiqing/article/details/80063790

 

首先要让mysqldump 起作用最好的做法是把账号密码写到/etc/my.cnf 中

  1. # 例如
  2. vim /etc/my.cnf
  3.  
  4. # 在 [client] 下 加你自己的mysql账号密码
  5. user=root
  6. password=root
  7.  
  8. # 然后写一下 mysqldump 一般的用法 , 其中的数据库名 全路径和文件名 都可以按照实际要求修改
  9. mysqldump --defaults-extra-file=/etc/my.cnf test > /root/backup/test.sql

 

顺便贴一下tar压缩解压的命令,防止以后忘了

  1. 压缩
  2. tar -czvf /path/to/file.tar.gz file
  3.  
  4. 解压
  5. tar -xzvf /path/to/file.tar.gz /path/to
  6.  
  7. 加密压缩
  8. tar -czvf - file | openssl des3 -salt -k password -out /path/to/file.tar.gz
  9.  
  10. 解密解压
  11. openssl des3 --k password -salt -in /path/to/file.tar.gz | tar xzf - 

 

建议ssh到服务器 用vim来创建这个文件,并粘贴内容,如果直接在windows用文本文档创建再上传,会发生格式不一致的情况

  1. #!/bin/bash
  2. # mysql 自动备份 压缩 保留7天
  3. # 文件名为test_db+日期
  4. backupDatabase=test
  5.  
  6. # 代表数据库名_年月日 也可以根据需要修改 %Y%m%d%H%M%S
  7. fileName=${backupDatabase}_`date +%Y%m%d`
  8.  
  9. # 存放备份的目录,可以是任意位置,先创建并赋权
  10. baseDir=/etc/mytsql/backup/test/
  11.  
  12. # 备份数据库
  13. mysqldump --defaults-extra-file=/etc/my.cnf ${backupDatabase} > ${baseDir}${fileName}.sql
  14.  
  15. # 压缩 这个大写P用来兼容绝对路径
  16. tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql
  17.  
  18. # 删除刚刚备份的sql文件,留下压缩的
  19. rm -f ${baseDir}${fileName}.sql;
  20.  
  21. # 删除7天前备份的数据,只保留一星期内的数据
  22. find ${baseDir} -mtime +7 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;

 

加入到定时任务

  1. crontab -e
  2.  
  3. # 在最后一行加这一句,意思是每天3点跑脚本
  4. 0 3 * * * /xxx/xxx.sh
  5.  
  6. # 加完必须重启生效
  7. sudo service crond restart

 

最后上传的部分,要根据不同情况不同命令,例如公网到公网可以用scp / ftp 。 发一个腾讯cos用python工具上传的例子,以此类推,开个oss,设置成私有模式,用工具上传。隔段时间看一下容量。

  1. coscmd config ....
  2. coscmd upload -r /root/backup/files backup/files