Linux 定时备份到腾讯云对象存储

😊

安装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

人已赞赏
Record

保姆式教程:利用谷歌云做中转下载文件

2020-2-24 20:38:17

Record

腾讯云安装coscmd报错解决方法

2020-5-19 10:45:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索