😊
安装coscmd
$ pip install coscmd
编辑配置文件
$ vi ~/.cos.conf
[common]
secret_id = 123456789
secret_key = 987654321
bucket = backup-1234567890
region = ap-beijing
max_thread = 5
part_size = 1
schema = https
verify = md5
anonymous = False
因为想设置数据库和网站文件备份周期不同,所以分别创建两个备份文件
$ vi backup_databases_to_cos.sh
#!/bin/bash
# 填写数据库名称
database1=zhangleilei1
database2=zhangleilei2
database3=zhangleilei3
# 给导出的数据库文件加上时间戳
databasefileName1=DB_${database1}_date +%Y%m%d%H%M%S
databasefileName2=DB_${database2}_date +%Y%m%d%H%M%S
databasefileName3=DB_${database3}_date +%Y%m%d%H%M%S
# SQL文件导出后存放的位置
databaseDir=/data/backup/database/
# 导出数据库
mysqldump --defaults-extra-file=/etc/my.cnf ${database1} > ${databaseDir}${databasefileName1}.sql
mysqldump --defaults-extra-file=/etc/my.cnf ${database2} > ${databaseDir}${databasefileName2}.sql
mysqldump --defaults-extra-file=/etc/my.cnf ${database3} > ${databaseDir}${databasefileName3}.sql
# 压缩SQL文件
tar -zcPvf ${databaseDir}${databasefileName1}.sql.tar.gz ${databaseDir}${databasefileName1}.sql
tar -zcPvf ${databaseDir}${databasefileName2}.sql.tar.gz ${databaseDir}${databasefileName2}.sql
tar -zcPvf ${databaseDir}${databasefileName3}.sql.tar.gz ${databaseDir}${databasefileName3}.sql
# 删除SQL文件
rm -rf ${databaseDir}${databasefileName1}.sql
rm -rf ${databaseDir}${databasefileName2}.sql
rm -rf ${databaseDir}${databasefileName3}.sql
# 上传SQL文件至COS
coscmd upload -rs ${databaseDir} /backup/database/
# 删除备份文件
find ${databaseDir} -mtime +7 -name "DB_${database1}*.tar.gz" -exec rm -rf {} \;
find ${databaseDir} -mtime +7 -name "DB_${database2}*.tar.gz" -exec rm -rf {} \;
find ${databaseDir} -mtime +7 -name "DB_${database3}*.tar.gz" -exec rm -rf {} \;
$ vi backup_site_to_cos
#!/bin/bash
# 网站域名,将.换成_
domain1=www_zhangleilei_cn
domain2=www_a_com
domain3=www_b_cn
# 压缩文件加上时间戳
sitefilename1=${domain1}_date +%Y%m%d%H%M%S
sitefilename2=${domain2}_date +%Y%m%d%H%M%S
sitefilename3=${domain3}_date +%Y%m%d%H%M%S
# 网站压缩文件存放的位置
siteBackupDir=/data/backup/site/
# 网站目录
siteDir1=/data/wwwroot/www.zhangleilei.cn/
siteDir2=/data/wwwroot/www.a.com/
siteDir3=/data/wwwroot/www.b.cn/
# 压缩网站文件
tar -zcPvf ${siteBackupDir}${sitefilename1}.tar.gz ${siteDir1}
tar -zcPvf ${siteBackupDir}${sitefilename2}.tar.gz ${siteDir2}
tar -zcPvf ${siteBackupDir}${sitefilename3}.tar.gz ${siteDir3}
# 上传网站压缩文件至cos
coscmd upload -rs ${siteBackupDir} /backup/site/
# 删除备份文件
find ${siteBackupDir} -mtime +7 -name "${domain1}*.tar.gz" -exec rm -rf {} \;
find ${siteBackupDir} -mtime +7 -name "${domain2}*.tar.gz" -exec rm -rf {} \;
find ${siteBackupDir} -mtime +7 -name "${domain3}*.tar.gz" -exec rm -rf {} \;
在/etc/my.cnf中加上mysql的账户密码
$ vi /etc/my.cnf
在[client]下添加password/user/port/host
user = root
password = password
port = 3306
host = localhost
给脚本赋予执行权限
$ chmod +x backup_databases_to_cos.sh
$ chmod +x backup_site_to_cos.sh
添加定时任务
$ crontab -e
# 每隔三日3点执行脚本
0 3 */3 * * /root/backup_databases_to_cos.sh
# 每隔七日3点执行脚本
0 3 */7 * * /root/backup_site_to_cos.sh
重启一下corntab
$ /etc/init.d/cron restart